diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b78b3ce988..d1afe2413e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,3 +1,21 @@ # Lines starting with '#' are comments. # Each line is a file pattern followed by one or more owners. -* @zzzckck @zjubfd +accounts/usbwallet @karalabe +accounts/scwallet @gballet +accounts/abi @gballet @MariusVanDerWijden +cmd/clef @holiman +consensus @karalabe +core/ @karalabe @holiman @rjl493456442 +eth/ @karalabe @holiman @rjl493456442 +eth/catalyst/ @gballet +eth/tracers/ @s1na +graphql/ @s1na +les/ @zsfelfoldi @rjl493456442 +light/ @zsfelfoldi @rjl493456442 +node/ @fjl +p2p/ @fjl @zsfelfoldi +rpc/ @fjl @holiman +p2p/simulations @fjl +p2p/protocols @fjl +p2p/testing @fjl +signer/ @holiman diff --git a/CHANGELOG.md b/CHANGELOG.md index a9027e2278..b17a062f5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,34 @@ # Changelog +## v1.4.6 +### FEATURE +* [\#2227](https://github.com/bnb-chain/bsc/pull/2227) core: separated databases for block data +* [\#2404](https://github.com/bnb-chain/bsc/pull/2404) cmd, p2p: filter peers by regex on name + +### IMPROVEMENT +* [\#2201](https://github.com/bnb-chain/bsc/pull/2201) chore: render system bytecode by go:embed +* [\#2363](https://github.com/bnb-chain/bsc/pull/2363) feat: greedy merge tx in bid +* [\#2389](https://github.com/bnb-chain/bsc/pull/2389) deps: update prsym to solve warning about quic-go version +* [\#2341](https://github.com/bnb-chain/bsc/pull/2341) core/trie: persist TrieJournal to journal file instead of kv database +* [\#2395](https://github.com/bnb-chain/bsc/pull/2395) fix: trieJournal format compatible old db format +* [\#2406](https://github.com/bnb-chain/bsc/pull/2406) feat: adaptive for loading journal file or journal kv during loadJournal +* [\#2390](https://github.com/bnb-chain/bsc/pull/2390) chore: fix function names in comment +* [\#2399](https://github.com/bnb-chain/bsc/pull/2399) chore: fix some typos in comments +* [\#2408](https://github.com/bnb-chain/bsc/pull/2408) chore: fix some typos in comments +* [\#2416](https://github.com/bnb-chain/bsc/pull/2416) fix: fix function names +* [\#2424](https://github.com/bnb-chain/bsc/pull/2424) feat: recommit bid when newBidCh is empty to maximize mev reward +* [\#2430](https://github.com/bnb-chain/bsc/pull/2430) fix: oom caused by non-discarded mev simulation env +* [\#2428](https://github.com/bnb-chain/bsc/pull/2428) chore: add metric & log for blobTx +* [\#2419](https://github.com/bnb-chain/bsc/pull/2419) metrics: add doublesign counter + +### BUGFIX +* [\#2244](https://github.com/bnb-chain/bsc/pull/2244) cmd/geth: fix importBlock +* [\#2391](https://github.com/bnb-chain/bsc/pull/2391) fix: print value instead of pointer in ConfigCompatError +* [\#2398](https://github.com/bnb-chain/bsc/pull/2398) fix: no import blocks before or equal to the finalized height +* [\#2401](https://github.com/bnb-chain/bsc/pull/2401) fix: allow fast node to rewind after abnormal shutdown +* [\#2403](https://github.com/bnb-chain/bsc/pull/2403) fix: NPE +* [\#2423](https://github.com/bnb-chain/bsc/pull/2423) eth/gasprice: add query limit to defend DDOS attack +* [\#2425](https://github.com/bnb-chain/bsc/pull/2425) fix: adapt journal for cmd + ## v1.4.5 ### FEATURE * [\#2378](https://github.com/bnb-chain/bsc/pull/2378) config: setup Testnet Tycho(Cancun) hardfork date diff --git a/Dockerfile.alltools b/Dockerfile.alltools index f28107b26a..8c7e2bd0a3 100644 --- a/Dockerfile.alltools +++ b/Dockerfile.alltools @@ -26,7 +26,7 @@ COPY --from=builder /go-ethereum/build/bin/* /usr/local/bin/ EXPOSE 8545 8546 30303 30303/udp -# Add some metadata labels to help programatic image consumption +# Add some metadata labels to help programmatic image consumption ARG COMMIT="" ARG VERSION="" ARG BUILDNUM="" diff --git a/README.md b/README.md index c95bc0c053..d489e6aa40 100644 --- a/README.md +++ b/README.md @@ -155,7 +155,7 @@ Note: If you encounter difficulties downloading the chaindata snapshot and prefe ```shell ./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0 -## It is recommand to run fullnode with `--tries-verify-mode none` if you want high performance and care little about state consistency +## It is recommend to run fullnode with `--tries-verify-mode none` if you want high performance and care little about state consistency ## It will run with Hash-Base Storage Scheme by default ./geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0 --tries-verify-mode none diff --git a/accounts/keystore/account_cache_test.go b/accounts/keystore/account_cache_test.go index e528f98b2b..6b4f50512b 100644 --- a/accounts/keystore/account_cache_test.go +++ b/accounts/keystore/account_cache_test.go @@ -51,7 +51,7 @@ var ( } ) -// waitWatcherStarts waits up to 1s for the keystore watcher to start. +// waitWatcherStart waits up to 1s for the keystore watcher to start. func waitWatcherStart(ks *KeyStore) bool { // On systems where file watch is not supported, just return "ok". if !ks.cache.watcher.enabled() { diff --git a/accounts/keystore/keystore_test.go b/accounts/keystore/keystore_test.go index c9a23eddd6..74ad9801e0 100644 --- a/accounts/keystore/keystore_test.go +++ b/accounts/keystore/keystore_test.go @@ -343,7 +343,7 @@ func TestWalletNotifications(t *testing.T) { checkEvents(t, wantEvents, events) } -// TestImportExport tests the import functionality of a keystore. +// TestImportECDSA tests the import functionality of a keystore. func TestImportECDSA(t *testing.T) { t.Parallel() _, ks := tmpKeyStore(t, true) @@ -362,7 +362,7 @@ func TestImportECDSA(t *testing.T) { } } -// TestImportECDSA tests the import and export functionality of a keystore. +// TestImportExport tests the import and export functionality of a keystore. func TestImportExport(t *testing.T) { t.Parallel() _, ks := tmpKeyStore(t, true) diff --git a/cmd/faucet/faucet.go b/cmd/faucet/faucet.go index 6f5505ad0d..6a64e174f6 100644 --- a/cmd/faucet/faucet.go +++ b/cmd/faucet/faucet.go @@ -525,7 +525,7 @@ func (f *faucet) apiHandler(w http.ResponseWriter, r *http.Request) { } f.lock.Unlock() - // Send an error if too frequent funding, othewise a success + // Send an error if too frequent funding, otherwise a success if !fund { if err = sendError(wsconn, fmt.Errorf("%s left until next allowance", common.PrettyDuration(time.Until(timeout)))); err != nil { // nolint: gosimple log.Warn("Failed to send funding error to client", "err", err) diff --git a/cmd/geth/attach_test.go b/cmd/geth/attach_test.go index 91007ccf65..ceae3a122e 100644 --- a/cmd/geth/attach_test.go +++ b/cmd/geth/attach_test.go @@ -48,7 +48,7 @@ func TestAttachWithHeaders(t *testing.T) { // This is fixed in a follow-up PR. } -// TestAttachWithHeaders tests that 'geth db --remotedb' with custom headers works, i.e +// TestRemoteDbWithHeaders tests that 'geth db --remotedb' with custom headers works, i.e // that custom headers are forwarded to the target. func TestRemoteDbWithHeaders(t *testing.T) { t.Parallel() diff --git a/cmd/geth/blsaccountcmd.go b/cmd/geth/blsaccountcmd.go index 64c7926755..2ffe1b8d2b 100644 --- a/cmd/geth/blsaccountcmd.go +++ b/cmd/geth/blsaccountcmd.go @@ -12,16 +12,16 @@ import ( "github.com/google/uuid" "github.com/logrusorgru/aurora" - "github.com/prysmaticlabs/prysm/v4/crypto/bls" - "github.com/prysmaticlabs/prysm/v4/encoding/bytesutil" - "github.com/prysmaticlabs/prysm/v4/io/prompt" - validatorpb "github.com/prysmaticlabs/prysm/v4/proto/prysm/v1alpha1/validator-client" - "github.com/prysmaticlabs/prysm/v4/validator/accounts" - "github.com/prysmaticlabs/prysm/v4/validator/accounts/iface" - "github.com/prysmaticlabs/prysm/v4/validator/accounts/petnames" - "github.com/prysmaticlabs/prysm/v4/validator/accounts/wallet" - "github.com/prysmaticlabs/prysm/v4/validator/keymanager" - "github.com/prysmaticlabs/prysm/v4/validator/keymanager/local" + "github.com/prysmaticlabs/prysm/v5/crypto/bls" + "github.com/prysmaticlabs/prysm/v5/encoding/bytesutil" + "github.com/prysmaticlabs/prysm/v5/io/prompt" + validatorpb "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1/validator-client" + "github.com/prysmaticlabs/prysm/v5/validator/accounts" + "github.com/prysmaticlabs/prysm/v5/validator/accounts/iface" + "github.com/prysmaticlabs/prysm/v5/validator/accounts/petnames" + "github.com/prysmaticlabs/prysm/v5/validator/accounts/wallet" + "github.com/prysmaticlabs/prysm/v5/validator/keymanager" + "github.com/prysmaticlabs/prysm/v5/validator/keymanager/local" "github.com/urfave/cli/v2" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" diff --git a/cmd/geth/chaincmd.go b/cmd/geth/chaincmd.go index 70f4bee426..b7ff192334 100644 --- a/cmd/geth/chaincmd.go +++ b/cmd/geth/chaincmd.go @@ -41,6 +41,7 @@ import ( "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/eth" "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/internal/era" "github.com/ethereum/go-ethereum/internal/flags" @@ -267,15 +268,21 @@ func initGenesis(ctx *cli.Context) error { defer chaindb.Close() // if the trie data dir has been set, new trie db with a new state database - if ctx.IsSet(utils.SeparateDBFlag.Name) { + if ctx.IsSet(utils.MultiDataBaseFlag.Name) { statediskdb, dbErr := stack.OpenDatabaseWithFreezer(name+"/state", 0, 0, "", "", false, false, false, false) if dbErr != nil { utils.Fatalf("Failed to open separate trie database: %v", dbErr) } chaindb.SetStateStore(statediskdb) + blockdb, err := stack.OpenDatabaseWithFreezer(name+"/block", 0, 0, "", "", false, false, false, false) + if err != nil { + utils.Fatalf("Failed to open separate block database: %v", err) + } + chaindb.SetBlockStore(blockdb) + log.Warn("Multi-database is an experimental feature") } - triedb := utils.MakeTrieDatabase(ctx, chaindb, ctx.Bool(utils.CachePreimagesFlag.Name), false, genesis.IsVerkle()) + triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, ctx.Bool(utils.CachePreimagesFlag.Name), false, genesis.IsVerkle()) defer triedb.Close() _, hash, err := core.SetupGenesisBlockWithOverride(chaindb, triedb, genesis, &overrides) @@ -473,6 +480,13 @@ func dumpGenesis(ctx *cli.Context) error { } continue } + // set the separate state & block database + if stack.CheckIfMultiDataBase() && err == nil { + stateDiskDb := utils.MakeStateDataBase(ctx, stack, true, false) + db.SetStateStore(stateDiskDb) + blockDb := utils.MakeBlockDatabase(ctx, stack, true, false) + db.SetBlockStore(blockDb) + } genesis, err := core.ReadGenesis(db) if err != nil { utils.Fatalf("failed to read genesis: %s", err) @@ -500,10 +514,16 @@ func importChain(ctx *cli.Context) error { // Start system runtime metrics collection go metrics.CollectProcessMetrics(3 * time.Second) - stack, _ := makeConfigNode(ctx) + stack, cfg := makeConfigNode(ctx) defer stack.Close() - chain, db := utils.MakeChain(ctx, stack, false) + backend, err := eth.New(stack, &cfg.Eth) + if err != nil { + return err + } + + chain := backend.BlockChain() + db := backend.ChainDb() defer db.Close() // Start periodically gathering memory profiles @@ -739,7 +759,7 @@ func parseDumpConfig(ctx *cli.Context, stack *node.Node) (*state.DumpConfig, eth arg := ctx.Args().First() if hashish(arg) { hash := common.HexToHash(arg) - if number := rawdb.ReadHeaderNumber(db, hash); number != nil { + if number := rawdb.ReadHeaderNumber(db.BlockStore(), hash); number != nil { header = rawdb.ReadHeader(db, hash, *number) } else { return nil, nil, common.Hash{}, fmt.Errorf("block %x not found", hash) @@ -758,7 +778,7 @@ func parseDumpConfig(ctx *cli.Context, stack *node.Node) (*state.DumpConfig, eth } else { // Use latest if scheme == rawdb.PathScheme { - triedb := triedb.NewDatabase(db, &triedb.Config{PathDB: pathdb.ReadOnly}) + triedb := triedb.NewDatabase(db, &triedb.Config{PathDB: utils.PathDBConfigAddJournalFilePath(stack, pathdb.ReadOnly)}) defer triedb.Close() if stateRoot := triedb.Head(); stateRoot != (common.Hash{}) { header.Root = stateRoot @@ -808,7 +828,8 @@ func dump(ctx *cli.Context) error { if err != nil { return err } - triedb := utils.MakeTrieDatabase(ctx, db, true, true, false) // always enable preimage lookup + defer db.Close() + triedb := utils.MakeTrieDatabase(ctx, stack, db, true, true, false) // always enable preimage lookup defer triedb.Close() state, err := state.New(root, state.NewDatabaseWithNodeDB(db, triedb), nil) @@ -828,7 +849,7 @@ func dumpAllRootHashInPath(ctx *cli.Context) error { defer stack.Close() db := utils.MakeChainDatabase(ctx, stack, true, false) defer db.Close() - triedb := triedb.NewDatabase(db, &triedb.Config{PathDB: pathdb.ReadOnly}) + triedb := triedb.NewDatabase(db, &triedb.Config{PathDB: utils.PathDBConfigAddJournalFilePath(stack, pathdb.ReadOnly)}) defer triedb.Close() scheme, err := rawdb.ParseStateScheme(ctx.String(utils.StateSchemeFlag.Name), db) diff --git a/cmd/geth/config.go b/cmd/geth/config.go index 324faa822d..c9a91be8df 100644 --- a/cmd/geth/config.go +++ b/cmd/geth/config.go @@ -211,9 +211,7 @@ func makeFullNode(ctx *cli.Context) (*node.Node, ethapi.Backend) { if ctx.IsSet(utils.OverrideDefaultExtraReserveForBlobRequests.Name) { params.DefaultExtraReserveForBlobRequests = ctx.Uint64(utils.OverrideDefaultExtraReserveForBlobRequests.Name) } - if ctx.IsSet(utils.SeparateDBFlag.Name) && !stack.IsSeparatedDB() { - utils.Fatalf("Failed to locate separate database subdirectory when separatedb parameter has been set") - } + backend, eth := utils.RegisterEthService(stack, &cfg.Eth) // Create gauge with geth system and build information diff --git a/cmd/geth/dbcmd.go b/cmd/geth/dbcmd.go index c50ab32e2f..5a0aaf011a 100644 --- a/cmd/geth/dbcmd.go +++ b/cmd/geth/dbcmd.go @@ -396,8 +396,8 @@ func inspectTrie(ctx *cli.Context) error { var headerBlockHash common.Hash if ctx.NArg() >= 1 { if ctx.Args().Get(0) == "latest" { - headerHash := rawdb.ReadHeadHeaderHash(db) - blockNumber = *(rawdb.ReadHeaderNumber(db, headerHash)) + headerHash := rawdb.ReadHeadHeaderHash(db.BlockStore()) + blockNumber = *(rawdb.ReadHeaderNumber(db.BlockStore(), headerHash)) } else if ctx.Args().Get(0) == "snapshot" { trieRootHash = rawdb.ReadSnapshotRoot(db) blockNumber = math.MaxUint64 @@ -436,7 +436,7 @@ func inspectTrie(ctx *cli.Context) error { var config *triedb.Config if dbScheme == rawdb.PathScheme { config = &triedb.Config{ - PathDB: pathdb.ReadOnly, + PathDB: utils.PathDBConfigAddJournalFilePath(stack, pathdb.ReadOnly), } } else if dbScheme == rawdb.HashScheme { config = triedb.HashDefaults @@ -519,7 +519,7 @@ func checkStateContent(ctx *cli.Context) error { db := utils.MakeChainDatabase(ctx, stack, true, false) defer db.Close() var ( - it = rawdb.NewKeyLengthIterator(db.NewIterator(prefix, start), 32) + it ethdb.Iterator hasher = crypto.NewKeccakState() got = make([]byte, 32) errs int @@ -527,6 +527,11 @@ func checkStateContent(ctx *cli.Context) error { startTime = time.Now() lastLog = time.Now() ) + if stack.CheckIfMultiDataBase() { + it = rawdb.NewKeyLengthIterator(db.StateStore().NewIterator(prefix, start), 32) + } else { + it = rawdb.NewKeyLengthIterator(db.NewIterator(prefix, start), 32) + } for it.Next() { count++ k := it.Key() @@ -573,9 +578,11 @@ func dbStats(ctx *cli.Context) error { defer db.Close() showLeveldbStats(db) - if db.StateStore() != nil { + if stack.CheckIfMultiDataBase() { fmt.Println("show stats of state store") showLeveldbStats(db.StateStore()) + fmt.Println("show stats of block store") + showLeveldbStats(db.BlockStore()) } return nil @@ -591,10 +598,11 @@ func dbCompact(ctx *cli.Context) error { log.Info("Stats before compaction") showLeveldbStats(db) - statediskdb := db.StateStore() - if statediskdb != nil { + if stack.CheckIfMultiDataBase() { fmt.Println("show stats of state store") - showLeveldbStats(statediskdb) + showLeveldbStats(db.StateStore()) + fmt.Println("show stats of block store") + showLeveldbStats(db.BlockStore()) } log.Info("Triggering compaction") @@ -603,8 +611,12 @@ func dbCompact(ctx *cli.Context) error { return err } - if statediskdb != nil { - if err := statediskdb.Compact(nil, nil); err != nil { + if stack.CheckIfMultiDataBase() { + if err := db.StateStore().Compact(nil, nil); err != nil { + log.Error("Compact err", "error", err) + return err + } + if err := db.BlockStore().Compact(nil, nil); err != nil { log.Error("Compact err", "error", err) return err } @@ -612,9 +624,11 @@ func dbCompact(ctx *cli.Context) error { log.Info("Stats after compaction") showLeveldbStats(db) - if statediskdb != nil { + if stack.CheckIfMultiDataBase() { fmt.Println("show stats of state store after compaction") - showLeveldbStats(statediskdb) + showLeveldbStats(db.StateStore()) + fmt.Println("show stats of block store after compaction") + showLeveldbStats(db.BlockStore()) } return nil } @@ -635,18 +649,18 @@ func dbGet(ctx *cli.Context) error { log.Info("Could not decode the key", "error", err) return err } + opDb := db + if stack.CheckIfMultiDataBase() { + keyType := rawdb.DataTypeByKey(key) + if keyType == rawdb.StateDataType { + opDb = db.StateStore() + } else if keyType == rawdb.BlockDataType { + opDb = db.BlockStore() + } + } - statediskdb := db.StateStore() - data, err := db.Get(key) + data, err := opDb.Get(key) if err != nil { - // if separate trie db exist, try to get it from separate db - if statediskdb != nil { - statedata, dberr := statediskdb.Get(key) - if dberr == nil { - fmt.Printf("key %#x: %#x\n", key, statedata) - return nil - } - } log.Info("Get operation failed", "key", fmt.Sprintf("%#x", key), "error", err) return err } @@ -809,11 +823,21 @@ func dbDelete(ctx *cli.Context) error { log.Info("Could not decode the key", "error", err) return err } - data, err := db.Get(key) + opDb := db + if stack.CheckIfMultiDataBase() { + keyType := rawdb.DataTypeByKey(key) + if keyType == rawdb.StateDataType { + opDb = db.StateStore() + } else if keyType == rawdb.BlockDataType { + opDb = db.BlockStore() + } + } + + data, err := opDb.Get(key) if err == nil { fmt.Printf("Previous value: %#x\n", data) } - if err = db.Delete(key); err != nil { + if err = opDb.Delete(key); err != nil { log.Info("Delete operation returned an error", "key", fmt.Sprintf("%#x", key), "error", err) return err } @@ -923,11 +947,22 @@ func dbPut(ctx *cli.Context) error { log.Info("Could not decode the value", "error", err) return err } - data, err = db.Get(key) + + opDb := db + if stack.CheckIfMultiDataBase() { + keyType := rawdb.DataTypeByKey(key) + if keyType == rawdb.StateDataType { + opDb = db.StateStore() + } else if keyType == rawdb.BlockDataType { + opDb = db.BlockStore() + } + } + + data, err = opDb.Get(key) if err == nil { fmt.Printf("Previous value: %#x\n", data) } - return db.Put(key, value) + return opDb.Put(key, value) } // dbDumpTrie shows the key-value slots of a given storage trie @@ -940,8 +975,7 @@ func dbDumpTrie(ctx *cli.Context) error { db := utils.MakeChainDatabase(ctx, stack, true, false) defer db.Close() - - triedb := utils.MakeTrieDatabase(ctx, db, false, true, false) + triedb := utils.MakeTrieDatabase(ctx, stack, db, false, true, false) defer triedb.Close() var ( @@ -1019,7 +1053,7 @@ func freezerInspect(ctx *cli.Context) error { stack, _ := makeConfigNode(ctx) ancient := stack.ResolveAncient("chaindata", ctx.String(utils.AncientFlag.Name)) stack.Close() - return rawdb.InspectFreezerTable(ancient, freezer, table, start, end) + return rawdb.InspectFreezerTable(ancient, freezer, table, start, end, stack.CheckIfMultiDataBase()) } func importLDBdata(ctx *cli.Context) error { @@ -1159,11 +1193,11 @@ func showMetaData(ctx *cli.Context) error { defer stack.Close() db := utils.MakeChainDatabase(ctx, stack, true, false) defer db.Close() - ancients, err := db.Ancients() + ancients, err := db.BlockStore().Ancients() if err != nil { fmt.Fprintf(os.Stderr, "Error accessing ancients: %v", err) } - data := rawdb.ReadChainMetadata(db) + data := rawdb.ReadChainMetadataFromMultiDatabase(db) data = append(data, []string{"frozen", fmt.Sprintf("%d items", ancients)}) data = append(data, []string{"snapshotGenerator", snapshot.ParseGeneratorStatus(rawdb.ReadSnapshotGenerator(db))}) if b := rawdb.ReadHeadBlock(db); b != nil { @@ -1224,8 +1258,8 @@ func hbss2pbss(ctx *cli.Context) error { log.Info("hbss2pbss triedb", "scheme", triedb.Scheme()) defer triedb.Close() - headerHash := rawdb.ReadHeadHeaderHash(db) - blockNumber := rawdb.ReadHeaderNumber(db, headerHash) + headerHash := rawdb.ReadHeadHeaderHash(db.BlockStore()) + blockNumber := rawdb.ReadHeaderNumber(db.BlockStore(), headerHash) if blockNumber == nil { log.Error("read header number failed.") return fmt.Errorf("read header number failed") diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 582213e587..a2e48c7465 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -103,6 +103,7 @@ var ( utils.TransactionHistoryFlag, utils.StateHistoryFlag, utils.PathDBSyncFlag, + utils.JournalFileFlag, utils.LightServeFlag, // deprecated utils.LightIngressFlag, // deprecated utils.LightEgressFlag, // deprecated @@ -144,6 +145,7 @@ var ( // utils.MinerNewPayloadTimeout, utils.NATFlag, utils.NoDiscoverFlag, + utils.PeerFilterPatternsFlag, utils.DiscoveryV4Flag, utils.DiscoveryV5Flag, utils.InstanceFlag, diff --git a/cmd/geth/pruneblock_test.go b/cmd/geth/pruneblock_test.go index 1d8f068a9d..141f64f3ba 100644 --- a/cmd/geth/pruneblock_test.go +++ b/cmd/geth/pruneblock_test.go @@ -178,10 +178,11 @@ func BlockchainCreator(t *testing.T, chaindbPath, AncientPath string, blockRemai // Force run a freeze cycle type freezer interface { - Freeze(threshold uint64) error + Freeze() error Ancients() (uint64, error) } - db.(freezer).Freeze(10) + blockchain.SetFinalized(blocks[len(blocks)-1].Header()) + db.(freezer).Freeze() frozen, err := db.Ancients() //make sure there're frozen items diff --git a/cmd/geth/snapshot.go b/cmd/geth/snapshot.go index d00fc9523f..61b38deddc 100644 --- a/cmd/geth/snapshot.go +++ b/cmd/geth/snapshot.go @@ -355,7 +355,15 @@ func pruneBlock(ctx *cli.Context) error { if !ctx.IsSet(utils.AncientFlag.Name) { return errors.New("datadir.ancient must be set") } else { - oldAncientPath = ctx.String(utils.AncientFlag.Name) + if stack.CheckIfMultiDataBase() { + ancientPath := ctx.String(utils.AncientFlag.Name) + index := strings.LastIndex(ancientPath, "/ancient/chain") + if index != -1 { + oldAncientPath = ancientPath[:index] + "/block/ancient/chain" + } + } else { + oldAncientPath = ctx.String(utils.AncientFlag.Name) + } if !filepath.IsAbs(oldAncientPath) { // force absolute paths, which often fail due to the splicing of relative paths return errors.New("datadir.ancient not abs path") @@ -524,7 +532,7 @@ func verifyState(ctx *cli.Context) error { log.Error("Failed to load head block") return errors.New("no head block") } - triedb := utils.MakeTrieDatabase(ctx, chaindb, false, true, false) + triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, false, true, false) defer triedb.Close() snapConfig := snapshot.Config{ @@ -579,7 +587,7 @@ func traverseState(ctx *cli.Context) error { chaindb := utils.MakeChainDatabase(ctx, stack, true, false) defer chaindb.Close() - triedb := utils.MakeTrieDatabase(ctx, chaindb, false, true, false) + triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, false, true, false) defer triedb.Close() headBlock := rawdb.ReadHeadBlock(chaindb) @@ -688,7 +696,7 @@ func traverseRawState(ctx *cli.Context) error { chaindb := utils.MakeChainDatabase(ctx, stack, true, false) defer chaindb.Close() - triedb := utils.MakeTrieDatabase(ctx, chaindb, false, true, false) + triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, false, true, false) defer triedb.Close() headBlock := rawdb.ReadHeadBlock(chaindb) @@ -852,7 +860,8 @@ func dumpState(ctx *cli.Context) error { if err != nil { return err } - triedb := utils.MakeTrieDatabase(ctx, db, false, true, false) + defer db.Close() + triedb := utils.MakeTrieDatabase(ctx, stack, db, false, true, false) defer triedb.Close() snapConfig := snapshot.Config{ @@ -935,7 +944,7 @@ func snapshotExportPreimages(ctx *cli.Context) error { chaindb := utils.MakeChainDatabase(ctx, stack, true, false) defer chaindb.Close() - triedb := utils.MakeTrieDatabase(ctx, chaindb, false, true, false) + triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, false, true, false) defer triedb.Close() var root common.Hash diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index bec7929026..d9574dd999 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -93,10 +93,10 @@ var ( Value: flags.DirectoryString(node.DefaultDataDir()), Category: flags.EthCategory, } - SeparateDBFlag = &cli.BoolFlag{ - Name: "separatedb", - Usage: "Enable a separated trie database, it will be created within a subdirectory called state, " + - "Users can copy this state directory to another directory or disk, and then create a symbolic link to the state directory under the chaindata", + MultiDataBaseFlag = &cli.BoolFlag{ + Name: "multidatabase", + Usage: "Enable a separated state and block database, it will be created within two subdirectory called state and block, " + + "Users can copy this state or block directory to another directory or disk, and then create a symbolic link to the state directory under the chaindata", Category: flags.EthCategory, } DirectBroadcastFlag = &cli.BoolFlag{ @@ -224,7 +224,7 @@ var ( // hbss2pbss command options ForceFlag = &cli.BoolFlag{ Name: "force", - Usage: "Force convert hbss trie node to pbss trie node. Ingore any metadata", + Usage: "Force convert hbss trie node to pbss trie node. Ignore any metadata", Value: false, } // Dump command options. @@ -365,6 +365,12 @@ var ( Value: false, Category: flags.StateCategory, } + JournalFileFlag = &cli.BoolFlag{ + Name: "journalfile", + Usage: "Enable using journal file to store the TrieJournal instead of KVDB in pbss (default = false)", + Value: false, + Category: flags.StateCategory, + } StateHistoryFlag = &cli.Uint64Flag{ Name: "history.state", Usage: "Number of recent blocks to retain state history for (default = 90,000 blocks, 0 = entire chain)", @@ -876,6 +882,11 @@ var ( Usage: "Disables the peer discovery mechanism (manual peer addition)", Category: flags.NetworkingCategory, } + PeerFilterPatternsFlag = &cli.StringSliceFlag{ + Name: "peerfilter", + Usage: "Disallow peers connection if peer name matches the given regular expressions", + Category: flags.NetworkingCategory, + } DiscoveryV4Flag = &cli.BoolFlag{ Name: "discovery.v4", Aliases: []string{"discv4"}, @@ -1144,7 +1155,7 @@ var ( DBEngineFlag, StateSchemeFlag, HttpHeaderFlag, - SeparateDBFlag, + MultiDataBaseFlag, } ) @@ -1542,6 +1553,9 @@ func SetP2PConfig(ctx *cli.Context, cfg *p2p.Config) { if ctx.IsSet(NoDiscoverFlag.Name) { cfg.NoDiscovery = true } + if ctx.IsSet(PeerFilterPatternsFlag.Name) { + cfg.PeerFilterPatterns = ctx.StringSlice(PeerFilterPatternsFlag.Name) + } CheckExclusive(ctx, DiscoveryV4Flag, NoDiscoverFlag) CheckExclusive(ctx, DiscoveryV5Flag, NoDiscoverFlag) @@ -1962,6 +1976,10 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) { if ctx.IsSet(PathDBSyncFlag.Name) { cfg.PathSyncFlush = true } + if ctx.IsSet(JournalFileFlag.Name) { + cfg.JournalFileEnabled = true + } + if ctx.String(GCModeFlag.Name) == "archive" && cfg.TransactionHistory != 0 { cfg.TransactionHistory = 0 log.Warn("Disabled transaction unindexing for archive node") @@ -2377,9 +2395,11 @@ func MakeChainDatabase(ctx *cli.Context, stack *node.Node, readonly, disableFree default: chainDb, err = stack.OpenDatabaseWithFreezer("chaindata", cache, handles, ctx.String(AncientFlag.Name), "", readonly, disableFreeze, false, false) // set the separate state database - if stack.IsSeparatedDB() && err == nil { + if stack.CheckIfMultiDataBase() && err == nil { stateDiskDb := MakeStateDataBase(ctx, stack, readonly, false) chainDb.SetStateStore(stateDiskDb) + blockDb := MakeBlockDatabase(ctx, stack, readonly, false) + chainDb.SetBlockStore(blockDb) } } if err != nil { @@ -2391,7 +2411,7 @@ func MakeChainDatabase(ctx *cli.Context, stack *node.Node, readonly, disableFree // MakeStateDataBase open a separate state database using the flags passed to the client and will hard crash if it fails. func MakeStateDataBase(ctx *cli.Context, stack *node.Node, readonly, disableFreeze bool) ethdb.Database { cache := ctx.Int(CacheFlag.Name) * ctx.Int(CacheDatabaseFlag.Name) / 100 - handles := MakeDatabaseHandles(ctx.Int(FDLimitFlag.Name)) / 2 + handles := MakeDatabaseHandles(ctx.Int(FDLimitFlag.Name)) * 90 / 100 statediskdb, err := stack.OpenDatabaseWithFreezer("chaindata/state", cache, handles, "", "", readonly, disableFreeze, false, false) if err != nil { Fatalf("Failed to open separate trie database: %v", err) @@ -2399,6 +2419,23 @@ func MakeStateDataBase(ctx *cli.Context, stack *node.Node, readonly, disableFree return statediskdb } +// MakeBlockDatabase open a separate block database using the flags passed to the client and will hard crash if it fails. +func MakeBlockDatabase(ctx *cli.Context, stack *node.Node, readonly, disableFreeze bool) ethdb.Database { + cache := ctx.Int(CacheFlag.Name) * ctx.Int(CacheDatabaseFlag.Name) / 100 + handles := MakeDatabaseHandles(ctx.Int(FDLimitFlag.Name)) / 10 + blockDb, err := stack.OpenDatabaseWithFreezer("chaindata/block", cache, handles, "", "", readonly, disableFreeze, false, false) + if err != nil { + Fatalf("Failed to open separate block database: %v", err) + } + return blockDb +} + +func PathDBConfigAddJournalFilePath(stack *node.Node, config *pathdb.Config) *pathdb.Config { + path := fmt.Sprintf("%s/%s", stack.ResolvePath("chaindata"), eth.JournalFileName) + config.JournalFilePath = path + return config +} + // tryMakeReadOnlyDatabase try to open the chain database in read-only mode, // or fallback to write mode if the database is not initialized. // @@ -2541,7 +2578,7 @@ func MakeConsolePreloads(ctx *cli.Context) []string { } // MakeTrieDatabase constructs a trie database based on the configured scheme. -func MakeTrieDatabase(ctx *cli.Context, disk ethdb.Database, preimage bool, readOnly bool, isVerkle bool) *triedb.Database { +func MakeTrieDatabase(ctx *cli.Context, stack *node.Node, disk ethdb.Database, preimage bool, readOnly bool, isVerkle bool) *triedb.Database { config := &triedb.Config{ Preimages: preimage, IsVerkle: isVerkle, @@ -2562,6 +2599,7 @@ func MakeTrieDatabase(ctx *cli.Context, disk ethdb.Database, preimage bool, read } else { config.PathDB = pathdb.Defaults } + config.PathDB.JournalFilePath = fmt.Sprintf("%s/%s", stack.ResolvePath("chaindata"), eth.JournalFileName) return triedb.NewDatabase(disk, config) } diff --git a/consensus/parlia/parlia.go b/consensus/parlia/parlia.go index 911a04359c..69b82d408c 100644 --- a/consensus/parlia/parlia.go +++ b/consensus/parlia/parlia.go @@ -16,7 +16,7 @@ import ( lru "github.com/hashicorp/golang-lru" "github.com/holiman/uint256" - "github.com/prysmaticlabs/prysm/v4/crypto/bls" + "github.com/prysmaticlabs/prysm/v5/crypto/bls" "github.com/willf/bitset" "golang.org/x/crypto/sha3" @@ -48,8 +48,9 @@ import ( ) const ( - inMemorySnapshots = 256 // Number of recent snapshots to keep in memory - inMemorySignatures = 4096 // Number of recent block signatures to keep in memory + inMemorySnapshots = 256 // Number of recent snapshots to keep in memory + inMemorySignatures = 4096 // Number of recent block signatures to keep in memory + inMemoryHeaders = 86400 // Number of recent headers to keep in memory for double sign detection, checkpointInterval = 1024 // Number of blocks after which to save the snapshot to the database defaultEpochLength = uint64(100) // Default number of blocks of checkpoint to update validatorSet from contract @@ -80,6 +81,7 @@ var ( verifyVoteAttestationErrorCounter = metrics.NewRegisteredCounter("parlia/verifyVoteAttestation/error", nil) updateAttestationErrorCounter = metrics.NewRegisteredCounter("parlia/updateAttestation/error", nil) validVotesfromSelfCounter = metrics.NewRegisteredCounter("parlia/VerifyVote/self", nil) + doubleSignCounter = metrics.NewRegisteredCounter("parlia/doublesign", nil) systemContracts = map[common.Address]bool{ common.HexToAddress(systemcontracts.ValidatorContract): true, @@ -216,8 +218,11 @@ type Parlia struct { genesisHash common.Hash db ethdb.Database // Database to store and retrieve snapshot checkpoints - recentSnaps *lru.ARCCache // Snapshots for recent block to speed up - signatures *lru.ARCCache // Signatures of recent blocks to speed up mining + recentSnaps *lru.ARCCache // Snapshots for recent block to speed up + signatures *lru.ARCCache // Signatures of recent blocks to speed up mining + recentHeaders *lru.ARCCache // + // Recent headers to check for double signing: key includes block number and miner. value is the block header + // If same key's value already exists for different block header roots then double sign is detected signer types.Signer @@ -263,6 +268,10 @@ func New( if err != nil { panic(err) } + recentHeaders, err := lru.NewARC(inMemoryHeaders) + if err != nil { + panic(err) + } vABIBeforeLuban, err := abi.JSON(strings.NewReader(validatorSetABIBeforeLuban)) if err != nil { panic(err) @@ -286,6 +295,7 @@ func New( db: db, ethAPI: ethAPI, recentSnaps: recentSnaps, + recentHeaders: recentHeaders, signatures: signatures, validatorSetABIBeforeLuban: vABIBeforeLuban, validatorSetABI: vABI, @@ -809,6 +819,17 @@ func (p *Parlia) verifySeal(chain consensus.ChainHeaderReader, header *types.Hea return errCoinBaseMisMatch } + // check for double sign & add to cache + key := proposalKey(*header) + preHash, ok := p.recentHeaders.Get(key) + if ok && preHash != header.Hash() { + doubleSignCounter.Inc(1) + log.Warn("DoubleSign detected", " block", header.Number, " miner", header.Coinbase, + "hash1", preHash.(common.Hash), "hash2", header.Hash()) + } else { + p.recentHeaders.Add(key, header.Hash()) + } + if _, ok := snap.Validators[signer]; !ok { return errUnauthorizedValidator(signer.String()) } @@ -2011,3 +2032,8 @@ func applyMessage( } return msg.Gas() - returnGas, err } + +// proposalKey build a key which is a combination of the block number and the proposer address. +func proposalKey(header types.Header) string { + return header.ParentHash.String() + header.Coinbase.String() +} diff --git a/core/blockchain.go b/core/blockchain.go index 1ec98a09b4..afe2971df6 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -165,6 +165,8 @@ type CacheConfig struct { StateHistory uint64 // Number of blocks from head whose state histories are reserved. StateScheme string // Scheme used to store ethereum states and merkle tree nodes on top PathSyncFlush bool // Whether sync flush the trienodebuffer of pathdb to disk. + JournalFilePath string + JournalFile bool SnapshotNoBuild bool // Whether the background generation is allowed SnapshotWait bool // Wait for snapshot construction on startup. TODO(karalabe): This is a dirty hack for testing, nuke it @@ -184,10 +186,12 @@ func (c *CacheConfig) triedbConfig() *triedb.Config { } if c.StateScheme == rawdb.PathScheme { config.PathDB = &pathdb.Config{ - SyncFlush: c.PathSyncFlush, - StateHistory: c.StateHistory, - CleanCacheSize: c.TrieCleanLimit * 1024 * 1024, - DirtyCacheSize: c.TrieDirtyLimit * 1024 * 1024, + SyncFlush: c.PathSyncFlush, + StateHistory: c.StateHistory, + CleanCacheSize: c.TrieCleanLimit * 1024 * 1024, + DirtyCacheSize: c.TrieDirtyLimit * 1024 * 1024, + JournalFilePath: c.JournalFilePath, + JournalFile: c.JournalFile, } } return config @@ -272,6 +276,7 @@ type BlockChain struct { highestVerifiedHeader atomic.Pointer[types.Header] currentBlock atomic.Pointer[types.Header] // Current head of the chain currentSnapBlock atomic.Pointer[types.Header] // Current head of snap-sync + currentFinalBlock atomic.Pointer[types.Header] // Latest (consensus) finalized block chasingHead atomic.Pointer[types.Header] bodyCache *lru.Cache[common.Hash, *types.Body] @@ -412,7 +417,7 @@ func NewBlockChain(db ethdb.Database, cacheConfig *CacheConfig, genesis *Genesis // Make sure the state associated with the block is available, or log out // if there is no available state, waiting for state sync. head := bc.CurrentBlock() - if !bc.NoTries() && !bc.HasState(head.Root) { + if !bc.HasState(head.Root) { if head.Number.Uint64() == 0 { // The genesis state is missing, which is only possible in the path-based // scheme. This situation occurs when the initial state sync is not finished @@ -428,7 +433,7 @@ func NewBlockChain(db ethdb.Database, cacheConfig *CacheConfig, genesis *Genesis if bc.cacheConfig.SnapshotLimit > 0 { diskRoot = rawdb.ReadSnapshotRoot(bc.db) } - if bc.triedb.Scheme() == rawdb.PathScheme { + if bc.triedb.Scheme() == rawdb.PathScheme && !bc.NoTries() { recoverable, _ := bc.triedb.Recoverable(diskRoot) if !bc.HasState(diskRoot) && !recoverable { diskRoot = bc.triedb.Head() @@ -662,7 +667,7 @@ func (bc *BlockChain) cacheBlock(hash common.Hash, block *types.Block) { // into node seamlessly. func (bc *BlockChain) empty() bool { genesis := bc.genesisBlock.Hash() - for _, hash := range []common.Hash{rawdb.ReadHeadBlockHash(bc.db), rawdb.ReadHeadHeaderHash(bc.db), rawdb.ReadHeadFastBlockHash(bc.db)} { + for _, hash := range []common.Hash{rawdb.ReadHeadBlockHash(bc.db.BlockStore()), rawdb.ReadHeadHeaderHash(bc.db.BlockStore()), rawdb.ReadHeadFastBlockHash(bc.db)} { if hash != genesis { return false } @@ -698,7 +703,7 @@ func (bc *BlockChain) getFinalizedNumber(header *types.Header) uint64 { // assumes that the chain manager mutex is held. func (bc *BlockChain) loadLastState() error { // Restore the last known head block - head := rawdb.ReadHeadBlockHash(bc.db) + head := rawdb.ReadHeadBlockHash(bc.db.BlockStore()) if head == (common.Hash{}) { // Corrupt or empty database, init from scratch log.Warn("Empty database, resetting chain") @@ -720,7 +725,7 @@ func (bc *BlockChain) loadLastState() error { // Restore the last known head header headHeader := headBlock.Header() - if head := rawdb.ReadHeadHeaderHash(bc.db); head != (common.Hash{}) { + if head := rawdb.ReadHeadHeaderHash(bc.db.BlockStore()); head != (common.Hash{}) { if header := bc.GetHeaderByHash(head); header != nil { headHeader = header } @@ -991,12 +996,23 @@ func (bc *BlockChain) rewindPathHead(head *types.Header, root common.Hash) (*typ // then block number zero is returned, indicating that snapshot recovery is disabled // and the whole snapshot should be auto-generated in case of head mismatch. func (bc *BlockChain) rewindHead(head *types.Header, root common.Hash) (*types.Header, uint64) { - if bc.triedb.Scheme() == rawdb.PathScheme { + if bc.triedb.Scheme() == rawdb.PathScheme && !bc.NoTries() { return bc.rewindPathHead(head, root) } return bc.rewindHashHead(head, root) } +// SetFinalized sets the finalized block. +// This function differs slightly from Ethereum; we fine-tune it through the outer-layer setting finalizedBlockGauge. +func (bc *BlockChain) SetFinalized(header *types.Header) { + bc.currentFinalBlock.Store(header) + if header != nil { + rawdb.WriteFinalizedBlockHash(bc.db.BlockStore(), header.Hash()) + } else { + rawdb.WriteFinalizedBlockHash(bc.db.BlockStore(), common.Hash{}) + } +} + // setHeadBeyondRoot rewinds the local chain to a new head with the extra condition // that the rewind must pass the specified state root. This method is meant to be // used when rewinding with snapshots enabled to ensure that we go back further than @@ -1028,6 +1044,19 @@ func (bc *BlockChain) setHeadBeyondRoot(head uint64, time uint64, root common.Ha // block. Note, depth equality is permitted to allow using SetHead as a // chain reparation mechanism without deleting any data! if currentBlock := bc.CurrentBlock(); currentBlock != nil && header.Number.Uint64() <= currentBlock.Number.Uint64() { + // load bc.snaps for the judge `HasState` + if bc.NoTries() { + if bc.cacheConfig.SnapshotLimit > 0 { + snapconfig := snapshot.Config{ + CacheSize: bc.cacheConfig.SnapshotLimit, + NoBuild: bc.cacheConfig.SnapshotNoBuild, + AsyncBuild: !bc.cacheConfig.SnapshotWait, + } + bc.snaps, _ = snapshot.New(snapconfig, bc.db, bc.triedb, header.Root, int(bc.cacheConfig.TriesInMemory), bc.NoTries()) + } + defer func() { bc.snaps = nil }() + } + var newHeadBlock *types.Header newHeadBlock, rootNumber = bc.rewindHead(header, root) rawdb.WriteHeadBlockHash(db, newHeadBlock.Hash()) @@ -1129,6 +1158,11 @@ func (bc *BlockChain) setHeadBeyondRoot(head uint64, time uint64, root common.Ha bc.txLookupCache.Purge() bc.futureBlocks.Purge() + if finalized := bc.CurrentFinalBlock(); finalized != nil && head < finalized.Number.Uint64() { + log.Error("SetHead invalidated finalized block") + bc.SetFinalized(nil) + } + return rootNumber, bc.loadLastState() } @@ -1197,10 +1231,10 @@ func (bc *BlockChain) ResetWithGenesisBlock(genesis *types.Block) error { defer bc.chainmu.Unlock() // Prepare the genesis block and reinitialise the chain - batch := bc.db.NewBatch() - rawdb.WriteTd(batch, genesis.Hash(), genesis.NumberU64(), genesis.Difficulty()) - rawdb.WriteBlock(batch, genesis) - if err := batch.Write(); err != nil { + blockBatch := bc.db.BlockStore().NewBatch() + rawdb.WriteTd(blockBatch, genesis.Hash(), genesis.NumberU64(), genesis.Difficulty()) + rawdb.WriteBlock(blockBatch, genesis) + if err := blockBatch.Write(); err != nil { log.Crit("Failed to write genesis block", "err", err) } bc.writeHeadBlock(genesis) @@ -1263,12 +1297,13 @@ func (bc *BlockChain) ExportN(w io.Writer, first uint64, last uint64) error { // Note, this function assumes that the `mu` mutex is held! func (bc *BlockChain) writeHeadBlock(block *types.Block) { // Add the block to the canonical chain number scheme and mark as the head + rawdb.WriteCanonicalHash(bc.db.BlockStore(), block.Hash(), block.NumberU64()) + rawdb.WriteHeadHeaderHash(bc.db.BlockStore(), block.Hash()) + rawdb.WriteHeadBlockHash(bc.db.BlockStore(), block.Hash()) + batch := bc.db.NewBatch() - rawdb.WriteHeadHeaderHash(batch, block.Hash()) rawdb.WriteHeadFastBlockHash(batch, block.Hash()) - rawdb.WriteCanonicalHash(batch, block.Hash(), block.NumberU64()) rawdb.WriteTxLookupEntriesByBlock(batch, block) - rawdb.WriteHeadBlockHash(batch, block.Hash()) // Flush the whole batch into the disk, exit the node if failed if err := batch.Write(); err != nil { @@ -1354,7 +1389,7 @@ func (bc *BlockChain) Stop() { } else { rawdb.WriteSafePointBlockNumber(bc.db, recent.NumberU64()) once.Do(func() { - rawdb.WriteHeadBlockHash(bc.db, recent.Hash()) + rawdb.WriteHeadBlockHash(bc.db.BlockStore(), recent.Hash()) }) } } @@ -1555,24 +1590,24 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [ // Delete block data from the main database. var ( - batch = bc.db.NewBatch() canonHashes = make(map[common.Hash]struct{}) + blockBatch = bc.db.BlockStore().NewBatch() ) for _, block := range blockChain { canonHashes[block.Hash()] = struct{}{} if block.NumberU64() == 0 { continue } - rawdb.DeleteCanonicalHash(batch, block.NumberU64()) - rawdb.DeleteBlockWithoutNumber(batch, block.Hash(), block.NumberU64()) + rawdb.DeleteCanonicalHash(blockBatch, block.NumberU64()) + rawdb.DeleteBlockWithoutNumber(blockBatch, block.Hash(), block.NumberU64()) } // Delete side chain hash-to-number mappings. for _, nh := range rawdb.ReadAllHashesInRange(bc.db, first.NumberU64(), last.NumberU64()) { if _, canon := canonHashes[nh.Hash]; !canon { - rawdb.DeleteHeader(batch, nh.Hash, nh.Number) + rawdb.DeleteHeader(blockBatch, nh.Hash, nh.Number) } } - if err := batch.Write(); err != nil { + if err := blockBatch.Write(); err != nil { return 0, err } stats.processed += int32(len(blockChain)) @@ -1584,6 +1619,7 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [ var ( skipPresenceCheck = false batch = bc.db.NewBatch() + blockBatch = bc.db.BlockStore().NewBatch() ) for i, block := range blockChain { // Short circuit insertion if shutting down or processing failed @@ -1607,10 +1643,10 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [ } } // Write all the data out into the database - rawdb.WriteBody(batch, block.Hash(), block.NumberU64(), block.Body()) - rawdb.WriteReceipts(batch, block.Hash(), block.NumberU64(), receiptChain[i]) + rawdb.WriteBody(blockBatch, block.Hash(), block.NumberU64(), block.Body()) + rawdb.WriteReceipts(blockBatch, block.Hash(), block.NumberU64(), receiptChain[i]) if bc.chainConfig.IsCancun(block.Number(), block.Time()) { - rawdb.WriteBlobSidecars(batch, block.Hash(), block.NumberU64(), block.Sidecars()) + rawdb.WriteBlobSidecars(blockBatch, block.Hash(), block.NumberU64(), block.Sidecars()) } // Write everything belongs to the blocks into the database. So that @@ -1623,6 +1659,13 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [ size += int64(batch.ValueSize()) batch.Reset() } + if blockBatch.ValueSize() >= ethdb.IdealBatchSize { + if err := blockBatch.Write(); err != nil { + return 0, err + } + size += int64(blockBatch.ValueSize()) + blockBatch.Reset() + } stats.processed++ } // Write everything belongs to the blocks into the database. So that @@ -1634,6 +1677,12 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [ return 0, err } } + if blockBatch.ValueSize() > 0 { + size += int64(blockBatch.ValueSize()) + if err := blockBatch.Write(); err != nil { + return 0, err + } + } updateHead(blockChain[len(blockChain)-1]) return 0, nil } @@ -1678,14 +1727,14 @@ func (bc *BlockChain) writeBlockWithoutState(block *types.Block, td *big.Int) (e if bc.insertStopped() { return errInsertionInterrupted } - batch := bc.db.NewBatch() - rawdb.WriteTd(batch, block.Hash(), block.NumberU64(), td) - rawdb.WriteBlock(batch, block) + blockBatch := bc.db.BlockStore().NewBatch() + rawdb.WriteTd(blockBatch, block.Hash(), block.NumberU64(), td) + rawdb.WriteBlock(blockBatch, block) // if cancun is enabled, here need to write sidecars too if bc.chainConfig.IsCancun(block.Number(), block.Time()) { - rawdb.WriteBlobSidecars(batch, block.Hash(), block.NumberU64(), block.Sidecars()) + rawdb.WriteBlobSidecars(blockBatch, block.Hash(), block.NumberU64(), block.Sidecars()) } - if err := batch.Write(); err != nil { + if err := blockBatch.Write(); err != nil { log.Crit("Failed to write block into disk", "err", err) } return nil @@ -1723,7 +1772,8 @@ func (bc *BlockChain) writeBlockWithState(block *types.Block, receipts []*types. wg := sync.WaitGroup{} wg.Add(1) go func() { - blockBatch := bc.db.NewBatch() + rawdb.WritePreimages(bc.db, state.Preimages()) + blockBatch := bc.db.BlockStore().NewBatch() rawdb.WriteTd(blockBatch, block.Hash(), block.NumberU64(), externTd) rawdb.WriteBlock(blockBatch, block) rawdb.WriteReceipts(blockBatch, block.Hash(), block.NumberU64(), receipts) @@ -1892,12 +1942,16 @@ func (bc *BlockChain) writeBlockAndSetHead(block *types.Block, receipts []*types // canonical blocks. Avoid firing too many ChainHeadEvents, // we will fire an accumulated ChainHeadEvent and disable fire // event here. + var finalizedHeader *types.Header + if posa, ok := bc.Engine().(consensus.PoSA); ok { + if finalizedHeader = posa.GetFinalizedHeader(bc, block.Header()); finalizedHeader != nil { + bc.SetFinalized(finalizedHeader) + } + } if emitHeadEvent { bc.chainHeadFeed.Send(ChainHeadEvent{Block: block}) - if posa, ok := bc.Engine().(consensus.PoSA); ok { - if finalizedHeader := posa.GetFinalizedHeader(bc, block.Header()); finalizedHeader != nil { - bc.finalizedHeaderFeed.Send(FinalizedHeaderEvent{finalizedHeader}) - } + if finalizedHeader != nil { + bc.finalizedHeaderFeed.Send(FinalizedHeaderEvent{finalizedHeader}) } } } else { @@ -2136,7 +2190,7 @@ func (bc *BlockChain) insertChain(chain types.Blocks, setHead bool) (int, error) // state, but if it's this special case here(skip reexecution) we will lose // the empty receipt entry. if len(block.Transactions()) == 0 { - rawdb.WriteReceipts(bc.db, block.Hash(), block.NumberU64(), nil) + rawdb.WriteReceipts(bc.db.BlockStore(), block.Hash(), block.NumberU64(), nil) } else { log.Error("Please file an issue, skip known block execution without receipt", "hash", block.Hash(), "number", block.NumberU64()) @@ -2681,6 +2735,7 @@ func (bc *BlockChain) reorg(oldHead *types.Header, newHead *types.Block) error { var ( indexesBatch = bc.db.NewBatch() diffs = types.HashDifference(deletedTxs, addedTxs) + blockBatch = bc.db.BlockStore().NewBatch() ) for _, tx := range diffs { rawdb.DeleteTxLookupEntry(indexesBatch, tx) @@ -2697,11 +2752,14 @@ func (bc *BlockChain) reorg(oldHead *types.Header, newHead *types.Block) error { if hash == (common.Hash{}) { break } - rawdb.DeleteCanonicalHash(indexesBatch, i) + rawdb.DeleteCanonicalHash(blockBatch, i) } if err := indexesBatch.Write(); err != nil { log.Crit("Failed to delete useless indexes", "err", err) } + if err := blockBatch.Write(); err != nil { + log.Crit("Failed to delete useless indexes use block batch", "err", err) + } // Send out events for logs from the old canon chain, and 'reborn' // logs from the new canon chain. The number of logs can be very diff --git a/core/blockchain_insert.go b/core/blockchain_insert.go index fafe684aa1..4777bff1ac 100644 --- a/core/blockchain_insert.go +++ b/core/blockchain_insert.go @@ -48,16 +48,19 @@ func (st *insertStats) report(chain []*types.Block, index int, snapDiffItems, sn // If we're at the last block of the batch or report period reached, log if index == len(chain)-1 || elapsed >= statsReportLimit { // Count the number of transactions in this segment - var txs int + var txs, blobs int for _, block := range chain[st.lastIndex : index+1] { txs += len(block.Transactions()) + for _, sidecar := range block.Sidecars() { + blobs += len(sidecar.Blobs) + } } end := chain[index] // Assemble the log context and send it to the logger context := []interface{}{ "number", end.Number(), "hash", end.Hash(), "miner", end.Coinbase(), - "blocks", st.processed, "txs", txs, "mgas", float64(st.usedGas) / 1000000, + "blocks", st.processed, "txs", txs, "blobs", blobs, "mgas", float64(st.usedGas) / 1000000, "elapsed", common.PrettyDuration(elapsed), "mgasps", float64(st.usedGas) * 1000 / float64(elapsed), } if timestamp := time.Unix(int64(end.Time()), 0); time.Since(timestamp) > time.Minute { diff --git a/core/blockchain_reader.go b/core/blockchain_reader.go index 5d5d3e0aaa..8c22d66d11 100644 --- a/core/blockchain_reader.go +++ b/core/blockchain_reader.go @@ -231,7 +231,7 @@ func (bc *BlockChain) GetReceiptsByHash(hash common.Hash) types.Receipts { if receipts, ok := bc.receiptsCache.Get(hash); ok { return receipts } - number := rawdb.ReadHeaderNumber(bc.db, hash) + number := rawdb.ReadHeaderNumber(bc.db.BlockStore(), hash) if number == nil { return nil } diff --git a/core/blockchain_repair_test.go b/core/blockchain_repair_test.go index 3cfcdafe4a..820d4a1f64 100644 --- a/core/blockchain_repair_test.go +++ b/core/blockchain_repair_test.go @@ -1832,10 +1832,14 @@ func testRepairWithScheme(t *testing.T, tt *rewindTest, snapshots bool, scheme s } // Force run a freeze cycle type freezer interface { - Freeze(threshold uint64) error + Freeze() error Ancients() (uint64, error) } - db.(freezer).Freeze(tt.freezeThreshold) + if tt.freezeThreshold < uint64(tt.canonicalBlocks) { + final := uint64(tt.canonicalBlocks) - tt.freezeThreshold + chain.SetFinalized(canonblocks[int(final)-1].Header()) + } + db.(freezer).Freeze() // Set the simulated pivot block if tt.pivotBlock != nil { diff --git a/core/blockchain_sethead_test.go b/core/blockchain_sethead_test.go index 217610c33a..cf067312e2 100644 --- a/core/blockchain_sethead_test.go +++ b/core/blockchain_sethead_test.go @@ -2045,10 +2045,14 @@ func testSetHeadWithScheme(t *testing.T, tt *rewindTest, snapshots bool, scheme // Force run a freeze cycle type freezer interface { - Freeze(threshold uint64) error + Freeze() error Ancients() (uint64, error) } - db.(freezer).Freeze(tt.freezeThreshold) + if tt.freezeThreshold < uint64(tt.canonicalBlocks) { + final := uint64(tt.canonicalBlocks) - tt.freezeThreshold + chain.SetFinalized(canonblocks[int(final)-1].Header()) + } + db.(freezer).Freeze() // Set the simulated pivot block if tt.pivotBlock != nil { diff --git a/core/chain_indexer.go b/core/chain_indexer.go index f5fce72588..6ccca69e52 100644 --- a/core/chain_indexer.go +++ b/core/chain_indexer.go @@ -227,8 +227,8 @@ func (c *ChainIndexer) eventLoop(currentHeader *types.Header, events chan ChainH // Reorg to the common ancestor if needed (might not exist in light sync mode, skip reorg then) // TODO(karalabe, zsfelfoldi): This seems a bit brittle, can we detect this case explicitly? - if rawdb.ReadCanonicalHash(c.chainDb, prevHeader.Number.Uint64()) != prevHash { - if h := rawdb.FindCommonAncestor(c.chainDb, prevHeader, header); h != nil { + if rawdb.ReadCanonicalHash(c.chainDb.BlockStore(), prevHeader.Number.Uint64()) != prevHash { + if h := rawdb.FindCommonAncestor(c.chainDb.BlockStore(), prevHeader, header); h != nil { c.newHead(h.Number.Uint64(), true) } } diff --git a/core/data_availability.go b/core/data_availability.go index cd8e58a147..2953c8c369 100644 --- a/core/data_availability.go +++ b/core/data_availability.go @@ -5,6 +5,9 @@ import ( "errors" "fmt" "sync" + "time" + + "github.com/ethereum/go-ethereum/metrics" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/gopool" @@ -14,6 +17,10 @@ import ( "github.com/ethereum/go-ethereum/params" ) +var ( + daCheckTimer = metrics.NewRegisteredTimer("chain/dacheck", nil) +) + // validateBlobSidecar it is same as validateBlobSidecar in core/txpool/validation.go func validateBlobSidecar(hashes []common.Hash, sidecar *types.BlobSidecar) error { if len(sidecar.Blobs) != len(hashes) { @@ -46,6 +53,10 @@ func validateBlobSidecar(hashes []common.Hash, sidecar *types.BlobSidecar) error // IsDataAvailable it checks that the blobTx block has available blob data func IsDataAvailable(chain consensus.ChainHeaderReader, block *types.Block) (err error) { + defer func(start time.Time) { + daCheckTimer.Update(time.Since(start)) + }(time.Now()) + // refer logic in ValidateBody if !chain.Config().IsCancun(block.Number(), block.Time()) { if block.Sidecars() != nil { diff --git a/core/genesis.go b/core/genesis.go index 6aa76d1081..a6b9eaa2b9 100644 --- a/core/genesis.go +++ b/core/genesis.go @@ -493,13 +493,13 @@ func (g *Genesis) Commit(db ethdb.Database, triedb *triedb.Database) (*types.Blo if err := flushAlloc(&g.Alloc, db, triedb, block.Hash()); err != nil { return nil, err } - rawdb.WriteTd(db, block.Hash(), block.NumberU64(), block.Difficulty()) - rawdb.WriteBlock(db, block) - rawdb.WriteReceipts(db, block.Hash(), block.NumberU64(), nil) - rawdb.WriteCanonicalHash(db, block.Hash(), block.NumberU64()) - rawdb.WriteHeadBlockHash(db, block.Hash()) + rawdb.WriteTd(db.BlockStore(), block.Hash(), block.NumberU64(), block.Difficulty()) + rawdb.WriteBlock(db.BlockStore(), block) + rawdb.WriteReceipts(db.BlockStore(), block.Hash(), block.NumberU64(), nil) + rawdb.WriteCanonicalHash(db.BlockStore(), block.Hash(), block.NumberU64()) + rawdb.WriteHeadBlockHash(db.BlockStore(), block.Hash()) rawdb.WriteHeadFastBlockHash(db, block.Hash()) - rawdb.WriteHeadHeaderHash(db, block.Hash()) + rawdb.WriteHeadHeaderHash(db.BlockStore(), block.Hash()) rawdb.WriteChainConfig(db, block.Hash(), config) return block, nil } diff --git a/core/headerchain.go b/core/headerchain.go index 2aa507d6ae..a48ef46197 100644 --- a/core/headerchain.go +++ b/core/headerchain.go @@ -97,7 +97,7 @@ func NewHeaderChain(chainDb ethdb.Database, config *params.ChainConfig, engine c return nil, ErrNoGenesis } hc.currentHeader.Store(hc.genesisHeader) - if head := rawdb.ReadHeadBlockHash(chainDb); head != (common.Hash{}) { + if head := rawdb.ReadHeadBlockHash(chainDb.BlockStore()); head != (common.Hash{}) { if chead := hc.GetHeaderByHash(head); chead != nil { hc.currentHeader.Store(chead) } @@ -144,7 +144,7 @@ func (hc *HeaderChain) GetBlockNumber(hash common.Hash) *uint64 { if cached, ok := hc.numberCache.Get(hash); ok { return &cached } - number := rawdb.ReadHeaderNumber(hc.chainDb, hash) + number := rawdb.ReadHeaderNumber(hc.chainDb.BlockStore(), hash) if number != nil { hc.numberCache.Add(hash, *number) } @@ -172,9 +172,9 @@ func (hc *HeaderChain) Reorg(headers []*types.Header) error { // pile them onto the existing chain. Otherwise, do the necessary // reorgs. var ( - first = headers[0] - last = headers[len(headers)-1] - batch = hc.chainDb.NewBatch() + first = headers[0] + last = headers[len(headers)-1] + blockBatch = hc.chainDb.BlockStore().NewBatch() ) if first.ParentHash != hc.currentHeaderHash { // Delete any canonical number assignments above the new head @@ -183,7 +183,7 @@ func (hc *HeaderChain) Reorg(headers []*types.Header) error { if hash == (common.Hash{}) { break } - rawdb.DeleteCanonicalHash(batch, i) + rawdb.DeleteCanonicalHash(blockBatch, i) } // Overwrite any stale canonical number assignments, going // backwards from the first header in this import until the @@ -194,7 +194,7 @@ func (hc *HeaderChain) Reorg(headers []*types.Header) error { headHash = header.Hash() ) for rawdb.ReadCanonicalHash(hc.chainDb, headNumber) != headHash { - rawdb.WriteCanonicalHash(batch, headHash, headNumber) + rawdb.WriteCanonicalHash(blockBatch, headHash, headNumber) if headNumber == 0 { break // It shouldn't be reached } @@ -209,16 +209,16 @@ func (hc *HeaderChain) Reorg(headers []*types.Header) error { for i := 0; i < len(headers)-1; i++ { hash := headers[i+1].ParentHash // Save some extra hashing num := headers[i].Number.Uint64() - rawdb.WriteCanonicalHash(batch, hash, num) - rawdb.WriteHeadHeaderHash(batch, hash) + rawdb.WriteCanonicalHash(blockBatch, hash, num) + rawdb.WriteHeadHeaderHash(blockBatch, hash) } // Write the last header hash := headers[len(headers)-1].Hash() num := headers[len(headers)-1].Number.Uint64() - rawdb.WriteCanonicalHash(batch, hash, num) - rawdb.WriteHeadHeaderHash(batch, hash) + rawdb.WriteCanonicalHash(blockBatch, hash, num) + rawdb.WriteHeadHeaderHash(blockBatch, hash) - if err := batch.Write(); err != nil { + if err := blockBatch.Write(); err != nil { return err } // Last step update all in-memory head header markers @@ -244,7 +244,7 @@ func (hc *HeaderChain) WriteHeaders(headers []*types.Header) (int, error) { newTD = new(big.Int).Set(ptd) // Total difficulty of inserted chain inserted []rawdb.NumberHash // Ephemeral lookup of number/hash for the chain parentKnown = true // Set to true to force hc.HasHeader check the first iteration - batch = hc.chainDb.NewBatch() + blockBatch = hc.chainDb.BlockStore().NewBatch() ) for i, header := range headers { var hash common.Hash @@ -264,10 +264,10 @@ func (hc *HeaderChain) WriteHeaders(headers []*types.Header) (int, error) { alreadyKnown := parentKnown && hc.HasHeader(hash, number) if !alreadyKnown { // Irrelevant of the canonical status, write the TD and header to the database. - rawdb.WriteTd(batch, hash, number, newTD) + rawdb.WriteTd(blockBatch, hash, number, newTD) hc.tdCache.Add(hash, new(big.Int).Set(newTD)) - rawdb.WriteHeader(batch, header) + rawdb.WriteHeader(blockBatch, header) inserted = append(inserted, rawdb.NumberHash{Number: number, Hash: hash}) hc.headerCache.Add(hash, header) hc.numberCache.Add(hash, number) @@ -280,7 +280,7 @@ func (hc *HeaderChain) WriteHeaders(headers []*types.Header) (int, error) { return 0, errors.New("aborted") } // Commit to disk! - if err := batch.Write(); err != nil { + if err := blockBatch.Write(); err != nil { log.Crit("Failed to write headers", "error", err) } return len(inserted), nil @@ -642,7 +642,7 @@ func (hc *HeaderChain) setHead(headBlock uint64, headTime uint64, updateFn Updat } var ( parentHash common.Hash - batch = hc.chainDb.NewBatch() + blockBatch = hc.chainDb.BlockStore().NewBatch() origin = true ) done := func(header *types.Header) bool { @@ -677,7 +677,7 @@ func (hc *HeaderChain) setHead(headBlock uint64, headTime uint64, updateFn Updat } } // Update head header then. - rawdb.WriteHeadHeaderHash(markerBatch, parentHash) + rawdb.WriteHeadHeaderHash(hc.chainDb.BlockStore(), parentHash) if err := markerBatch.Write(); err != nil { log.Crit("Failed to update chain markers", "error", err) } @@ -708,16 +708,16 @@ func (hc *HeaderChain) setHead(headBlock uint64, headTime uint64, updateFn Updat } for _, hash := range hashes { if delFn != nil { - delFn(batch, hash, num) + delFn(blockBatch, hash, num) } - rawdb.DeleteHeader(batch, hash, num) - rawdb.DeleteTd(batch, hash, num) + rawdb.DeleteHeader(blockBatch, hash, num) + rawdb.DeleteTd(blockBatch, hash, num) } - rawdb.DeleteCanonicalHash(batch, num) + rawdb.DeleteCanonicalHash(blockBatch, num) } } // Flush all accumulated deletions. - if err := batch.Write(); err != nil { + if err := blockBatch.Write(); err != nil { log.Crit("Failed to rewind block", "error", err) } // Clear out any stale content from the caches diff --git a/core/rawdb/accessors_chain.go b/core/rawdb/accessors_chain.go index fcbf2ff4a6..9f682fd278 100644 --- a/core/rawdb/accessors_chain.go +++ b/core/rawdb/accessors_chain.go @@ -37,11 +37,11 @@ import ( // ReadCanonicalHash retrieves the hash assigned to a canonical block number. func ReadCanonicalHash(db ethdb.Reader, number uint64) common.Hash { var data []byte - db.ReadAncients(func(reader ethdb.AncientReaderOp) error { + db.BlockStoreReader().ReadAncients(func(reader ethdb.AncientReaderOp) error { data, _ = reader.Ancient(ChainFreezerHashTable, number) if len(data) == 0 { // Get it by hash from leveldb - data, _ = db.Get(headerHashKey(number)) + data, _ = db.BlockStoreReader().Get(headerHashKey(number)) } return nil }) @@ -217,6 +217,22 @@ func WriteHeadFastBlockHash(db ethdb.KeyValueWriter, hash common.Hash) { } } +// ReadFinalizedBlockHash retrieves the hash of the finalized block. +func ReadFinalizedBlockHash(db ethdb.KeyValueReader) common.Hash { + data, _ := db.Get(headFinalizedBlockKey) + if len(data) == 0 { + return common.Hash{} + } + return common.BytesToHash(data) +} + +// WriteFinalizedBlockHash stores the hash of the finalized block. +func WriteFinalizedBlockHash(db ethdb.KeyValueWriter, hash common.Hash) { + if err := db.Put(headFinalizedBlockKey, hash.Bytes()); err != nil { + log.Crit("Failed to store last finalized block's hash", "err", err) + } +} + // ReadLastPivotNumber retrieves the number of the last pivot block. If the node // full synced, the last pivot will always be nil. func ReadLastPivotNumber(db ethdb.KeyValueReader) *uint64 { @@ -287,7 +303,7 @@ func ReadHeaderRange(db ethdb.Reader, number uint64, count uint64) []rlp.RawValu // If we need to read live blocks, we need to figure out the hash first hash := ReadCanonicalHash(db, number) for ; i >= limit && count > 0; i-- { - if data, _ := db.Get(headerKey(i, hash)); len(data) > 0 { + if data, _ := db.BlockStoreReader().Get(headerKey(i, hash)); len(data) > 0 { rlpHeaders = append(rlpHeaders, data) // Get the parent hash for next query hash = types.HeaderParentHashFromRLP(data) @@ -320,7 +336,7 @@ func ReadHeaderRange(db ethdb.Reader, number uint64, count uint64) []rlp.RawValu // ReadHeaderRLP retrieves a block header in its raw RLP database encoding. func ReadHeaderRLP(db ethdb.Reader, hash common.Hash, number uint64) rlp.RawValue { var data []byte - db.ReadAncients(func(reader ethdb.AncientReaderOp) error { + db.BlockStoreReader().ReadAncients(func(reader ethdb.AncientReaderOp) error { // First try to look up the data in ancient database. Extra hash // comparison is necessary since ancient database only maintains // the canonical data. @@ -329,7 +345,7 @@ func ReadHeaderRLP(db ethdb.Reader, hash common.Hash, number uint64) rlp.RawValu return nil } // If not, try reading from leveldb - data, _ = db.Get(headerKey(number, hash)) + data, _ = db.BlockStoreReader().Get(headerKey(number, hash)) return nil }) return data @@ -337,10 +353,10 @@ func ReadHeaderRLP(db ethdb.Reader, hash common.Hash, number uint64) rlp.RawValu // HasHeader verifies the existence of a block header corresponding to the hash. func HasHeader(db ethdb.Reader, hash common.Hash, number uint64) bool { - if isCanon(db, number, hash) { + if isCanon(db.BlockStoreReader(), number, hash) { return true } - if has, err := db.Has(headerKey(number, hash)); !has || err != nil { + if has, err := db.BlockStoreReader().Has(headerKey(number, hash)); !has || err != nil { return false } return true @@ -427,14 +443,14 @@ func ReadBodyRLP(db ethdb.Reader, hash common.Hash, number uint64) rlp.RawValue // comparison is necessary since ancient database only maintains // the canonical data. var data []byte - db.ReadAncients(func(reader ethdb.AncientReaderOp) error { + db.BlockStoreReader().ReadAncients(func(reader ethdb.AncientReaderOp) error { // Check if the data is in ancients if isCanon(reader, number, hash) { data, _ = reader.Ancient(ChainFreezerBodiesTable, number) return nil } // If not, try reading from leveldb - data, _ = db.Get(blockBodyKey(number, hash)) + data, _ = db.BlockStoreReader().Get(blockBodyKey(number, hash)) return nil }) return data @@ -444,7 +460,7 @@ func ReadBodyRLP(db ethdb.Reader, hash common.Hash, number uint64) rlp.RawValue // block at number, in RLP encoding. func ReadCanonicalBodyRLP(db ethdb.Reader, number uint64) rlp.RawValue { var data []byte - db.ReadAncients(func(reader ethdb.AncientReaderOp) error { + db.BlockStoreReader().ReadAncients(func(reader ethdb.AncientReaderOp) error { data, _ = reader.Ancient(ChainFreezerBodiesTable, number) if len(data) > 0 { return nil @@ -453,7 +469,7 @@ func ReadCanonicalBodyRLP(db ethdb.Reader, number uint64) rlp.RawValue { // Note: ReadCanonicalHash cannot be used here because it also // calls ReadAncients internally. hash, _ := db.Get(headerHashKey(number)) - data, _ = db.Get(blockBodyKey(number, common.BytesToHash(hash))) + data, _ = db.BlockStoreReader().Get(blockBodyKey(number, common.BytesToHash(hash))) return nil }) return data @@ -468,10 +484,10 @@ func WriteBodyRLP(db ethdb.KeyValueWriter, hash common.Hash, number uint64, rlp // HasBody verifies the existence of a block body corresponding to the hash. func HasBody(db ethdb.Reader, hash common.Hash, number uint64) bool { - if isCanon(db, number, hash) { + if isCanon(db.BlockStoreReader(), number, hash) { return true } - if has, err := db.Has(blockBodyKey(number, hash)); !has || err != nil { + if has, err := db.BlockStoreReader().Has(blockBodyKey(number, hash)); !has || err != nil { return false } return true @@ -548,14 +564,14 @@ func DeleteBody(db ethdb.KeyValueWriter, hash common.Hash, number uint64) { // ReadTdRLP retrieves a block's total difficulty corresponding to the hash in RLP encoding. func ReadTdRLP(db ethdb.Reader, hash common.Hash, number uint64) rlp.RawValue { var data []byte - db.ReadAncients(func(reader ethdb.AncientReaderOp) error { + db.BlockStoreReader().ReadAncients(func(reader ethdb.AncientReaderOp) error { // Check if the data is in ancients if isCanon(reader, number, hash) { data, _ = reader.Ancient(ChainFreezerDifficultyTable, number) return nil } // If not, try reading from leveldb - data, _ = db.Get(headerTDKey(number, hash)) + data, _ = db.BlockStoreReader().Get(headerTDKey(number, hash)) return nil }) return data @@ -596,10 +612,10 @@ func DeleteTd(db ethdb.KeyValueWriter, hash common.Hash, number uint64) { // HasReceipts verifies the existence of all the transaction receipts belonging // to a block. func HasReceipts(db ethdb.Reader, hash common.Hash, number uint64) bool { - if isCanon(db, number, hash) { + if isCanon(db.BlockStoreReader(), number, hash) { return true } - if has, err := db.Has(blockReceiptsKey(number, hash)); !has || err != nil { + if has, err := db.BlockStoreReader().Has(blockReceiptsKey(number, hash)); !has || err != nil { return false } return true @@ -608,14 +624,14 @@ func HasReceipts(db ethdb.Reader, hash common.Hash, number uint64) bool { // ReadReceiptsRLP retrieves all the transaction receipts belonging to a block in RLP encoding. func ReadReceiptsRLP(db ethdb.Reader, hash common.Hash, number uint64) rlp.RawValue { var data []byte - db.ReadAncients(func(reader ethdb.AncientReaderOp) error { + db.BlockStoreReader().ReadAncients(func(reader ethdb.AncientReaderOp) error { // Check if the data is in ancients if isCanon(reader, number, hash) { data, _ = reader.Ancient(ChainFreezerReceiptTable, number) return nil } // If not, try reading from leveldb - data, _ = db.Get(blockReceiptsKey(number, hash)) + data, _ = db.BlockStoreReader().Get(blockReceiptsKey(number, hash)) return nil }) return data @@ -875,7 +891,7 @@ func ReadBlobSidecarsRLP(db ethdb.Reader, hash common.Hash, number uint64) rlp.R return nil } // If not, try reading from leveldb - data, _ = db.Get(blockBlobSidecarsKey(number, hash)) + data, _ = db.BlockStoreReader().Get(blockBlobSidecarsKey(number, hash)) return nil }) return data @@ -1077,24 +1093,24 @@ func FindCommonAncestor(db ethdb.Reader, a, b *types.Header) *types.Header { // ReadHeadHeader returns the current canonical head header. func ReadHeadHeader(db ethdb.Reader) *types.Header { - headHeaderHash := ReadHeadHeaderHash(db) + headHeaderHash := ReadHeadHeaderHash(db.BlockStoreReader()) if headHeaderHash == (common.Hash{}) { return nil } - headHeaderNumber := ReadHeaderNumber(db, headHeaderHash) + headHeaderNumber := ReadHeaderNumber(db.BlockStoreReader(), headHeaderHash) if headHeaderNumber == nil { return nil } - return ReadHeader(db, headHeaderHash, *headHeaderNumber) + return ReadHeader(db.BlockStoreReader(), headHeaderHash, *headHeaderNumber) } // ReadHeadBlock returns the current canonical head block. func ReadHeadBlock(db ethdb.Reader) *types.Block { - headBlockHash := ReadHeadBlockHash(db) + headBlockHash := ReadHeadBlockHash(db.BlockStoreReader()) if headBlockHash == (common.Hash{}) { return nil } - headBlockNumber := ReadHeaderNumber(db, headBlockHash) + headBlockNumber := ReadHeaderNumber(db.BlockStoreReader(), headBlockHash) if headBlockNumber == nil { return nil } diff --git a/core/rawdb/accessors_indexes.go b/core/rawdb/accessors_indexes.go index 4f2ef0a880..95fc1d7806 100644 --- a/core/rawdb/accessors_indexes.go +++ b/core/rawdb/accessors_indexes.go @@ -42,7 +42,7 @@ func ReadTxLookupEntry(db ethdb.Reader, hash common.Hash) *uint64 { } // Database v4-v5 tx lookup format just stores the hash if len(data) == common.HashLength { - return ReadHeaderNumber(db, common.BytesToHash(data)) + return ReadHeaderNumber(db.BlockStoreReader(), common.BytesToHash(data)) } // Finally try database v3 tx lookup format var entry LegacyTxLookupEntry diff --git a/core/rawdb/ancient_utils.go b/core/rawdb/ancient_utils.go index 1d780063ff..1df7ec9082 100644 --- a/core/rawdb/ancient_utils.go +++ b/core/rawdb/ancient_utils.go @@ -121,16 +121,25 @@ func inspectFreezers(db ethdb.Database) ([]freezerInfo, error) { // ancient indicates the path of root ancient directory where the chain freezer can // be opened. Start and end specify the range for dumping out indexes. // Note this function can only be used for debugging purposes. -func InspectFreezerTable(ancient string, freezerName string, tableName string, start, end int64) error { +func InspectFreezerTable(ancient string, freezerName string, tableName string, start, end int64, multiDatabase bool) error { var ( path string tables map[string]bool ) switch freezerName { case ChainFreezerName: - path, tables = resolveChainFreezerDir(ancient), chainFreezerNoSnappy + if multiDatabase { + path, tables = resolveChainFreezerDir(filepath.Dir(ancient)+"/block/ancient"), chainFreezerNoSnappy + } else { + path, tables = resolveChainFreezerDir(ancient), chainFreezerNoSnappy + } + case StateFreezerName: - path, tables = filepath.Join(ancient, freezerName), stateFreezerNoSnappy + if multiDatabase { + path, tables = filepath.Join(filepath.Dir(ancient)+"/state/ancient", freezerName), stateFreezerNoSnappy + } else { + path, tables = filepath.Join(ancient, freezerName), stateFreezerNoSnappy + } default: return fmt.Errorf("unknown freezer, supported ones: %v", freezers) } diff --git a/core/rawdb/chain_freezer.go b/core/rawdb/chain_freezer.go index 323a7eb54c..5d9e1d0394 100644 --- a/core/rawdb/chain_freezer.go +++ b/core/rawdb/chain_freezer.go @@ -51,8 +51,6 @@ var ( // The background thread will keep moving ancient chain segments from key-value // database to flat files for saving space on live database. type chainFreezer struct { - threshold atomic.Uint64 // Number of recent blocks not to freeze (params.FullImmutabilityThreshold apart from tests) - *Freezer quit chan struct{} wg sync.WaitGroup @@ -67,13 +65,11 @@ func newChainFreezer(datadir string, namespace string, readonly bool, offset uin if err != nil { return nil, err } - cf := chainFreezer{ + return &chainFreezer{ Freezer: freezer, quit: make(chan struct{}), trigger: make(chan chan struct{}), - } - cf.threshold.Store(params.FullImmutabilityThreshold) - return &cf, nil + }, nil } // Close closes the chain freezer instance and terminates the background thread. @@ -87,6 +83,57 @@ func (f *chainFreezer) Close() error { return f.Freezer.Close() } +// readHeadNumber returns the number of chain head block. 0 is returned if the +// block is unknown or not available yet. +func (f *chainFreezer) readHeadNumber(db ethdb.KeyValueReader) uint64 { + hash := ReadHeadBlockHash(db) + if hash == (common.Hash{}) { + log.Error("Head block is not reachable") + return 0 + } + number := ReadHeaderNumber(db, hash) + if number == nil { + log.Error("Number of head block is missing") + return 0 + } + return *number +} + +// readFinalizedNumber returns the number of finalized block. 0 is returned +// if the block is unknown or not available yet. +func (f *chainFreezer) readFinalizedNumber(db ethdb.KeyValueReader) uint64 { + hash := ReadFinalizedBlockHash(db) + if hash == (common.Hash{}) { + return 0 + } + number := ReadHeaderNumber(db, hash) + if number == nil { + log.Error("Number of finalized block is missing") + return 0 + } + return *number +} + +// freezeThreshold returns the threshold for chain freezing. It's determined +// by formula: max(finality, HEAD-params.FullImmutabilityThreshold). +func (f *chainFreezer) freezeThreshold(db ethdb.KeyValueReader) (uint64, error) { + var ( + head = f.readHeadNumber(db) + final = f.readFinalizedNumber(db) + headLimit uint64 + ) + if head > params.FullImmutabilityThreshold { + headLimit = head - params.FullImmutabilityThreshold + } + if final == 0 && headLimit == 0 { + return 0, errors.New("freezing threshold is not available") + } + if final > headLimit { + return final, nil + } + return headLimit, nil +} + // freeze is a background thread that periodically checks the blockchain for any // import progress and moves ancient data from the fast database into the freezer. // @@ -138,61 +185,40 @@ func (f *chainFreezer) freeze(db ethdb.KeyValueStore) { continue } - // Retrieve the freezing threshold. - hash := ReadHeadBlockHash(nfdb) - if hash == (common.Hash{}) { - log.Debug("Current full block hash unavailable") // new chain, empty database + threshold, err := f.freezeThreshold(nfdb) + if err != nil { backoff = true + log.Debug("Current full block not old enough to freeze", "err", err) continue } - number := ReadHeaderNumber(nfdb, hash) - threshold := f.threshold.Load() frozen := f.frozen.Load() - switch { - case number == nil: - log.Error("Current full block number unavailable", "hash", hash) - backoff = true - continue - - case *number < threshold: - log.Debug("Current full block not old enough to freeze", "number", *number, "hash", hash, "delay", threshold) - backoff = true - continue - case *number-threshold <= frozen: - log.Debug("Ancient blocks frozen already", "number", *number, "hash", hash, "frozen", frozen) - backoff = true - continue - } - head := ReadHeader(nfdb, hash, *number) - if head == nil { - log.Error("Current full block unavailable", "number", *number, "hash", hash) + // Short circuit if the blocks below threshold are already frozen. + if frozen != 0 && frozen-1 >= threshold { backoff = true + log.Debug("Ancient blocks frozen already", "threshold", threshold, "frozen", frozen) continue } - // Seems we have data ready to be frozen, process in usable batches var ( - start = time.Now() - first, _ = f.Ancients() - limit = *number - threshold + start = time.Now() + first = frozen // the first block to freeze + last = threshold // the last block to freeze ) - if limit-first > freezerBatchLimit { - limit = first + freezerBatchLimit + if last-first+1 > freezerBatchLimit { + last = freezerBatchLimit + first - 1 } - ancients, err := f.freezeRangeWithBlobs(nfdb, first, limit) + ancients, err := f.freezeRangeWithBlobs(nfdb, first, last) if err != nil { log.Error("Error in block freeze operation", "err", err) backoff = true continue } - // Batch of blocks have been frozen, flush them before wiping from leveldb if err := f.Sync(); err != nil { log.Crit("Failed to flush frozen tables", "err", err) } - // Wipe out all data from the active database batch := db.NewBatch() for i := 0; i < len(ancients); i++ { @@ -269,6 +295,24 @@ func (f *chainFreezer) freeze(db ethdb.KeyValueStore) { log.Debug("Deep froze chain segment", context...) env, _ := f.freezeEnv.Load().(*ethdb.FreezerEnv) + hash := ReadHeadBlockHash(nfdb) + if hash == (common.Hash{}) { + log.Debug("Current full block hash unavailable") // new chain, empty database + backoff = true + continue + } + number := ReadHeaderNumber(nfdb, hash) + if number == nil { + log.Error("Current full block number unavailable", "hash", hash) + backoff = true + continue + } + head := ReadHeader(nfdb, hash, *number) + if head == nil { + log.Error("Current full block unavailable", "number", *number, "hash", hash) + backoff = true + continue + } // try prune blob data after cancun fork if isCancun(env, head.Number, head.Time) { f.tryPruneBlobAncientTable(env, *number) @@ -358,13 +402,16 @@ func (f *chainFreezer) freezeRangeWithBlobs(nfdb *nofreezedb, number, limit uint return hashes, err } +// freezeRange moves a batch of chain segments from the fast database to the freezer. +// The parameters (number, limit) specify the relevant block range, both of which +// are included. func (f *chainFreezer) freezeRange(nfdb *nofreezedb, number, limit uint64) (hashes []common.Hash, err error) { if number > limit { return nil, nil } env, _ := f.freezeEnv.Load().(*ethdb.FreezerEnv) - hashes = make([]common.Hash, 0, limit-number) + hashes = make([]common.Hash, 0, limit-number+1) _, err = f.ModifyAncients(func(op ethdb.AncientWriteOp) error { for ; number <= limit; number++ { // Retrieve all the components of the canonical block. diff --git a/core/rawdb/chain_iterator.go b/core/rawdb/chain_iterator.go index 90eb638506..f78af9bb6b 100644 --- a/core/rawdb/chain_iterator.go +++ b/core/rawdb/chain_iterator.go @@ -80,7 +80,7 @@ func InitDatabaseFromFreezer(db ethdb.Database) { } batch.Reset() - WriteHeadHeaderHash(db, hash) + WriteHeadHeaderHash(db.BlockStore(), hash) WriteHeadFastBlockHash(db, hash) log.Info("Initialized database from freezer", "blocks", frozen, "elapsed", common.PrettyDuration(time.Since(start))) } @@ -122,7 +122,7 @@ func iterateTransactions(db ethdb.Database, from uint64, to uint64, reverse bool } defer close(rlpCh) for n != end { - data := ReadCanonicalBodyRLP(db, n) + data := ReadCanonicalBodyRLP(db.BlockStore(), n) // Feed the block to the aggregator, or abort on interrupt select { case rlpCh <- &numberRlp{n, data}: diff --git a/core/rawdb/database.go b/core/rawdb/database.go index 0fe10da8b9..a0e3147f2a 100644 --- a/core/rawdb/database.go +++ b/core/rawdb/database.go @@ -26,14 +26,13 @@ import ( "strings" "time" - "github.com/olekukonko/tablewriter" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/ethdb/leveldb" "github.com/ethereum/go-ethereum/ethdb/memorydb" "github.com/ethereum/go-ethereum/ethdb/pebble" "github.com/ethereum/go-ethereum/log" + "github.com/olekukonko/tablewriter" ) // freezerdb is a database wrapper that enables freezer data retrievals. @@ -44,6 +43,7 @@ type freezerdb struct { ethdb.AncientFreezer diffStore ethdb.KeyValueStore stateStore ethdb.Database + blockStore ethdb.Database } func (frdb *freezerdb) StateStoreReader() ethdb.Reader { @@ -53,6 +53,18 @@ func (frdb *freezerdb) StateStoreReader() ethdb.Reader { return frdb.stateStore } +func (frdb *freezerdb) BlockStoreReader() ethdb.Reader { + if frdb.blockStore == nil { + return frdb + } + return frdb.blockStore +} + +func (frdb *freezerdb) BlockStoreWriter() ethdb.Writer { + //TODO implement me + panic("implement me") +} + // AncientDatadir returns the path of root ancient directory. func (frdb *freezerdb) AncientDatadir() (string, error) { return frdb.ancientRoot, nil @@ -78,6 +90,11 @@ func (frdb *freezerdb) Close() error { errs = append(errs, err) } } + if frdb.blockStore != nil { + if err := frdb.blockStore.Close(); err != nil { + errs = append(errs, err) + } + } if len(errs) != 0 { return fmt.Errorf("%v", errs) } @@ -106,19 +123,28 @@ func (frdb *freezerdb) SetStateStore(state ethdb.Database) { frdb.stateStore = state } +func (frdb *freezerdb) BlockStore() ethdb.Database { + if frdb.blockStore != nil { + return frdb.blockStore + } else { + return frdb + } +} + +func (frdb *freezerdb) SetBlockStore(block ethdb.Database) { + if frdb.blockStore != nil { + frdb.blockStore.Close() + } + frdb.blockStore = block +} + // Freeze is a helper method used for external testing to trigger and block until // a freeze cycle completes, without having to sleep for a minute to trigger the // automatic background run. -func (frdb *freezerdb) Freeze(threshold uint64) error { +func (frdb *freezerdb) Freeze() error { if frdb.AncientStore.(*chainFreezer).readonly { return errReadOnly } - // Set the freezer threshold to a temporary value - defer func(old uint64) { - frdb.AncientStore.(*chainFreezer).threshold.Store(old) - }(frdb.AncientStore.(*chainFreezer).threshold.Load()) - frdb.AncientStore.(*chainFreezer).threshold.Store(threshold) - // Trigger a freeze cycle and block until it's done trigger := make(chan struct{}, 1) frdb.AncientStore.(*chainFreezer).trigger <- trigger @@ -135,6 +161,7 @@ type nofreezedb struct { ethdb.KeyValueStore diffStore ethdb.KeyValueStore stateStore ethdb.Database + blockStore ethdb.Database } // HasAncient returns an error as we don't have a backing chain freezer. @@ -225,6 +252,31 @@ func (db *nofreezedb) StateStoreReader() ethdb.Reader { return db } +func (db *nofreezedb) BlockStore() ethdb.Database { + if db.blockStore != nil { + return db.blockStore + } + return db +} + +func (db *nofreezedb) SetBlockStore(block ethdb.Database) { + db.blockStore = block +} + +func (db *nofreezedb) BlockStoreReader() ethdb.Reader { + if db.blockStore != nil { + return db.blockStore + } + return db +} + +func (db *nofreezedb) BlockStoreWriter() ethdb.Writer { + if db.blockStore != nil { + return db.blockStore + } + return db +} + func (db *nofreezedb) ReadAncients(fn func(reader ethdb.AncientReaderOp) error) (err error) { // Unlike other ancient-related methods, this method does not return // errNotSupported when invoked. @@ -429,6 +481,7 @@ func NewDatabaseWithFreezer(db ethdb.KeyValueStore, ancient string, namespace st // freezer. } } + // no prune ancient start success if !readonly { WriteAncientType(db, EntireFreezerType) @@ -518,6 +571,7 @@ type OpenOptions struct { DisableFreeze bool IsLastOffset bool PruneAncientData bool + // Ephemeral means that filesystem sync operations should be avoided: data integrity in the face of // a crash is not important. This option should typically be used in tests. Ephemeral bool @@ -613,7 +667,7 @@ func AncientInspect(db ethdb.Database) error { offset := counter(ReadOffSetOfCurrentAncientFreezer(db)) // Get number of ancient rows inside the freezer. ancients := counter(0) - if count, err := db.ItemAmountInAncient(); err != nil { + if count, err := db.BlockStore().ItemAmountInAncient(); err != nil { log.Error("failed to get the items amount in ancientDB", "err", err) return err } else { @@ -661,6 +715,48 @@ func PruneHashTrieNodeInDataBase(db ethdb.Database) error { return nil } +type DataType int + +const ( + StateDataType DataType = iota + BlockDataType + ChainDataType + Unknown +) + +func DataTypeByKey(key []byte) DataType { + switch { + // state + case IsLegacyTrieNode(key, key), + bytes.HasPrefix(key, stateIDPrefix) && len(key) == len(stateIDPrefix)+common.HashLength, + IsAccountTrieNode(key), + IsStorageTrieNode(key): + return StateDataType + + // block + case bytes.HasPrefix(key, headerPrefix) && len(key) == (len(headerPrefix)+8+common.HashLength), + bytes.HasPrefix(key, blockBodyPrefix) && len(key) == (len(blockBodyPrefix)+8+common.HashLength), + bytes.HasPrefix(key, blockReceiptsPrefix) && len(key) == (len(blockReceiptsPrefix)+8+common.HashLength), + bytes.HasPrefix(key, headerPrefix) && bytes.HasSuffix(key, headerTDSuffix), + bytes.HasPrefix(key, headerPrefix) && bytes.HasSuffix(key, headerHashSuffix), + bytes.HasPrefix(key, headerNumberPrefix) && len(key) == (len(headerNumberPrefix)+common.HashLength): + return BlockDataType + default: + for _, meta := range [][]byte{ + fastTrieProgressKey, persistentStateIDKey, trieJournalKey, snapSyncStatusFlagKey} { + if bytes.Equal(key, meta) { + return StateDataType + } + } + for _, meta := range [][]byte{headHeaderKey, headFinalizedBlockKey} { + if bytes.Equal(key, meta) { + return BlockDataType + } + } + return ChainDataType + } +} + // InspectDatabase traverses the entire database and checks the size // of all different categories of data. func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error { @@ -668,10 +764,15 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error { defer it.Release() var trieIter ethdb.Iterator + var blockIter ethdb.Iterator if db.StateStore() != nil { trieIter = db.StateStore().NewIterator(keyPrefix, nil) defer trieIter.Release() } + if db.BlockStore() != db { + blockIter = db.BlockStore().NewIterator(keyPrefix, nil) + defer blockIter.Release() + } var ( count int64 start = time.Now() @@ -801,6 +902,7 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error { value = trieIter.Value() size = common.StorageSize(len(key) + len(value)) ) + total += size switch { case IsLegacyTrieNode(key, value): @@ -814,9 +916,10 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error { default: var accounted bool for _, meta := range [][]byte{ - fastTrieProgressKey, persistentStateIDKey, trieJournalKey} { + fastTrieProgressKey, persistentStateIDKey, trieJournalKey, snapSyncStatusFlagKey} { if bytes.Equal(key, meta) { metadata.Add(size) + accounted = true break } } @@ -830,6 +933,54 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error { logged = time.Now() } } + log.Info("Inspecting separate state database", "count", count, "elapsed", common.PrettyDuration(time.Since(start))) + } + // inspect separate block db + if blockIter != nil { + count = 0 + logged = time.Now() + + for blockIter.Next() { + var ( + key = blockIter.Key() + value = blockIter.Value() + size = common.StorageSize(len(key) + len(value)) + ) + total += size + + switch { + case bytes.HasPrefix(key, headerPrefix) && len(key) == (len(headerPrefix)+8+common.HashLength): + headers.Add(size) + case bytes.HasPrefix(key, blockBodyPrefix) && len(key) == (len(blockBodyPrefix)+8+common.HashLength): + bodies.Add(size) + case bytes.HasPrefix(key, blockReceiptsPrefix) && len(key) == (len(blockReceiptsPrefix)+8+common.HashLength): + receipts.Add(size) + case bytes.HasPrefix(key, headerPrefix) && bytes.HasSuffix(key, headerTDSuffix): + tds.Add(size) + case bytes.HasPrefix(key, headerPrefix) && bytes.HasSuffix(key, headerHashSuffix): + numHashPairings.Add(size) + case bytes.HasPrefix(key, headerNumberPrefix) && len(key) == (len(headerNumberPrefix)+common.HashLength): + hashNumPairings.Add(size) + default: + var accounted bool + for _, meta := range [][]byte{headHeaderKey, headFinalizedBlockKey} { + if bytes.Equal(key, meta) { + metadata.Add(size) + accounted = true + break + } + } + if !accounted { + unaccounted.Add(size) + } + } + count++ + if count%1000 == 0 && time.Since(logged) > 8*time.Second { + log.Info("Inspecting separate block database", "count", count, "elapsed", common.PrettyDuration(time.Since(start))) + logged = time.Now() + } + } + log.Info("Inspecting separate block database", "count", count, "elapsed", common.PrettyDuration(time.Since(start))) } // Display the database statistic of key-value store. stats := [][]string{ @@ -856,7 +1007,7 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error { {"Light client", "Bloom trie nodes", bloomTrieNodes.Size(), bloomTrieNodes.Count()}, } // Inspect all registered append-only file store then. - ancients, err := inspectFreezers(db) + ancients, err := inspectFreezers(db.BlockStore()) if err != nil { return err } @@ -995,3 +1146,26 @@ func ReadChainMetadata(db ethdb.KeyValueStore) [][]string { } return data } + +func ReadChainMetadataFromMultiDatabase(db ethdb.Database) [][]string { + pp := func(val *uint64) string { + if val == nil { + return "" + } + return fmt.Sprintf("%d (%#x)", *val, *val) + } + data := [][]string{ + {"databaseVersion", pp(ReadDatabaseVersion(db))}, + {"headBlockHash", fmt.Sprintf("%v", ReadHeadBlockHash(db.BlockStore()))}, + {"headFastBlockHash", fmt.Sprintf("%v", ReadHeadFastBlockHash(db))}, + {"headHeaderHash", fmt.Sprintf("%v", ReadHeadHeaderHash(db.BlockStore()))}, + {"lastPivotNumber", pp(ReadLastPivotNumber(db))}, + {"len(snapshotSyncStatus)", fmt.Sprintf("%d bytes", len(ReadSnapshotSyncStatus(db)))}, + {"snapshotDisabled", fmt.Sprintf("%v", ReadSnapshotDisabled(db))}, + {"snapshotJournal", fmt.Sprintf("%d bytes", len(ReadSnapshotJournal(db)))}, + {"snapshotRecoveryNumber", pp(ReadSnapshotRecoveryNumber(db))}, + {"snapshotRoot", fmt.Sprintf("%v", ReadSnapshotRoot(db))}, + {"txIndexTail", pp(ReadTxIndexTail(db))}, + } + return data +} diff --git a/core/rawdb/schema.go b/core/rawdb/schema.go index 601e89adcd..b7075733d8 100644 --- a/core/rawdb/schema.go +++ b/core/rawdb/schema.go @@ -40,6 +40,9 @@ var ( // headFastBlockKey tracks the latest known incomplete block's hash during fast sync. headFastBlockKey = []byte("LastFast") + // headFinalizedBlockKey tracks the latest known finalized block hash. + headFinalizedBlockKey = []byte("LastFinalized") + // persistentStateIDKey tracks the id of latest stored state(for path-based only). persistentStateIDKey = []byte("LastStateID") diff --git a/core/rawdb/table.go b/core/rawdb/table.go index 15c3462560..2dab09f869 100644 --- a/core/rawdb/table.go +++ b/core/rawdb/table.go @@ -27,6 +27,22 @@ type table struct { prefix string } +func (t *table) BlockStoreReader() ethdb.Reader { + return t +} + +func (t *table) BlockStoreWriter() ethdb.Writer { + return t +} + +func (t *table) BlockStore() ethdb.Database { + return t +} + +func (t *table) SetBlockStore(block ethdb.Database) { + panic("not implement") +} + // NewTable returns a database object that prefixes all keys with a given string. func NewTable(db ethdb.Database, prefix string) ethdb.Database { return &table{ diff --git a/core/systemcontracts/bruno/chapel/ValidatorContract b/core/systemcontracts/bruno/chapel/ValidatorContract new file mode 100644 index 0000000000..7faec7e7c1 --- /dev/null +++ b/core/systemcontracts/bruno/chapel/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a54578063fc3e590814610a69578063fccc281314610a7e578063fd6a687914610a93576102e4565b8063eb57e202146109e6578063eda5868c14610a19578063f340fa0114610a2e576102e4565b8063c8509d81146106d8578063d86222d51461097d578063daacdb6614610992578063dc927faf146109a7578063e086c7b1146109bc578063e1c7392a146109d1576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108d0578063b7ab4db514610903578063bf9f4995146104c0578063c81b166214610968576102e4565b8063aaf5eb68146107db578063ab51bb96146107f0578063ac43175114610805576102e4565b8063862498821461075d57806396713da9146107725780639dc0926214610787578063a1a11bf51461079c578063a5422d5c146107b1578063a78abc16146107c6576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa14610699576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610aa8565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610aad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610c9a565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610ca3565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610ca9565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cae565b005b3480156104b757600080fd5b5061044f610fc2565b3480156104cc57600080fd5b506104d5610fc8565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fcd565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fd3565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fd8565b34801561056957600080fd5b5061044f610fdd565b34801561057e57600080fd5b50610500610fe3565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610fe9565b3480156105c657600080fd5b506104d561103b565b3480156105db57600080fd5b506102fe611040565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b5035611045565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110a9565b34801561067b57600080fd5b506104d56110af565b34801561069057600080fd5b506105006110b4565b3480156106a557600080fd5b5061044f6110ba565b3480156106ba57600080fd5b506104d56110c0565b3480156106cf57600080fd5b506102fe6110c5565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110ca565b34801561076957600080fd5b5061044f61117d565b34801561077e57600080fd5b506104d5611183565b34801561079357600080fd5b50610500611188565b3480156107a857600080fd5b5061050061118e565b3480156107bd57600080fd5b5061039c611194565b3480156107d257600080fd5b506104266111b3565b3480156107e757600080fd5b5061044f6111bc565b3480156107fc57600080fd5b506102fe61103b565b34801561081157600080fd5b506104a96004803603604081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460018302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460018302840111600160201b831117156108c557600080fd5b5090925090506111c5565b3480156108dc57600080fd5b5061044f600480360360208110156108f357600080fd5b50356001600160a01b03166115bc565b34801561090f57600080fd5b506109186115ce565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561095457818101518382015260200161093c565b505050509050019250505060405180910390f35b34801561097457600080fd5b506105006116f4565b34801561098957600080fd5b5061044f6116fa565b34801561099e57600080fd5b5061044f611706565b3480156109b357600080fd5b5061050061170c565b3480156109c857600080fd5b5061044f611712565b3480156109dd57600080fd5b506104a9611717565b3480156109f257600080fd5b506104a960048036036020811015610a0957600080fd5b50356001600160a01b031661191a565b348015610a2557600080fd5b506102fe611ae9565b6104a960048036036020811015610a4457600080fd5b50356001600160a01b0316611aee565b348015610a6057600080fd5b50610500611df3565b348015610a7557600080fd5b506104d5611df9565b348015610a8a57600080fd5b50610500611dfe565b348015610a9f57600080fd5b50610500611e04565b606481565b60005460609060ff16610b03576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b435760405162461bcd60e51b815260040180806020018281038252602f81526020018061450d602f913960400191505060405180910390fd5b610b4b614158565b6000610b8c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e0a92505050565b9150915080610ba857610b9f6064611f63565b92505050610c93565b815160009060ff16610bc857610bc18360200151611fc4565b9050610c5f565b825160ff1660011415610c5b57826020015151600114610c35577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806144316025913960400191505060405180910390a1506067610c56565b610bc18360200151600081518110610c4957fe5b6020026020010151612dca565b610c5f565b5060655b63ffffffff8116610c845750506040805160008152602081019091529150610c939050565b610c8d81611f63565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610cee5760405162461bcd60e51b81526004018080602001828103825260298152602001806145696029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d125750610fbf565b600181039050600060018281548110610d2757fe5b60009182526020909120600360049092020101546001549091506000190180610d7657600060018481548110610d5957fe5b906000526020600020906004020160030181905550505050610fbf565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610ef857600180546000198101908110610ded57fe5b906000526020600020906004020160018481548110610e0857fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ecd57fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f0357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f5657fe5b0490508015610fba5760015460005b81811015610fb7578260018281548110610f7b57fe5b9060005260206000209060040201600301540160018281548110610f9b57fe5b6000918252602090912060036004909202010155600101610f65565b50505b505050505b50565b61271081565b600181565b61100181565b606181565b600881565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611011576000915050611036565b60018082038154811061102057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061105257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b606681565b336120001461110a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061450d602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101ab81526020016141e06101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611218576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146112585760405162461bcd60e51b815260040180806020018281038252602e815260200180614477602e913960400191505060405180910390fd5b6112c284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f419050565b1561139d57602081146113065760405162461bcd60e51b81526004018080602001828103825260268152602001806144c66026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113449185858083850183828082843760009201919091525061302992505050565b90506064811015801561135a5750620186a08111155b6113955760405162461bcd60e51b815260040180806020018281038252602781526020018061440a6027913960400191505060405180910390fd5b60025561152a565b6113fd84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f419050565b156114ed5760208114611457576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114959185858083850183828082843760009201919091525061302992505050565b90506127108111156114d85760405162461bcd60e51b815260040180806020018281038252602b8152602001806143b4602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561152a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561161f57600181815481106115ed57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611617576001909101905b6001016115d8565b5060608160405190808252806020026020018201604052801561164c578160200160208202803683370190505b50600092509050815b838110156116ec576001818154811061166a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116e4576001818154811061169a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116c557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611655565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561176f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611777614158565b600061179d604051806101e001604052806101ab81526020016141e06101ab9139611e0a565b91509150806117dd5760405162461bcd60e51b81526004018080602001828103825260218152602001806144ec6021913960400191505060405180910390fd5b60005b826020015151811015611902576001836020015182815181106117ff57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118d557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117e0565b50506103e8600255506000805460ff19166001179055565b336110011461195a5760405162461bcd60e51b81526004018080602001828103825260298152602001806145696029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061197e5750610fbf565b60018103905060006001828154811061199357fe5b90600052602060002090600402016003015490506000600183815481106119b657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a2557505050610fbf565b6000818381611a3057fe5b0490508015610fba5760005b84811015611a8e578160018281548110611a5257fe5b9060005260206000209060040201600301540160018281548110611a7257fe5b6000918252602090912060036004909202010155600101611a3c565b50600180549085015b81811015610fb7578260018281548110611aad57fe5b9060005260206000209060040201600301540160018281548110611acd57fe5b6000918252602090912060036004909202010155600101611a97565b606581565b334114611b2c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061453c602d913960400191505060405180910390fd5b60005460ff16611b7f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bcc576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615611bfc57506006545b600083118015611c0c5750600081115b15611cb5576000611c35612710611c29868563ffffffff61302e16565b9063ffffffff61308716565b90508015611cb35760405161dead9082156108fc029083906000818181858888f19350505050158015611c6c573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cb0848263ffffffff6130c916565b93505b505b8115611dad576000600180840381548110611ccc57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d37576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611da7565b600354611d4a908563ffffffff61310b16565b6003908155810154611d62908563ffffffff61310b16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611ded565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e12614158565b6000611e1c614158565b611e24614170565b611e35611e3086613165565b61318a565b90506000805b611e44836131d4565b15611f555780611e6957611e5f611e5a846131f5565b613243565b60ff168452611f4d565b8060011415611f48576060611e85611e80856131f5565b6132fa565b90508051604051908082528060200260200182016040528015611ec257816020015b611eaf614190565b815260200190600190039081611ea75790505b50602086015260005b8151811015611f3d57611edc614190565b6000611efa848481518110611eed57fe5b60200260200101516133cb565b9150915080611f1757876000995099505050505050505050611f5e565b8188602001518481518110611f2857fe5b60209081029190910101525050600101611ecb565b506001925050611f4d565b611f55565b600101611e3b565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f7d579050509050611fa38363ffffffff166134a8565b81600081518110611fb057fe5b6020026020010181905250610c93816134bb565b6000806060611fd284613545565b915091508161207f577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561203a578181015183820152602001612022565b50505050905090810190601f1680156120675780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050611036565b600080805b6001548110156120fc5767016345785d8a0000600182815481106120a457fe5b906000526020600020906004020160030154106120c6576001909201916120f4565b6000600182815481106120d557fe5b90600052602060002090600402016003015411156120f4576001909101905b600101612084565b50606082604051908082528060200260200182016040528015612129578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612158578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612187578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121e7578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612216578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d602081101561228d57600080fd5b5051905067016345785d8a0000811115612302577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806144a56021913960400191505060405180910390a160689d5050505050505050505050505050611036565b60005b6001548110156125755767016345785d8a00006001828154811061232557fe5b906000526020600020906004020160030154106124ab576001818154811061234957fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061237a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123af57fe5b906000526020600020906004020160030154816123c857fe5b06600183815481106123d657fe5b9060005260206000209060040201600301540390506123fe83826130c990919063ffffffff16565b8a8e8151811061240a57fe5b6020026020010181815250506001828154811061242357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248157fe5b602090810291909101015261249c878263ffffffff61310b16565b6001909d019c965061256d9050565b6000600182815481106124ba57fe5b906000526020600020906004020160030154111561256d57600181815481106124df57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061253d57fe5b906000526020600020906004020160030154848c8151811061255b57fe5b60209081029190910101526001909a01995b600101612305565b50600085156129b3576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126075781810151838201526020016125ef565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b505050509050019750505050505050506020604051808303818588803b1580156126ae57600080fd5b505af1935050505080156126d457506040513d60208110156126cf57600080fd5b505160015b61290f576040516000815260443d10156126f05750600061278b565b60046000803e60005160e01c6308c379a0811461271157600091505061278b565b60043d036004833e81513d60248201116001600160401b038211171561273c5760009250505061278b565b80830180516001600160401b0381111561275d57600094505050505061278b565b8060208301013d860181111561277b5760009550505050505061278b565b601f01601f191660405250925050505b80612796575061283a565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127fa5781810151838201526020016127e2565b50505050905090810190601f1680156128275780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061290a565b3d808015612864576040519150601f19603f3d011682016040523d82523d6000602084013e612869565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128ce5781810151838201526020016128b6565b50505050905090810190601f1680156128fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129b3565b801561294d576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129b1565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b695760005b8851811015612b675760008982815181106129d357fe5b602002602001015190506000600182815481106129ec57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a1d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ad95760018281548110612a5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612aad57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b5d565b60018281548110612ae657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b3557fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129bc565b505b845115612cb35760005b8551811015612cb1576000868281518110612b8a57fe5b60200260200101516001600160a01b03166108fc878481518110612baa57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4057868281518110612be057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c1e57fe5b60200260200101516040518082815260200191505060405180910390a2612ca8565b868281518110612c4c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c8a57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b73565b505b4715612d1c576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d1a573d6000803e3d6000fd5b505b60006003819055600555825115612d3657612d3683613627565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e1b5750600180820381548110612dfb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e615782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050611036565b600154600554600019820111801590612eb75784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050611036565b600580546001908101909155805481906000198601908110612ed557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f765780518252601f199092019160209182019101612f57565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fe45780518252601f199092019160209182019101612fc5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60008261303d57506000613023565b8282028284828161304a57fe5b0414610c935760405162461bcd60e51b81526004018080602001828103825260218152602001806144566021913960400191505060405180910390fd5b6000610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ae8565b6000610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8a565b600082820183811015610c93576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61316d6141c5565b506040805180820190915281518152602082810190820152919050565b613192614170565b61319b82613be4565b6131a457600080fd5b60006131b38360200151613c1e565b60208085015160408051808201909152868152920190820152915050919050565b60006131de6141c5565b505080518051602091820151919092015191011190565b6131fd6141c5565b613206826131d4565b61320f57600080fd5b6020820151600061321f82613c81565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061325857508151602110155b61326157600080fd5b60006132708360200151613c1e565b905080836000015110156132cb576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132f157826020036101000a820491505b50949350505050565b606061330582613be4565b61330e57600080fd5b600061331983613db4565b905060608160405190808252806020026020018201604052801561335757816020015b6133446141c5565b81526020019060019003908161333c5790505b50905060006133698560200151613c1e565b60208601510190506000805b848110156133c05761338683613c81565b91506040518060400160405280838152602001848152508482815181106133a957fe5b602090810291909101015291810191600101613375565b509195945050505050565b6133d3614190565b60006133dd614190565b6133e5614170565b6133ee8561318a565b90506000805b6133fd836131d4565b15611f55578061342857613418613413846131f5565b613e10565b6001600160a01b031684526134a0565b80600114156134505761343d613413846131f5565b6001600160a01b031660208501526134a0565b806002141561347857613465613413846131f5565b6001600160a01b031660408501526134a0565b8060031415611f485761348d611e5a846131f5565b6001600160401b03166060850152600191505b6001016133f4565b60606130236134b683613e2a565b613f10565b60608151600014156134dc5750604080516000815260208101909152611036565b6060826000815181106134eb57fe5b602002602001015190506000600190505b835181101561352c576135228285838151811061351557fe5b6020026020010151613f62565b91506001016134fc565b50610c9361353f825160c060ff16613fdf565b82613f62565b6000606060298351111561357757600060405180606001604052806029815260200161438b6029913991509150611f5e565b60005b835181101561360d5760005b818110156136045784818151811061359a57fe5b6020026020010151600001516001600160a01b03168583815181106135bb57fe5b6020026020010151600001516001600160a01b031614156135fc5760006040518060600160405280602b81526020016143df602b9139935093505050611f5e565b600101613586565b5060010161357a565b505060408051602081019091526000815260019150915091565b600154815160005b82811015613744576001613641614190565b6001838154811061364e57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613718578681815181106136de57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156137105760009250613718565b6001016136ca565b50811561373a5780516001600160a01b03166000908152600460205260408120555b505060010161362f565b50808211156137b957805b828110156137b757600180548061376257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b031916905560039091019190915591550161374f565b505b60008183106137c857816137ca565b825b905060005b818110156139c45761387c8582815181106137e657fe5b6020026020010151600183815481106137fb57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140d7565b61399757806001016004600087848151811061389457fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138d057fe5b6020026020010151600182815481106138e557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139bc565b6000600182815481106139a657fe5b9060005260206000209060040201600301819055505b6001016137cf565b5082821115611ded57825b82811015610fba5760018582815181106139e557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613abb57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139cf565b60008183613b745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b39578181015183820152602001613b21565b50505050905090810190601f168015613b665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8057fe5b0495945050505050565b60008184841115613bdc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b39578181015183820152602001613b21565b505050900390565b8051600090613bf557506000611036565b6020820151805160001a9060c0821015613c1457600092505050611036565b5060019392505050565b8051600090811a6080811015613c38576000915050611036565b60b8811080613c53575060c08110801590613c53575060f881105b15613c62576001915050611036565b60c0811015613c765760b519019050611036565b60f519019050611036565b80516000908190811a6080811015613c9c5760019150613dad565b60b8811015613cb157607e1981019150613dad565b60c0811015613d2b57600060b78203600186019550806020036101000a865104915060018101820193505080831015613d25576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613dad565b60f8811015613d405760be1981019150613dad565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613dab576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dc557506000611036565b60008090506000613dd98460200151613c1e565b602085015185519181019250015b80821015613e0757613df882613c81565b60019093019290910190613de7565b50909392505050565b8051600090601514613e2157600080fd5b61302382613243565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e6e57506018613e92565b6fffffffffffffffffffffffffffffffff198416613e8e57506010613e92565b5060005b6020811015613ec857818181518110613ea757fe5b01602001516001600160f81b03191615613ec057613ec8565b600101613e92565b60008160200390506060816040519080825280601f01601f191660200182016040528015613efd576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f425750607f60f81b82600081518110613f3057fe5b01602001516001600160f81b03191611155b15613f4e575080611036565b613023613f608351608060ff16613fdf565b835b6060806040519050835180825260208201818101602087015b81831015613f93578051835260209283019201613f7b565b50855184518101855292509050808201602086015b81831015613fc0578051835260209283019201613fa8565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061402f576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116140895782840160f81b8160008151811061406b57fe5b60200101906001600160f81b031916908160001a9053509050613023565b606061409485613e2a565b90508381510160370160f81b826000815181106140ad57fe5b60200101906001600160f81b031916908160001a9053506140ce8282613f62565b95945050505050565b805182516000916001600160a01b039182169116148015614111575081602001516001600160a01b031683602001516001600160a01b0316145b8015614136575081604001516001600160a01b031683604001516001600160a01b0316145b8015610c935750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806141836141c5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a78410000000746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212206138cbef6a4ba7db6b97f06990dc0d96f124bc0b841fa4a56690968e7b85982b64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/bruno/mainnet/ValidatorContract b/core/systemcontracts/bruno/mainnet/ValidatorContract new file mode 100644 index 0000000000..7602cce148 --- /dev/null +++ b/core/systemcontracts/bruno/mainnet/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a54578063fc3e590814610a69578063fccc281314610a7e578063fd6a687914610a93576102e4565b8063eb57e202146109e6578063eda5868c14610a19578063f340fa0114610a2e576102e4565b8063c8509d81146106d8578063d86222d51461097d578063daacdb6614610992578063dc927faf146109a7578063e086c7b1146109bc578063e1c7392a146109d1576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108d0578063b7ab4db514610903578063bf9f4995146104c0578063c81b166214610968576102e4565b8063aaf5eb68146107db578063ab51bb96146107f0578063ac43175114610805576102e4565b8063862498821461075d57806396713da9146107725780639dc0926214610787578063a1a11bf51461079c578063a5422d5c146107b1578063a78abc16146107c6576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa14610699576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610aa8565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610aad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610c9a565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610ca3565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610ca9565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cae565b005b3480156104b757600080fd5b5061044f610fc2565b3480156104cc57600080fd5b506104d5610fc8565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fcd565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fd3565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fd8565b34801561056957600080fd5b5061044f610fdd565b34801561057e57600080fd5b50610500610fe3565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610fe9565b3480156105c657600080fd5b506104d561103b565b3480156105db57600080fd5b506102fe611040565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b5035611045565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110a9565b34801561067b57600080fd5b506104d56110af565b34801561069057600080fd5b506105006110b4565b3480156106a557600080fd5b5061044f6110ba565b3480156106ba57600080fd5b506104d56110c0565b3480156106cf57600080fd5b506102fe6110c5565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110ca565b34801561076957600080fd5b5061044f61117d565b34801561077e57600080fd5b506104d5611183565b34801561079357600080fd5b50610500611188565b3480156107a857600080fd5b5061050061118e565b3480156107bd57600080fd5b5061039c611194565b3480156107d257600080fd5b506104266111b3565b3480156107e757600080fd5b5061044f6111bc565b3480156107fc57600080fd5b506102fe61103b565b34801561081157600080fd5b506104a96004803603604081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460018302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460018302840111600160201b831117156108c557600080fd5b5090925090506111c5565b3480156108dc57600080fd5b5061044f600480360360208110156108f357600080fd5b50356001600160a01b03166115bc565b34801561090f57600080fd5b506109186115ce565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561095457818101518382015260200161093c565b505050509050019250505060405180910390f35b34801561097457600080fd5b506105006116f4565b34801561098957600080fd5b5061044f6116fa565b34801561099e57600080fd5b5061044f611706565b3480156109b357600080fd5b5061050061170c565b3480156109c857600080fd5b5061044f611712565b3480156109dd57600080fd5b506104a9611717565b3480156109f257600080fd5b506104a960048036036020811015610a0957600080fd5b50356001600160a01b031661191a565b348015610a2557600080fd5b506102fe611ae9565b6104a960048036036020811015610a4457600080fd5b50356001600160a01b0316611aee565b348015610a6057600080fd5b50610500611df3565b348015610a7557600080fd5b506104d5611df9565b348015610a8a57600080fd5b50610500611dfe565b348015610a9f57600080fd5b50610500611e04565b606481565b60005460609060ff16610b03576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b435760405162461bcd60e51b815260040180806020018281038252602f815260200180614951602f913960400191505060405180910390fd5b610b4b614158565b6000610b8c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e0a92505050565b9150915080610ba857610b9f6064611f63565b92505050610c93565b815160009060ff16610bc857610bc18360200151611fc4565b9050610c5f565b825160ff1660011415610c5b57826020015151600114610c35577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806142866025913960400191505060405180910390a1506067610c56565b610bc18360200151600081518110610c4957fe5b6020026020010151612dca565b610c5f565b5060655b63ffffffff8116610c845750506040805160008152602081019091529150610c939050565b610c8d81611f63565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610cee5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ad6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d125750610fbf565b600181039050600060018281548110610d2757fe5b60009182526020909120600360049092020101546001549091506000190180610d7657600060018481548110610d5957fe5b906000526020600020906004020160030181905550505050610fbf565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610ef857600180546000198101908110610ded57fe5b906000526020600020906004020160018481548110610e0857fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ecd57fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f0357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f5657fe5b0490508015610fba5760015460005b81811015610fb7578260018281548110610f7b57fe5b9060005260206000209060040201600301540160018281548110610f9b57fe5b6000918252602090912060036004909202010155600101610f65565b50505b505050505b50565b61271081565b600181565b61100181565b603881565b600881565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611011576000915050611036565b60018082038154811061102057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061105257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b606681565b336120001461110a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614951602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600981565b61100781565b61100681565b6040518061062001604052806105ef81526020016143626105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611218576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146112585760405162461bcd60e51b815260040180806020018281038252602e8152602001806142cc602e913960400191505060405180910390fd5b6112c284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f419050565b1561139d57602081146113065760405162461bcd60e51b815260040180806020018281038252602681526020018061431b6026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113449185858083850183828082843760009201919091525061302992505050565b90506064811015801561135a5750620186a08111155b6113955760405162461bcd60e51b815260040180806020018281038252602781526020018061425f6027913960400191505060405180910390fd5b60025561152a565b6113fd84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f419050565b156114ed5760208114611457576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114959185858083850183828082843760009201919091525061302992505050565b90506127108111156114d85760405162461bcd60e51b815260040180806020018281038252602b815260200180614209602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561152a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561161f57600181815481106115ed57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611617576001909101905b6001016115d8565b5060608160405190808252806020026020018201604052801561164c578160200160208202803683370190505b50600092509050815b838110156116ec576001818154811061166a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116e4576001818154811061169a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116c557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611655565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561176f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611777614158565b600061179d6040518061062001604052806105ef81526020016143626105ef9139611e0a565b91509150806117dd5760405162461bcd60e51b81526004018080602001828103825260218152602001806143416021913960400191505060405180910390fd5b60005b826020015151811015611902576001836020015182815181106117ff57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118d557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117e0565b50506103e8600255506000805460ff19166001179055565b336110011461195a5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ad6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061197e5750610fbf565b60018103905060006001828154811061199357fe5b90600052602060002090600402016003015490506000600183815481106119b657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a2557505050610fbf565b6000818381611a3057fe5b0490508015610fba5760005b84811015611a8e578160018281548110611a5257fe5b9060005260206000209060040201600301540160018281548110611a7257fe5b6000918252602090912060036004909202010155600101611a3c565b50600180549085015b81811015610fb7578260018281548110611aad57fe5b9060005260206000209060040201600301540160018281548110611acd57fe5b6000918252602090912060036004909202010155600101611a97565b606581565b334114611b2c5760405162461bcd60e51b815260040180806020018281038252602d815260200180614980602d913960400191505060405180910390fd5b60005460ff16611b7f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bcc576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615611bfc57506006545b600083118015611c0c5750600081115b15611cb5576000611c35612710611c29868563ffffffff61302e16565b9063ffffffff61308716565b90508015611cb35760405161dead9082156108fc029083906000818181858888f19350505050158015611c6c573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cb0848263ffffffff6130c916565b93505b505b8115611dad576000600180840381548110611ccc57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d37576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611da7565b600354611d4a908563ffffffff61310b16565b6003908155810154611d62908563ffffffff61310b16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611ded565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e12614158565b6000611e1c614158565b611e24614170565b611e35611e3086613165565b61318a565b90506000805b611e44836131d4565b15611f555780611e6957611e5f611e5a846131f5565b613243565b60ff168452611f4d565b8060011415611f48576060611e85611e80856131f5565b6132fa565b90508051604051908082528060200260200182016040528015611ec257816020015b611eaf614190565b815260200190600190039081611ea75790505b50602086015260005b8151811015611f3d57611edc614190565b6000611efa848481518110611eed57fe5b60200260200101516133cb565b9150915080611f1757876000995099505050505050505050611f5e565b8188602001518481518110611f2857fe5b60209081029190910101525050600101611ecb565b506001925050611f4d565b611f55565b600101611e3b565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f7d579050509050611fa38363ffffffff166134a8565b81600081518110611fb057fe5b6020026020010181905250610c93816134bb565b6000806060611fd284613545565b915091508161207f577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561203a578181015183820152602001612022565b50505050905090810190601f1680156120675780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050611036565b600080805b6001548110156120fc5767016345785d8a0000600182815481106120a457fe5b906000526020600020906004020160030154106120c6576001909201916120f4565b6000600182815481106120d557fe5b90600052602060002090600402016003015411156120f4576001909101905b600101612084565b50606082604051908082528060200260200182016040528015612129578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612158578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612187578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121e7578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612216578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d602081101561228d57600080fd5b5051905067016345785d8a0000811115612302577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806142fa6021913960400191505060405180910390a160689d5050505050505050505050505050611036565b60005b6001548110156125755767016345785d8a00006001828154811061232557fe5b906000526020600020906004020160030154106124ab576001818154811061234957fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061237a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123af57fe5b906000526020600020906004020160030154816123c857fe5b06600183815481106123d657fe5b9060005260206000209060040201600301540390506123fe83826130c990919063ffffffff16565b8a8e8151811061240a57fe5b6020026020010181815250506001828154811061242357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248157fe5b602090810291909101015261249c878263ffffffff61310b16565b6001909d019c965061256d9050565b6000600182815481106124ba57fe5b906000526020600020906004020160030154111561256d57600181815481106124df57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061253d57fe5b906000526020600020906004020160030154848c8151811061255b57fe5b60209081029190910101526001909a01995b600101612305565b50600085156129b3576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126075781810151838201526020016125ef565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b505050509050019750505050505050506020604051808303818588803b1580156126ae57600080fd5b505af1935050505080156126d457506040513d60208110156126cf57600080fd5b505160015b61290f576040516000815260443d10156126f05750600061278b565b60046000803e60005160e01c6308c379a0811461271157600091505061278b565b60043d036004833e81513d60248201116001600160401b038211171561273c5760009250505061278b565b80830180516001600160401b0381111561275d57600094505050505061278b565b8060208301013d860181111561277b5760009550505050505061278b565b601f01601f191660405250925050505b80612796575061283a565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127fa5781810151838201526020016127e2565b50505050905090810190601f1680156128275780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061290a565b3d808015612864576040519150601f19603f3d011682016040523d82523d6000602084013e612869565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128ce5781810151838201526020016128b6565b50505050905090810190601f1680156128fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129b3565b801561294d576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129b1565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b695760005b8851811015612b675760008982815181106129d357fe5b602002602001015190506000600182815481106129ec57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a1d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ad95760018281548110612a5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612aad57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b5d565b60018281548110612ae657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b3557fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129bc565b505b845115612cb35760005b8551811015612cb1576000868281518110612b8a57fe5b60200260200101516001600160a01b03166108fc878481518110612baa57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4057868281518110612be057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c1e57fe5b60200260200101516040518082815260200191505060405180910390a2612ca8565b868281518110612c4c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c8a57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b73565b505b4715612d1c576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d1a573d6000803e3d6000fd5b505b60006003819055600555825115612d3657612d3683613627565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e1b5750600180820381548110612dfb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e615782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050611036565b600154600554600019820111801590612eb75784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050611036565b600580546001908101909155805481906000198601908110612ed557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f765780518252601f199092019160209182019101612f57565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fe45780518252601f199092019160209182019101612fc5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60008261303d57506000613023565b8282028284828161304a57fe5b0414610c935760405162461bcd60e51b81526004018080602001828103825260218152602001806142ab6021913960400191505060405180910390fd5b6000610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ae8565b6000610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8a565b600082820183811015610c93576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61316d6141c5565b506040805180820190915281518152602082810190820152919050565b613192614170565b61319b82613be4565b6131a457600080fd5b60006131b38360200151613c1e565b60208085015160408051808201909152868152920190820152915050919050565b60006131de6141c5565b505080518051602091820151919092015191011190565b6131fd6141c5565b613206826131d4565b61320f57600080fd5b6020820151600061321f82613c81565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061325857508151602110155b61326157600080fd5b60006132708360200151613c1e565b905080836000015110156132cb576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132f157826020036101000a820491505b50949350505050565b606061330582613be4565b61330e57600080fd5b600061331983613db4565b905060608160405190808252806020026020018201604052801561335757816020015b6133446141c5565b81526020019060019003908161333c5790505b50905060006133698560200151613c1e565b60208601510190506000805b848110156133c05761338683613c81565b91506040518060400160405280838152602001848152508482815181106133a957fe5b602090810291909101015291810191600101613375565b509195945050505050565b6133d3614190565b60006133dd614190565b6133e5614170565b6133ee8561318a565b90506000805b6133fd836131d4565b15611f55578061342857613418613413846131f5565b613e10565b6001600160a01b031684526134a0565b80600114156134505761343d613413846131f5565b6001600160a01b031660208501526134a0565b806002141561347857613465613413846131f5565b6001600160a01b031660408501526134a0565b8060031415611f485761348d611e5a846131f5565b6001600160401b03166060850152600191505b6001016133f4565b60606130236134b683613e2a565b613f10565b60608151600014156134dc5750604080516000815260208101909152611036565b6060826000815181106134eb57fe5b602002602001015190506000600190505b835181101561352c576135228285838151811061351557fe5b6020026020010151613f62565b91506001016134fc565b50610c9361353f825160c060ff16613fdf565b82613f62565b600060606029835111156135775760006040518060600160405280602981526020016141e06029913991509150611f5e565b60005b835181101561360d5760005b818110156136045784818151811061359a57fe5b6020026020010151600001516001600160a01b03168583815181106135bb57fe5b6020026020010151600001516001600160a01b031614156135fc5760006040518060600160405280602b8152602001614234602b9139935093505050611f5e565b600101613586565b5060010161357a565b505060408051602081019091526000815260019150915091565b600154815160005b82811015613744576001613641614190565b6001838154811061364e57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613718578681815181106136de57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156137105760009250613718565b6001016136ca565b50811561373a5780516001600160a01b03166000908152600460205260408120555b505060010161362f565b50808211156137b957805b828110156137b757600180548061376257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b031916905560039091019190915591550161374f565b505b60008183106137c857816137ca565b825b905060005b818110156139c45761387c8582815181106137e657fe5b6020026020010151600183815481106137fb57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140d7565b61399757806001016004600087848151811061389457fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138d057fe5b6020026020010151600182815481106138e557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139bc565b6000600182815481106139a657fe5b9060005260206000209060040201600301819055505b6001016137cf565b5082821115611ded57825b82811015610fba5760018582815181106139e557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613abb57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139cf565b60008183613b745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b39578181015183820152602001613b21565b50505050905090810190601f168015613b665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8057fe5b0495945050505050565b60008184841115613bdc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b39578181015183820152602001613b21565b505050900390565b8051600090613bf557506000611036565b6020820151805160001a9060c0821015613c1457600092505050611036565b5060019392505050565b8051600090811a6080811015613c38576000915050611036565b60b8811080613c53575060c08110801590613c53575060f881105b15613c62576001915050611036565b60c0811015613c765760b519019050611036565b60f519019050611036565b80516000908190811a6080811015613c9c5760019150613dad565b60b8811015613cb157607e1981019150613dad565b60c0811015613d2b57600060b78203600186019550806020036101000a865104915060018101820193505080831015613d25576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613dad565b60f8811015613d405760be1981019150613dad565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613dab576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dc557506000611036565b60008090506000613dd98460200151613c1e565b602085015185519181019250015b80821015613e0757613df882613c81565b60019093019290910190613de7565b50909392505050565b8051600090601514613e2157600080fd5b61302382613243565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e6e57506018613e92565b6fffffffffffffffffffffffffffffffff198416613e8e57506010613e92565b5060005b6020811015613ec857818181518110613ea757fe5b01602001516001600160f81b03191615613ec057613ec8565b600101613e92565b60008160200390506060816040519080825280601f01601f191660200182016040528015613efd576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f425750607f60f81b82600081518110613f3057fe5b01602001516001600160f81b03191611155b15613f4e575080611036565b613023613f608351608060ff16613fdf565b835b6060806040519050835180825260208201818101602087015b81831015613f93578051835260209283019201613f7b565b50855184518101855292509050808201602086015b81831015613fc0578051835260209283019201613fa8565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061402f576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116140895782840160f81b8160008151811061406b57fe5b60200101906001600160f81b031916908160001a9053509050613023565b606061409485613e2a565b90508381510160370160f81b826000815181106140ad57fe5b60200101906001600160f81b031916908160001a9053506140ce8282613f62565b95945050505050565b805182516000916001600160a01b039182169116148015614111575081602001516001600160a01b031683602001516001600160a01b0316145b8015614136575081604001516001600160a01b031683604001516001600160a01b0316145b8015610c935750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806141836141c5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574f905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a2000746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220b806ba3d9dd9e078bac9726f79b32c9b62db327924a189cc1a9e4e106ffbe50d64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/bruno/types.go b/core/systemcontracts/bruno/types.go new file mode 100644 index 0000000000..db3739e16c --- /dev/null +++ b/core/systemcontracts/bruno/types.go @@ -0,0 +1,15 @@ +package bruno + +import _ "embed" + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/ValidatorContract + MainnetValidatorContract string +) + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/ValidatorContract + ChapelValidatorContract string +) diff --git a/core/systemcontracts/euler/chapel/SlashContract b/core/systemcontracts/euler/chapel/SlashContract new file mode 100644 index 0000000000..20391e383f --- /dev/null +++ b/core/systemcontracts/euler/chapel/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061023d5760003560e01c80638256ace61161013b578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a1461071d578063f9a2bbc714610725578063fc3e59081461072d578063fc4333cd14610735578063fd6a68791461073d5761023d565b8063c80d4b8f14610667578063c81b16621461066f578063c8509d8114610677578063c96be4cb146106ef578063dc927faf146107155761023d565b8063a1a11bf5116100ff578063a1a11bf514610575578063a78abc161461057d578063ab51bb9614610599578063ac0af629146105a1578063ac431751146105a95761023d565b80638256ace6146104dd578063831d65d1146104e557806396713da91461055d5780639bc8e4f2146105655780639dc092621461056d5761023d565b80634bf6c882116101c95780636e47b4821161018d5780636e47b482146104b557806370fd5bad146104bd57806375d47a0a146104c55780637912a65d146104cd5780637942fd05146104d55761023d565b80634bf6c8821461046d57806351e8067214610475578063567a372d1461047d5780635bfb49901461048557806362b72cf5146104ad5761023d565b806337c8dab91161021057806337c8dab9146103cf578063389f4f711461040e5780633dffc3871461042857806343756e5c14610446578063493279b11461044e5761023d565b80630bee7a67146102425780631182b8751461026357806323bac5a21461035057806335aa2e4414610396575b600080fd5b61024a610745565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603604081101561027957600080fd5b60ff8235169190810190604081016020820135600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460018302840111600160201b831117156102d057600080fd5b50909250905061074a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103766004803603602081101561036657600080fd5b50356001600160a01b031661081e565b604080519384526020840192909252151582820152519081900360600190f35b6103b3600480360360208110156103ac57600080fd5b5035610841565b604080516001600160a01b039092168252519081900360200190f35b6103f5600480360360208110156103e557600080fd5b50356001600160a01b0316610868565b6040805192835260208301919091528051918290030190f35b6104166108bf565b60408051918252519081900360200190f35b6104306108c5565b6040805160ff9092168252519081900360200190f35b6103b36108ca565b6104566108d0565b6040805161ffff9092168252519081900360200190f35b6104306108d5565b6103b36108da565b6104166108e0565b6104ab6004803603602081101561049b57600080fd5b50356001600160a01b03166108e6565b005b610416610a47565b6103b3610a4d565b610430610a53565b6103b3610a58565b610416610a5e565b610430610a63565b6103f5610a68565b6104ab600480360360408110156104fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561051f57600080fd5b82018360208201111561053157600080fd5b803590602001918460018302840111600160201b8311171561055257600080fd5b509092509050610a72565b610430610bcc565b610416610bd1565b6103b3610bdc565b6103b3610be2565b610585610be8565b604080519115158252519081900360200190f35b61024a610bf1565b610416610bf6565b6104ab600480360360408110156105bf57600080fd5b810190602081018135600160201b8111156105d957600080fd5b8201836020820111156105eb57600080fd5b803590602001918460018302840111600160201b8311171561060c57600080fd5b919390929091602081019035600160201b81111561062957600080fd5b82018360208201111561063b57600080fd5b803590602001918460018302840111600160201b8311171561065c57600080fd5b509092509050610bfb565b610416610fe9565b6103b3610fee565b6104ab6004803603604081101561068d57600080fd5b60ff8235169190810190604081016020820135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b509092509050610ff4565b6104ab6004803603602081101561070557600080fd5b50356001600160a01b03166110a7565b6103b361154a565b6104ab611550565b6103b36115c1565b6104306115c7565b6104ab6115cc565b6103b3611a57565b606481565b6060336120001461078c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff166107d1576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061084e57fe5b6000918252602090912001546001600160a01b0316905081565b600080610873612372565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146109265760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff1661096b576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b61200063f7a251d7600b61097e84611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a2c57600080fd5b505af1158015610a40573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ab25760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16610af7576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b610aff612395565b6000610b4084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b2f92505050565b915091508015610b8a5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a40565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c40576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b3361100714610c805760405162461bcd60e51b815260040180806020018281038252602e815260200180612439602e913960400191505060405180910390fd5b610ceb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611baf9050565b15610dc45760208114610d2f5760405162461bcd60e51b81526004018080602001828103825260278152602001806123e26027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d6d91858580838501838280828437600092019190915250611c9792505050565b905060018110158015610d81575060055481105b610dbc5760405162461bcd60e51b81526004018080602001828103825260258152602001806124896025913960400191505060405180910390fd5b600455610f57565b610e2a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611baf9050565b15610f1a5760208114610e6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806124676022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610eac91858580838501838280828437600092019190915250611c9792505050565b90506103e88111158015610ec1575060045481115b610f12576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f57565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16611079576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146110e55760405162461bcd60e51b815260040180806020018281038252602d8152602001806124dd602d913960400191505060405180910390fd5b60005460ff1661112a576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6003544311611180576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111ca576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b505161124757611543565b61124f612372565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112aa576020810180516001019052611303565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161131557fe5b0661146757600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561136857600080fd5b505af115801561137c573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b61139c85611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113fc5781810151838201526020016113e4565b50505050905090810190601f1680156114295780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506114dd565b60045481602001518161147657fe5b066114dd57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156115a8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461160c5760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff16611651576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b60015461165d57611a55565b600154600090600019015b808211611a29576000805b8284101561178c57611683612372565b600260006001878154811061169457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156117765760046005548161170157fe5b0481602001510381602001818152505080600260006001888154811061172357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611780565b600192505061178c565b50600190930192611673565b8284116119235761179b612372565b60026000600186815481106117ac57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118945760046005548161181957fe5b0481602001510381602001818152505080600260006001878154811061183b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506119239050565b60026000600186815481106118a557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806118e957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119165750611923565b506000199092019161178c565b81801561192d5750805b15611a0c57600260006001868154811061194357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061198a57fe5b600091825260209091200154600180546001600160a01b0390921691869081106119b057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806119e957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611a18575050611a29565b505060019091019060001901611668565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611a78579050509050611aa1836001600160a01b0316611c9c565b81600081518110611aae57fe5b6020026020010181905250611ac243611cbf565b81600181518110611acf57fe5b6020908102919091010152611ae46061611cbf565b81600281518110611af157fe5b6020026020010181905250611b0542611cbf565b81600381518110611b1257fe5b6020026020010181905250611b2681611cd2565b9150505b919050565b611b37612395565b6000611b41612395565b611b496123a7565b611b5a611b5586611d5c565b611d81565b90506000805b611b6983611dcb565b15611ba25780611b9557611b84611b7f84611dec565b611e3a565b63ffffffff16845260019150611b9a565b611ba2565b600101611b60565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611be45780518252601f199092019160209182019101611bc5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611c525780518252601f199092019160209182019101611c33565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611b2681611ef1565b6060611c91611ccd83611f47565b611ef1565b6060815160001415611cf35750604080516000815260208101909152611b2a565b606082600081518110611d0257fe5b602002602001015190506000600190505b8351811015611d4357611d3982858381518110611d2c57fe5b602002602001015161202d565b9150600101611d13565b50611b26611d56825160c060ff166120aa565b8261202d565b611d646123c7565b506040805180820190915281518152602082810190820152919050565b611d896123a7565b611d92826121a2565b611d9b57600080fd5b6000611daa83602001516121dc565b60208085015160408051808201909152868152920190820152915050919050565b6000611dd56123c7565b505080518051602091820151919092015191011190565b611df46123c7565b611dfd82611dcb565b611e0657600080fd5b60208201516000611e168261223f565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611e4f57508151602110155b611e5857600080fd5b6000611e6783602001516121dc565b90508083600001511015611ec2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ee857826020036101000a820491505b50949350505050565b606081516001148015611f235750607f60f81b82600081518110611f1157fe5b01602001516001600160f81b03191611155b15611f2f575080611b2a565b611c91611f418351608060ff166120aa565b8361202d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f8b57506018611faf565b6fffffffffffffffffffffffffffffffff198416611fab57506010611faf565b5060005b6020811015611fe557818181518110611fc457fe5b01602001516001600160f81b03191615611fdd57611fe5565b600101611faf565b60008160200390506060816040519080825280601f01601f19166020018201604052801561201a576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561205e578051835260209283019201612046565b50855184518101855292509050808201602086015b8183101561208b578051835260209283019201612073565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106120fa576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116121545782840160f81b8160008151811061213657fe5b60200101906001600160f81b031916908160001a9053509050611c91565b606061215f85611f47565b90508381510160370160f81b8260008151811061217857fe5b60200101906001600160f81b031916908160001a905350612199828261202d565b95945050505050565b80516000906121b357506000611b2a565b6020820151805160001a9060c08210156121d257600092505050611b2a565b5060019392505050565b8051600090811a60808110156121f6576000915050611b2a565b60b8811080612211575060c08110801590612211575060f881105b15612220576001915050611b2a565b60c08110156122345760b519019050611b2a565b60f519019050611b2a565b80516000908190811a608081101561225a576001915061236b565b60b881101561226f57607e198101915061236b565b60c08110156122e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156122e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061236b565b60f88110156122fe5760be198101915061236b565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612369576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806123ba6123c7565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220a288eb0fb37b1f80ed70929944f149856fbe848d775f3fe9d6a2f46faa67754564736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/euler/chapel/ValidatorContract b/core/systemcontracts/euler/chapel/ValidatorContract new file mode 100644 index 0000000000..bed62c9650 --- /dev/null +++ b/core/systemcontracts/euler/chapel/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106104055760003560e01c80638d19a41011610213578063c81b166211610123578063eb57e202116100ab578063f9a2bbc71161007a578063f9a2bbc714610d55578063fc3e590814610d6a578063fccc281314610d7f578063fd4ad81f14610d94578063fd6a687914610dd757610405565b8063eb57e20214610cd2578063eda5868c14610d05578063f340fa0114610d1a578063f92eb86b14610d4057610405565b8063daacdb66116100f2578063daacdb6614610c69578063dc927faf14610c7e578063e086c7b114610c93578063e1c7392a14610ca8578063e40716a114610cbd57610405565b8063c81b166214610c2a578063c8509d8114610939578063d68fb56a14610c3f578063d86222d514610c5457610405565b8063a78abc16116101a6578063ad3c9da611610175578063ad3c9da614610bb8578063b7ab4db514610beb578063b8cf4ef114610c00578063bf9f49951461065f578063c6d3394514610c1557610405565b8063a78abc1614610aae578063aaf5eb6814610ac3578063ab51bb9614610ad8578063ac43175114610aed57610405565b80639fe0f816116101e25780639fe0f81614610a5a578063a0dc275814610a6f578063a1a11bf514610a84578063a5422d5c14610a9957610405565b80638d19a410146109e85780639369d7de14610a1b57806396713da914610a305780639dc0926214610a4557610405565b80635192c82c1161031957806375d47a0a116102a157806381650b621161027057806381650b6214610924578063831d65d114610939578063853230aa146108e557806386249882146109be5780638b5ad0c9146109d357610405565b806375d47a0a146108d057806378dfed4a146108e55780637942fd05146108fa5780637a84ca2a1461090f57610405565b80635667515a116102e85780635667515a146108065780635d77156c1461081b5780636969a25c146108305780636e47b482146108a657806370fd5bad146108bb57610405565b80635192c82c1461077657806351e806721461078b57806355614fcc146107a0578063565c56b3146107d357610405565b80633365af3a1161039c57806343756e5c1161036b57806343756e5c1461068a57806345cf9daf146106bb578063493279b1146106d05780634bf6c882146106fc5780634df6e0c31461071157610405565b80633365af3a146105ed57806335409f7f146106175780633de0f0d81461064a5780633dffc3871461065f57610405565b8063152ad3b8116103d8578063152ad3b8146105705780631ff1806914610599578063219f22d5146105ae578063321d398a146105c357610405565b806304c4fec61461040a57806307a56847146104215780630bee7a67146104485780631182b87514610476575b600080fd5b34801561041657600080fd5b5061041f610dec565b005b34801561042d57600080fd5b50610436610e7f565b60408051918252519081900360200190f35b34801561045457600080fd5b5061045d610e85565b6040805163ffffffff9092168252519081900360200190f35b34801561048257600080fd5b506104fb6004803603604081101561049957600080fd5b60ff8235169190810190604081016020820135600160201b8111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111600160201b831117156104f057600080fd5b509092509050610e8a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053557818101518382015260200161051d565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b5061058561111c565b604080519115158252519081900360200190f35b3480156105a557600080fd5b50610436611125565b3480156105ba57600080fd5b5061045d61112b565b3480156105cf57600080fd5b50610585600480360360208110156105e657600080fd5b5035611130565b3480156105f957600080fd5b506105856004803603602081101561061057600080fd5b50356111ff565b34801561062357600080fd5b5061041f6004803603602081101561063a57600080fd5b50356001600160a01b03166112b0565b34801561065657600080fd5b5061043661140f565b34801561066b57600080fd5b50610674611415565b6040805160ff9092168252519081900360200190f35b34801561069657600080fd5b5061069f61141a565b604080516001600160a01b039092168252519081900360200190f35b3480156106c757600080fd5b50610436611420565b3480156106dc57600080fd5b506106e5611426565b6040805161ffff9092168252519081900360200190f35b34801561070857600080fd5b5061067461142b565b34801561071d57600080fd5b50610726611430565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561076257818101518382015260200161074a565b505050509050019250505060405180910390f35b34801561078257600080fd5b5061043661152b565b34801561079757600080fd5b5061069f611531565b3480156107ac57600080fd5b50610585600480360360208110156107c357600080fd5b50356001600160a01b0316611537565b3480156107df57600080fd5b50610436600480360360208110156107f657600080fd5b50356001600160a01b031661156c565b34801561081257600080fd5b506106746115bd565b34801561082757600080fd5b5061045d6115c2565b34801561083c57600080fd5b5061085a6004803603602081101561085357600080fd5b50356115c7565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156108b257600080fd5b5061069f61162b565b3480156108c757600080fd5b50610674611631565b3480156108dc57600080fd5b5061069f611636565b3480156108f157600080fd5b5061043661163c565b34801561090657600080fd5b50610674611642565b34801561091b57600080fd5b50610436611647565b34801561093057600080fd5b5061045d61164d565b34801561094557600080fd5b5061041f6004803603604081101561095c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460018302840111600160201b831117156109b357600080fd5b509092509050611652565b3480156109ca57600080fd5b50610436611705565b3480156109df57600080fd5b5061043661170b565b3480156109f457600080fd5b5061043660048036036020811015610a0b57600080fd5b50356001600160a01b0316611711565b348015610a2757600080fd5b5061041f611786565b348015610a3c57600080fd5b506106746118a0565b348015610a5157600080fd5b5061069f6118a5565b348015610a6657600080fd5b506104366118ab565b348015610a7b57600080fd5b506104366118b0565b348015610a9057600080fd5b5061069f6118b5565b348015610aa557600080fd5b506104fb6118bb565b348015610aba57600080fd5b506105856118da565b348015610acf57600080fd5b506104366118e3565b348015610ae457600080fd5b5061045d6115bd565b348015610af957600080fd5b5061041f60048036036040811015610b1057600080fd5b810190602081018135600160201b811115610b2a57600080fd5b820183602082011115610b3c57600080fd5b803590602001918460018302840111600160201b83111715610b5d57600080fd5b919390929091602081019035600160201b811115610b7a57600080fd5b820183602082011115610b8c57600080fd5b803590602001918460018302840111600160201b83111715610bad57600080fd5b5090925090506118ec565b348015610bc457600080fd5b5061043660048036036020811015610bdb57600080fd5b50356001600160a01b0316612329565b348015610bf757600080fd5b5061072661233b565b348015610c0c57600080fd5b5061043661241e565b348015610c2157600080fd5b50610436611631565b348015610c3657600080fd5b5061069f612423565b348015610c4b57600080fd5b50610436612429565b348015610c6057600080fd5b50610436612468565b348015610c7557600080fd5b50610436612474565b348015610c8a57600080fd5b5061069f61247a565b348015610c9f57600080fd5b50610436612480565b348015610cb457600080fd5b5061041f612485565b348015610cc957600080fd5b50610436612688565b348015610cde57600080fd5b5061041f60048036036020811015610cf557600080fd5b50356001600160a01b031661268e565b348015610d1157600080fd5b5061045d61279c565b61041f60048036036020811015610d3057600080fd5b50356001600160a01b03166127a1565b348015610d4c57600080fd5b50610436612aa6565b348015610d6157600080fd5b5061069f612aac565b348015610d7657600080fd5b506106746118ab565b348015610d8b57600080fd5b5061069f612ab2565b348015610da057600080fd5b50610dbe60048036036020811015610db757600080fd5b5035612ab8565b6040805192835290151560208301528051918290030190f35b348015610de357600080fd5b5061069f612ae6565b6000610df733611711565b9050600b8181548110610e0657fe5b600091825260209091206001601690920201015460ff16610e63576040805162461bcd60e51b81526020600482015260126024820152716e6f7420696e206d61696e74656e616e636560701b604482015290519081900360640190fd5b6000610e6d612429565b9050610e7a338383612aec565b505050565b60095481565b606481565b60005460609060ff16610ee0576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610f205760405162461bcd60e51b815260040180806020018281038252602f815260200180616047602f913960400191505060405180910390fd5b600b54610fc557610f2f6159e0565b60015460005b81811015610fc157600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff191691151591909117905560408501518592610fb391600080516020616006833981519152909101906014615a04565b505050806001019050610f35565b5050505b610fcd615a3e565b600061100e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce092505050565b915091508061102a576110216064612e39565b92505050611115565b815160009060ff1661104a576110438360200151612e9a565b90506110e1565b825160ff16600114156110dd578260200151516001146110b7577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180615f066025913960400191505060405180910390a15060676110d8565b61104383602001516000815181106110cb57fe5b6020026020010151613caa565b6110e1565b5060655b63ffffffff811661110657505060408051600081526020810190915291506111159050565b61110f81612e39565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b6001546000908210611144575060006111fa565b60006001600160a01b03166001838154811061115c57fe5b60009182526020909120600490910201546001600160a01b0316148061118c5750600854158061118c5750600a54155b8061119b575060085460095410155b806111ac57506111aa826111ff565b155b806111d557506000600b83815481106111c157fe5b906000526020600020906016020160000154115b806111e9575060016111e561233b565b5111155b156111f6575060006111fa565b5060015b919050565b6001546000908210611213575060006111fa565b600b548210611250576001828154811061122957fe5b9060005260206000209060040201600201601c9054906101000a900460ff161590506111fa565b6001828154811061125d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156112aa5750600b828154811061129157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146112f05760405162461bcd60e51b81526004018080602001828103825260298152602001806160f06029913960400191505060405180910390fd5b600b54611395576112ff6159e0565b60015460005b8181101561139157600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261138391600080516020616006833981519152909101906014615a04565b505050806001019050611305565b5050505b6001600160a01b038116600090815260046020526040902054806113b9575061140c565b6001810390506000600b82815481106113ce57fe5b600091825260209091206001601690920201015460ff1690506113f18383613e21565b80156113fa5750805b15610e7a576009805460001901905550505b50565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c546060919080611443575060155b606061144d61233b565b905081815111611461579250611528915050565b82828251031015611473578181510392505b82156114a75760c8430461148e82828686036000888861419d565b6114a582828686038787038889898951030161419d565b505b6060826040519080825280602002602001820160405280156114d3578160200160208202803683370190505b50905060005b83811015611521578281815181106114ed57fe5b602002602001015182828151811061150157fe5b6001600160a01b03909216602092830291909101909101526001016114d9565b5093505050505b90565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061155f5760009150506111fa565b60001901611115816111ff565b6001600160a01b038116600090815260046020526040812054806115945760009150506111fa565b6001808203815481106115a357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600181815481106115d457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b600c5481565b606681565b33612000146116925760405162461bcd60e51b815260040180806020018281038252602f815260200180616047602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600a5481565b6001600160a01b0381166000908152600460205260408120548061177c576040805162461bcd60e51b815260206004820152601760248201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604482015290519081900360640190fd5b6000190192915050565b600b5461182b576117956159e0565b60015460005b8181101561182757600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261181991600080516020616006833981519152909101906014615a04565b50505080600101905061179b565b5050505b6008546118385760036008555b600a54611845576002600a555b600061185033611711565b905061185b81611130565b6118965760405162461bcd60e51b8152600401808060200182810382526023815260200180615ee36023913960400191505060405180910390fd5b61140c338261428c565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001615b396101ab913981565b60005460ff1681565b6402540be40081565b60005460ff1661193f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461197f5760405162461bcd60e51b815260040180806020018281038252602e815260200180615f4c602e913960400191505060405180910390fd5b6119e984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506143249050565b15611ac45760208114611a2d5760405162461bcd60e51b8152600401808060200182810382526026815260200180615fe06026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611a6b9185858083850183828082843760009201919091525061440b92505050565b905060648110158015611a815750620186a08111155b611abc5760405162461bcd60e51b8152600401808060200182810382526027815260200180615e736027913960400191505060405180910390fd5b600255612297565b611b2484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506143249050565b15611c145760208114611b7e576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611bbc9185858083850183828082843760009201919091525061440b92505050565b9050612710811115611bff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615e1d602b913960400191505060405180910390fd5b6006556007805460ff19166001179055612297565b611c7e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506143249050565b15611d565760208114611cc25760405162461bcd60e51b8152600401808060200182810382526026815260200180615ce46026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611d009185858083850183828082843760009201919091525061440b92505050565b600c5490915080611d0f575060155b808210611d4d5760405162461bcd60e51b8152600401808060200182810382526038815260200180615d5b6038913960400191505060405180910390fd5b50600855612297565b611dbf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506143249050565b15611e8a5760208114611e035760405162461bcd60e51b8152600401808060200182810382526025815260200180615d366025913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611e419185858083850183828082843760009201919091525061440b92505050565b905060008111611e825760405162461bcd60e51b815260040180806020018281038252602d8152602001806160a3602d913960400191505060405180910390fd5b600a55612297565b611efe84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506143249050565b15611fcb5760208114611f425760405162461bcd60e51b815260040180806020018281038252602c815260200180615d0a602c913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611f809185858083850183828082843760009201919091525061440b92505050565b9050600d54811115611fc35760405162461bcd60e51b8152600401808060200182810382526049815260200180615e9a6049913960600191505060405180910390fd5b600e55612297565b61203484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506143249050565b156120d557602081146120785760405162461bcd60e51b8152600401808060200182810382526025815260200180615f7a6025913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916120b69185858083850183828082843760009201919091525061440b92505050565b600d819055600e549091508110156120cf57600d54600e555b50612297565b61213984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506143249050565b1561225a5760208114612193576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121d19185858083850183828082843760009201919091525061440b92505050565b9050600081116122125760405162461bcd60e51b8152600401808060200182810382526028815260200180615d936028913960400191505060405180910390fd5b60298111156122525760405162461bcd60e51b8152600401808060200182810382526039815260200180615dbb6039913960400191505060405180910390fd5b600c55612297565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561236a57612356816111ff565b15612362576001909101905b600101612345565b50606081604051908082528060200260200182016040528015612397578160200160208202803683370190505b5090506000915060005b83811015612416576123b2816111ff565b1561240e57600181815481106123c457fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106123ef57fe5b6001600160a01b03909216602092830291909101909101526001909201915b6001016123a1565b509250505090565b601581565b61100281565b600061243361233b565b519050600080600c541161244857601561244c565b600c545b90508082111561245a578091505b8161246457600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156124dd576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6124e5615a3e565b600061250b604051806101e001604052806101ab8152602001615b396101ab9139612ce0565b915091508061254b5760405162461bcd60e51b81526004018080602001828103825260218152602001806160266021913960400191505060405180910390fd5b60005b8260200151518110156126705760018360200151828151811061256d57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061264357fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161254e565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146126ce5760405162461bcd60e51b81526004018080602001828103825260298152602001806160f06029913960400191505060405180910390fd5b600b54612773576126dd6159e0565b60015460005b8181101561276f57600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261276191600080516020616006833981519152909101906014615a04565b5050508060010190506126e3565b5050505b600061277e82614410565b905061278981611130565b1561279857612798828261428c565b5050565b606581565b3341146127df5760405162461bcd60e51b815260040180806020018281038252602d815260200180616076602d913960400191505060405180910390fd5b60005460ff16612832576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b6000341161287f576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff16156128af57506006545b6000831180156128bf5750600081115b156129685760006128e86127106128dc868563ffffffff6145b416565b9063ffffffff61460d16565b905080156129665760405161dead9082156108fc029083906000818181858888f1935050505015801561291f573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1612963848263ffffffff61464f16565b93505b505b8115612a6057600060018084038154811061297f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156129ea576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2612a5a565b6003546129fd908563ffffffff61469116565b6003908155810154612a15908563ffffffff61469116565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50612aa0565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612ac557fe5b60009182526020909120601690910201805460019091015490915060ff1682565b61100481565b6000600a5460001480612afd575081155b80612b085750600954155b15612b1557506000611115565b600960008154809291906001900391905055506000612b62600a546128dc856128dc600b8981548110612b4457fe5b6000918252602090912060169091020154439063ffffffff61464f16565b90506000600b8581548110612b7357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612bd857600080fd5b505afa158015612bec573d6000803e3d6000fd5b505050506040513d6040811015612c0257600080fd5b508051602090910151600095509092509050808310612c9057612c258787613e21565b50604080516305bfb49960e41b81526001600160a01b0389166004820152905161100191635bfb499091602480830192600092919082900301818387803b158015612c6f57600080fd5b505af1158015612c83573d6000803e3d6000fd5b5050505060019350612ca2565b818310612ca257612ca087614410565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612ce8615a3e565b6000612cf2615a3e565b612cfa615a56565b612d0b612d06866146eb565b614710565b90506000805b612d1a8361475a565b15612e2b5780612d3f57612d35612d308461477b565b6147c9565b60ff168452612e23565b8060011415612e1e576060612d5b612d568561477b565b614880565b90508051604051908082528060200260200182016040528015612d9857816020015b612d85615a76565b815260200190600190039081612d7d5790505b50602086015260005b8151811015612e1357612db2615a76565b6000612dd0848481518110612dc357fe5b6020026020010151614951565b9150915080612ded57876000995099505050505050505050612e34565b8188602001518481518110612dfe57fe5b60209081029190910101525050600101612da1565b506001925050612e23565b612e2b565b600101612d11565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081612e53579050509050612e798363ffffffff16614a2e565b81600081518110612e8657fe5b602002602001018190525061111581614a41565b6000806060612ea884614acb565b9150915081612f55577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612f10578181015183820152602001612ef8565b50505050905090810190601f168015612f3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066925050506111fa565b50506060612f6283614bad565b6001549091506000908190815b81811015612fe55767016345785d8a000060018281548110612f8d57fe5b90600052602060002090600402016003015410612faf57600190930192612fdd565b600060018281548110612fbe57fe5b9060005260206000209060040201600301541115612fdd576001909201915b600101612f6f565b50606083604051908082528060200260200182016040528015613012578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613041578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613070578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561309f578160200160208202803683370190505b50905060006060876040519080825280602002602001820160405280156130d0578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156130ff578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561314757600080fd5b505afa15801561315b573d6000803e3d6000fd5b505050506040513d602081101561317157600080fd5b5051905067016345785d8a00008111156131e5577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180615f9f6021913960400191505060405180910390a160689c505050505050505050505050506111fa565b60005b898110156134565767016345785d8a00006001828154811061320657fe5b9060005260206000209060040201600301541061338c576001818154811061322a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061325b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061329057fe5b906000526020600020906004020160030154816132a957fe5b06600183815481106132b757fe5b9060005260206000209060040201600301540390506132df838261464f90919063ffffffff16565b898e815181106132eb57fe5b6020026020010181815250506001828154811061330457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e8151811061333557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061336257fe5b602090810291909101015261337d868263ffffffff61469116565b6001909d019c955061344e9050565b60006001828154811061339b57fe5b906000526020600020906004020160030154111561344e57600181815481106133c057fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c815181106133f157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061341e57fe5b906000526020600020906004020160030154838c8151811061343c57fe5b60209081029190910101526001909a01995b6001016131e8565b5060008415613894576110046001600160a01b0316636e056520868b8b8a60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156134e85781810151838201526020016134d0565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561352757818101518382015260200161350f565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561356657818101518382015260200161354e565b505050509050019750505050505050506020604051808303818588803b15801561358f57600080fd5b505af1935050505080156135b557506040513d60208110156135b057600080fd5b505160015b6137f0576040516000815260443d10156135d15750600061366c565b60046000803e60005160e01c6308c379a081146135f257600091505061366c565b60043d036004833e81513d60248201116001600160401b038211171561361d5760009250505061366c565b80830180516001600160401b0381111561363e57600094505050505061366c565b8060208301013d860181111561365c5760009550505050505061366c565b601f01601f191660405250925050505b80613677575061371b565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156136db5781810151838201526020016136c3565b50505050905090810190601f1680156137085780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506137eb565b3d808015613745576040519150601f19603f3d011682016040523d82523d6000602084013e61374a565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156137af578181015183820152602001613797565b50505050905090810190601f1680156137dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b613894565b801561382e576040805187815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1613892565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905187917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015613a4a5760005b8751811015613a485760008882815181106138b457fe5b602002602001015190506000600182815481106138cd57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106138fe57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156139ba576001828154811061393f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061398e57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2613a3e565b600182815481106139c757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613a1657fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161389d565b505b835115613b945760005b8451811015613b92576000858281518110613a6b57fe5b60200260200101516001600160a01b03166108fc868481518110613a8b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613b2157858281518110613ac157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613aff57fe5b60200260200101516040518082815260200191505060405180910390a2613b89565b858281518110613b2d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613b6b57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101613a54565b505b4715613bfd576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015613bfb573d6000803e3d6000fd5b505b600060038190556005558c5115613c1757613c178d614d7d565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c5457600080fd5b505af1158015613c68573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009e9d5050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580613cfb5750600180820381548110613cdb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613d415782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009150506111fa565b600154600554600019820111801590613d975784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600093505050506111fa565b600580546001908101909155805481906000198601908110613db557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b60008060018381548110613e3157fe5b90600052602060002090600402016003015490506000600180805490500390506001613e5b61233b565b5111613e9057600060018581548110613e7057fe5b9060005260206000209060040201600301819055506000925050506112aa565b6040805183815290516001600160a01b038716917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561408d5760018160010181548110613f0857fe5b906000526020600020906004020160018281548110613f2357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b805490918301908110613fe457fe5b9060005260206000209060160201600b8281548110613fff57fe5b600091825260209091208254601690920201908155600180830154908201805460ff191660ff909216151591909117905561404260028083019084016014615aab565b5090505080600101600460006001848154811061405b57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101613eea565b50600180548061409957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806140ec57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061411e6002830182615ad6565b50509055600081838161412d57fe5b04905080156141915760015460005b8181101561418e57826001828154811061415257fe5b906000526020600020906004020160030154016001828154811061417257fe5b600091825260209091206003600490920201015560010161413c565b50505b50600195945050505050565b60005b828110156142835760408051602080820189905287840182840152825180830384018152606090920190925280519101206000908390816141dd57fe5b0690508085018287011461427a57600088838801815181106141fb57fe5b60200260200101519050888287018151811061421357fe5b6020026020010151898489018151811061422957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080898388018151811061425857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b506001016141a0565b50505050505050565b600980546001908101909155600b8054839081106142a657fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106142dc57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020018082805190602001908083835b602083106143595780518252601f19909201916020918201910161433a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106143c75780518252601f1990920191602091820191016143a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526004602052604081205480614439575060001990506111fa565b60018103905060006001828154811061444e57fe5b906000526020600020906004020160030154905060006001838154811061447157fe5b906000526020600020906004020160030181905550600060018080549050039050846001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a2806144e3578293505050506111fa565b60008183816144ee57fe5b04905080156145aa5760005b8481101561454c57816001828154811061451057fe5b906000526020600020906004020160030154016001828154811061453057fe5b60009182526020909120600360049092020101556001016144fa565b50600180549085015b818110156145a757826001828154811061456b57fe5b906000526020600020906004020160030154016001828154811061458b57fe5b6000918252602090912060036004909202010155600101614555565b50505b5091949350505050565b6000826145c3575060006112aa565b828202828482816145d057fe5b04146111155760405162461bcd60e51b8152600401808060200182810382526021815260200180615f2b6021913960400191505060405180910390fd5b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615370565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615412565b600082820183811015611115576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6146f3615ae5565b506040805180820190915281518152602082810190820152919050565b614718615a56565b6147218261546c565b61472a57600080fd5b600061473983602001516154a6565b60208085015160408051808201909152868152920190820152915050919050565b6000614764615ae5565b505080518051602091820151919092015191011190565b614783615ae5565b61478c8261475a565b61479557600080fd5b602082015160006147a582615509565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906147de57508151602110155b6147e757600080fd5b60006147f683602001516154a6565b90508083600001511015614851576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561487757826020036101000a820491505b50949350505050565b606061488b8261546c565b61489457600080fd5b600061489f8361563c565b90506060816040519080825280602002602001820160405280156148dd57816020015b6148ca615ae5565b8152602001906001900390816148c25790505b50905060006148ef85602001516154a6565b60208601510190506000805b848110156149465761490c83615509565b915060405180604001604052808381526020018481525084828151811061492f57fe5b6020908102919091010152918101916001016148fb565b509195945050505050565b614959615a76565b6000614963615a76565b61496b615a56565b61497485614710565b90506000805b6149838361475a565b15612e2b57806149ae5761499e6149998461477b565b615698565b6001600160a01b03168452614a26565b80600114156149d6576149c36149998461477b565b6001600160a01b03166020850152614a26565b80600214156149fe576149eb6149998461477b565b6001600160a01b03166040850152614a26565b8060031415612e1e57614a13612d308461477b565b6001600160401b03166060850152600191505b60010161497a565b60606112aa614a3c836156b2565b615798565b6060815160001415614a6257506040805160008152602081019091526111fa565b606082600081518110614a7157fe5b602002602001015190506000600190505b8351811015614ab257614aa882858381518110614a9b57fe5b60200260200101516157ea565b9150600101614a82565b50611115614ac5825160c060ff16615867565b826157ea565b60006060602983511115614afd576000604051806060016040528060298152602001615df46029913991509150612e34565b60005b8351811015614b935760005b81811015614b8a57848181518110614b2057fe5b6020026020010151600001516001600160a01b0316858381518110614b4157fe5b6020026020010151600001516001600160a01b03161415614b825760006040518060600160405280602b8152602001615e48602b9139935093505050612e34565b600101614b0c565b50600101614b00565b505060408051602081019091526000815260019150915091565b6060600080808080614bbd612429565b6001549091505b8015614ccb57600181039250600b8381548110614bdd57fe5b600091825260209091206001601690920201015460ff16614bfd57614cc2565b60018381548110614c0a57fe5b60009182526020909120600490910201546001600160a01b03169450614c31858484612aec565b9350831580614c44575060018851038610155b15614c4e57614cc2565b60005b8851811015614cc057856001600160a01b0316898281518110614c7057fe5b6020026020010151600001516001600160a01b03161415614cb8576001898281518110614c9957fe5b6020908102919091010151901515608090910152600190960195614cc0565b600101614c51565b505b60001901614bc4565b5084875103604051908082528060200260200182016040528015614d0957816020015b614cf6615a76565b815260200190600190039081614cee5790505b5095506000915060005b8751811015614d7257878181518110614d2857fe5b602002602001015160800151614d6a57878181518110614d4457fe5b6020026020010151878481518110614d5857fe5b60209081029190910101526001909201915b600101614d13565b505050505050919050565b600154815160005b82811015614e9a576001614d97615a76565b60018381548110614da457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614e6e57868181518110614e3457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614e665760009250614e6e565b600101614e20565b508115614e905780516001600160a01b03166000908152600460205260408120555b5050600101614d85565b5080821115614f4b57805b82811015614f49576001805480614eb857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480614f0b57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590614f3d6002830182615ad6565b50509055600101614ea5565b505b6000818310614f5a5781614f5c565b825b905060005b818110156151565761500e858281518110614f7857fe5b602002602001015160018381548110614f8d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261595f565b61512957806001016004600087848151811061502657fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061506257fe5b60200260200101516001828154811061507757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561514e565b60006001828154811061513857fe5b9060005260206000209060040201600301819055505b600101614f61565b50828211156152fb576151676159e0565b835b838110156152f857600186828151811061517f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020615fc08339815191528101918255918501516000805160206160d08339815191528301805491151560ff19909216919091179055918401518492916152b491600080516020616006833981519152909101906014615a04565b50505080600101600460008884815181106152cb57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615169565b50505b6000600981905560015493505b83811015615369576000600b828154811061531f57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061535057fe5b6000918252602090912060169091020155600101615308565b5050505050565b600081836153fc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153c15781810151838201526020016153a9565b50505050905090810190601f1680156153ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161540857fe5b0495945050505050565b600081848411156154645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156153c15781810151838201526020016153a9565b505050900390565b805160009061547d575060006111fa565b6020820151805160001a9060c082101561549c576000925050506111fa565b5060019392505050565b8051600090811a60808110156154c05760009150506111fa565b60b88110806154db575060c081108015906154db575060f881105b156154ea5760019150506111fa565b60c08110156154fe5760b5190190506111fa565b60f5190190506111fa565b80516000908190811a60808110156155245760019150615635565b60b881101561553957607e1981019150615635565b60c08110156155b357600060b78203600186019550806020036101000a8651049150600181018201935050808310156155ad576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615635565b60f88110156155c85760be1981019150615635565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615633576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061564d575060006111fa565b6000809050600061566184602001516154a6565b602085015185519181019250015b8082101561568f5761568082615509565b6001909301929091019061566f565b50909392505050565b80516000906015146156a957600080fd5b6112aa826147c9565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166156f65750601861571a565b6fffffffffffffffffffffffffffffffff1984166157165750601061571a565b5060005b60208110156157505781818151811061572f57fe5b01602001516001600160f81b0319161561574857615750565b60010161571a565b60008160200390506060816040519080825280601f01601f191660200182016040528015615785576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156157ca5750607f60f81b826000815181106157b857fe5b01602001516001600160f81b03191611155b156157d65750806111fa565b6112aa6157e88351608060ff16615867565b835b6060806040519050835180825260208201818101602087015b8183101561581b578051835260209283019201615803565b50855184518101855292509050808201602086015b81831015615848578051835260209283019201615830565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106158b7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116159115782840160f81b816000815181106158f357fe5b60200101906001600160f81b031916908160001a90535090506112aa565b606061591c856156b2565b90508381510160370160f81b8260008151811061593557fe5b60200101906001600160f81b031916908160001a90535061595682826157ea565b95945050505050565b805182516000916001600160a01b039182169116148015615999575081602001516001600160a01b031683602001516001600160a01b0316145b80156159be575081604001516001600160a01b031683604001516001600160a01b0316145b80156111155750506060908101519101516001600160401b0390811691161490565b60408051606081018252600080825260208201529081016159ff615aff565b905290565b8260148101928215615a32579160200282015b82811115615a32578251825591602001919060010190615a17565b50612464929150615b1e565b60408051808201909152600081526060602082015290565b6040518060400160405280615a69615ae5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8260148101928215615a32579182015b82811115615a32578254825591600101919060010190615abb565b5061140c906014810190615b1e565b604051806040016040528060008152602001600081525090565b6040518061028001604052806014906020820280368337509192915050565b61152891905b808211156124645760008155600101615b2456fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a784100000006c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d69736d617463686c656e677468206f66206d61784e756d4f66576f726b696e6743616e64696461746573206d69736d617463686c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736d61746368746865206d61784e756d4f664d61696e7461696e696e67206d757374206265206c657373207468616e206e756d4f6643616e696e61746573746865206e756d4f66436162696e657473206d7573742062652067726561746572207468616e2030746865206e756d4f66436162696e657473206d757374206265206c657373207468616e204d41585f4e554d5f4f465f56414c494441544f5253746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e6765746865206d61784e756d4f66576f726b696e6743616e64696461746573206d757374206265206e6f742067726561746572207468616e206d61784e756d4f6643616e6469646174657363616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616e63656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736d61746368666565206973206c6172676572207468616e2044555354595f494e434f4d494e470175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db96c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463680175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb6661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d61696e7461696e536c6173685363616c65206d7573742062652067726561746572207468616e20300175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220c0dc878fd08b0a4bf6659ead68604aefff201930a1931eca7eb88ebdf3b0a03e64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/euler/mainnet/SlashContract b/core/systemcontracts/euler/mainnet/SlashContract new file mode 100644 index 0000000000..9c1d14d8d7 --- /dev/null +++ b/core/systemcontracts/euler/mainnet/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061023d5760003560e01c80638256ace61161013b578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a1461071d578063f9a2bbc714610725578063fc3e59081461072d578063fc4333cd14610735578063fd6a68791461073d5761023d565b8063c80d4b8f14610667578063c81b16621461066f578063c8509d8114610677578063c96be4cb146106ef578063dc927faf146107155761023d565b8063a1a11bf5116100ff578063a1a11bf514610575578063a78abc161461057d578063ab51bb9614610599578063ac0af629146105a1578063ac431751146105a95761023d565b80638256ace6146104dd578063831d65d1146104e557806396713da91461055d5780639bc8e4f2146105655780639dc092621461056d5761023d565b80634bf6c882116101c95780636e47b4821161018d5780636e47b482146104b557806370fd5bad146104bd57806375d47a0a146104c55780637912a65d146104cd5780637942fd05146104d55761023d565b80634bf6c8821461046d57806351e8067214610475578063567a372d1461047d5780635bfb49901461048557806362b72cf5146104ad5761023d565b806337c8dab91161021057806337c8dab9146103cf578063389f4f711461040e5780633dffc3871461042857806343756e5c14610446578063493279b11461044e5761023d565b80630bee7a67146102425780631182b8751461026357806323bac5a21461035057806335aa2e4414610396575b600080fd5b61024a610745565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603604081101561027957600080fd5b60ff8235169190810190604081016020820135600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460018302840111600160201b831117156102d057600080fd5b50909250905061074a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103766004803603602081101561036657600080fd5b50356001600160a01b031661081e565b604080519384526020840192909252151582820152519081900360600190f35b6103b3600480360360208110156103ac57600080fd5b5035610841565b604080516001600160a01b039092168252519081900360200190f35b6103f5600480360360208110156103e557600080fd5b50356001600160a01b0316610868565b6040805192835260208301919091528051918290030190f35b6104166108bf565b60408051918252519081900360200190f35b6104306108c5565b6040805160ff9092168252519081900360200190f35b6103b36108ca565b6104566108d0565b6040805161ffff9092168252519081900360200190f35b6104306108d5565b6103b36108da565b6104166108e0565b6104ab6004803603602081101561049b57600080fd5b50356001600160a01b03166108e6565b005b610416610a47565b6103b3610a4d565b610430610a53565b6103b3610a58565b610416610a5e565b610430610a63565b6103f5610a68565b6104ab600480360360408110156104fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561051f57600080fd5b82018360208201111561053157600080fd5b803590602001918460018302840111600160201b8311171561055257600080fd5b509092509050610a72565b610430610bcc565b610416610bd1565b6103b3610bdc565b6103b3610be2565b610585610be8565b604080519115158252519081900360200190f35b61024a610bf1565b610416610bf6565b6104ab600480360360408110156105bf57600080fd5b810190602081018135600160201b8111156105d957600080fd5b8201836020820111156105eb57600080fd5b803590602001918460018302840111600160201b8311171561060c57600080fd5b919390929091602081019035600160201b81111561062957600080fd5b82018360208201111561063b57600080fd5b803590602001918460018302840111600160201b8311171561065c57600080fd5b509092509050610bfb565b610416610fe9565b6103b3610fee565b6104ab6004803603604081101561068d57600080fd5b60ff8235169190810190604081016020820135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b509092509050610ff4565b6104ab6004803603602081101561070557600080fd5b50356001600160a01b03166110a7565b6103b361154a565b6104ab611550565b6103b36115c1565b6104306115c7565b6104ab6115cc565b6103b3611a57565b606481565b6060336120001461078c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff166107d1576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061084e57fe5b6000918252602090912001546001600160a01b0316905081565b600080610873612372565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146109265760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff1661096b576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b61200063f7a251d7600b61097e84611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a2c57600080fd5b505af1158015610a40573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ab25760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16610af7576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b610aff612395565b6000610b4084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b2f92505050565b915091508015610b8a5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a40565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c40576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b3361100714610c805760405162461bcd60e51b815260040180806020018281038252602e815260200180612439602e913960400191505060405180910390fd5b610ceb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611baf9050565b15610dc45760208114610d2f5760405162461bcd60e51b81526004018080602001828103825260278152602001806123e26027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d6d91858580838501838280828437600092019190915250611c9792505050565b905060018110158015610d81575060055481105b610dbc5760405162461bcd60e51b81526004018080602001828103825260258152602001806124896025913960400191505060405180910390fd5b600455610f57565b610e2a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611baf9050565b15610f1a5760208114610e6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806124676022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610eac91858580838501838280828437600092019190915250611c9792505050565b90506103e88111158015610ec1575060045481115b610f12576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f57565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16611079576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146110e55760405162461bcd60e51b815260040180806020018281038252602d8152602001806124dd602d913960400191505060405180910390fd5b60005460ff1661112a576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6003544311611180576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111ca576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b505161124757611543565b61124f612372565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112aa576020810180516001019052611303565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161131557fe5b0661146757600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561136857600080fd5b505af115801561137c573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b61139c85611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113fc5781810151838201526020016113e4565b50505050905090810190601f1680156114295780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506114dd565b60045481602001518161147657fe5b066114dd57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156115a8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461160c5760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff16611651576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b60015461165d57611a55565b600154600090600019015b808211611a29576000805b8284101561178c57611683612372565b600260006001878154811061169457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156117765760046005548161170157fe5b0481602001510381602001818152505080600260006001888154811061172357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611780565b600192505061178c565b50600190930192611673565b8284116119235761179b612372565b60026000600186815481106117ac57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118945760046005548161181957fe5b0481602001510381602001818152505080600260006001878154811061183b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506119239050565b60026000600186815481106118a557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806118e957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119165750611923565b506000199092019161178c565b81801561192d5750805b15611a0c57600260006001868154811061194357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061198a57fe5b600091825260209091200154600180546001600160a01b0390921691869081106119b057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806119e957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611a18575050611a29565b505060019091019060001901611668565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611a78579050509050611aa1836001600160a01b0316611c9c565b81600081518110611aae57fe5b6020026020010181905250611ac243611cbf565b81600181518110611acf57fe5b6020908102919091010152611ae46038611cbf565b81600281518110611af157fe5b6020026020010181905250611b0542611cbf565b81600381518110611b1257fe5b6020026020010181905250611b2681611cd2565b9150505b919050565b611b37612395565b6000611b41612395565b611b496123a7565b611b5a611b5586611d5c565b611d81565b90506000805b611b6983611dcb565b15611ba25780611b9557611b84611b7f84611dec565b611e3a565b63ffffffff16845260019150611b9a565b611ba2565b600101611b60565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611be45780518252601f199092019160209182019101611bc5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611c525780518252601f199092019160209182019101611c33565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611b2681611ef1565b6060611c91611ccd83611f47565b611ef1565b6060815160001415611cf35750604080516000815260208101909152611b2a565b606082600081518110611d0257fe5b602002602001015190506000600190505b8351811015611d4357611d3982858381518110611d2c57fe5b602002602001015161202d565b9150600101611d13565b50611b26611d56825160c060ff166120aa565b8261202d565b611d646123c7565b506040805180820190915281518152602082810190820152919050565b611d896123a7565b611d92826121a2565b611d9b57600080fd5b6000611daa83602001516121dc565b60208085015160408051808201909152868152920190820152915050919050565b6000611dd56123c7565b505080518051602091820151919092015191011190565b611df46123c7565b611dfd82611dcb565b611e0657600080fd5b60208201516000611e168261223f565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611e4f57508151602110155b611e5857600080fd5b6000611e6783602001516121dc565b90508083600001511015611ec2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ee857826020036101000a820491505b50949350505050565b606081516001148015611f235750607f60f81b82600081518110611f1157fe5b01602001516001600160f81b03191611155b15611f2f575080611b2a565b611c91611f418351608060ff166120aa565b8361202d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f8b57506018611faf565b6fffffffffffffffffffffffffffffffff198416611fab57506010611faf565b5060005b6020811015611fe557818181518110611fc457fe5b01602001516001600160f81b03191615611fdd57611fe5565b600101611faf565b60008160200390506060816040519080825280601f01601f19166020018201604052801561201a576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561205e578051835260209283019201612046565b50855184518101855292509050808201602086015b8183101561208b578051835260209283019201612073565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106120fa576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116121545782840160f81b8160008151811061213657fe5b60200101906001600160f81b031916908160001a9053509050611c91565b606061215f85611f47565b90508381510160370160f81b8260008151811061217857fe5b60200101906001600160f81b031916908160001a905350612199828261202d565b95945050505050565b80516000906121b357506000611b2a565b6020820151805160001a9060c08210156121d257600092505050611b2a565b5060019392505050565b8051600090811a60808110156121f6576000915050611b2a565b60b8811080612211575060c08110801590612211575060f881105b15612220576001915050611b2a565b60c08110156122345760b519019050611b2a565b60f519019050611b2a565b80516000908190811a608081101561225a576001915061236b565b60b881101561226f57607e198101915061236b565b60c08110156122e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156122e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061236b565b60f88110156122fe5760be198101915061236b565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612369576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806123ba6123c7565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a264697066735822122018b8714d9e81a204e6cb56a28d2122ac3178937ed053b34fef2460106855598d64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/euler/mainnet/ValidatorContract b/core/systemcontracts/euler/mainnet/ValidatorContract new file mode 100644 index 0000000000..58c71330c7 --- /dev/null +++ b/core/systemcontracts/euler/mainnet/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106104055760003560e01c80638d19a41011610213578063c81b166211610123578063eb57e202116100ab578063f9a2bbc71161007a578063f9a2bbc714610d55578063fc3e590814610d6a578063fccc281314610d7f578063fd4ad81f14610d94578063fd6a687914610dd757610405565b8063eb57e20214610cd2578063eda5868c14610d05578063f340fa0114610d1a578063f92eb86b14610d4057610405565b8063daacdb66116100f2578063daacdb6614610c69578063dc927faf14610c7e578063e086c7b114610c93578063e1c7392a14610ca8578063e40716a114610cbd57610405565b8063c81b166214610c2a578063c8509d8114610939578063d68fb56a14610c3f578063d86222d514610c5457610405565b8063a78abc16116101a6578063ad3c9da611610175578063ad3c9da614610bb8578063b7ab4db514610beb578063b8cf4ef114610c00578063bf9f49951461065f578063c6d3394514610c1557610405565b8063a78abc1614610aae578063aaf5eb6814610ac3578063ab51bb9614610ad8578063ac43175114610aed57610405565b80639fe0f816116101e25780639fe0f81614610a5a578063a0dc275814610a6f578063a1a11bf514610a84578063a5422d5c14610a9957610405565b80638d19a410146109e85780639369d7de14610a1b57806396713da914610a305780639dc0926214610a4557610405565b80635192c82c1161031957806375d47a0a116102a157806381650b621161027057806381650b6214610924578063831d65d114610939578063853230aa146108e557806386249882146109be5780638b5ad0c9146109d357610405565b806375d47a0a146108d057806378dfed4a146108e55780637942fd05146108fa5780637a84ca2a1461090f57610405565b80635667515a116102e85780635667515a146108065780635d77156c1461081b5780636969a25c146108305780636e47b482146108a657806370fd5bad146108bb57610405565b80635192c82c1461077657806351e806721461078b57806355614fcc146107a0578063565c56b3146107d357610405565b80633365af3a1161039c57806343756e5c1161036b57806343756e5c1461068a57806345cf9daf146106bb578063493279b1146106d05780634bf6c882146106fc5780634df6e0c31461071157610405565b80633365af3a146105ed57806335409f7f146106175780633de0f0d81461064a5780633dffc3871461065f57610405565b8063152ad3b8116103d8578063152ad3b8146105705780631ff1806914610599578063219f22d5146105ae578063321d398a146105c357610405565b806304c4fec61461040a57806307a56847146104215780630bee7a67146104485780631182b87514610476575b600080fd5b34801561041657600080fd5b5061041f610dec565b005b34801561042d57600080fd5b50610436610e7f565b60408051918252519081900360200190f35b34801561045457600080fd5b5061045d610e85565b6040805163ffffffff9092168252519081900360200190f35b34801561048257600080fd5b506104fb6004803603604081101561049957600080fd5b60ff8235169190810190604081016020820135600160201b8111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111600160201b831117156104f057600080fd5b509092509050610e8a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053557818101518382015260200161051d565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b5061058561111c565b604080519115158252519081900360200190f35b3480156105a557600080fd5b50610436611125565b3480156105ba57600080fd5b5061045d61112b565b3480156105cf57600080fd5b50610585600480360360208110156105e657600080fd5b5035611130565b3480156105f957600080fd5b506105856004803603602081101561061057600080fd5b50356111ff565b34801561062357600080fd5b5061041f6004803603602081101561063a57600080fd5b50356001600160a01b03166112b0565b34801561065657600080fd5b5061043661140f565b34801561066b57600080fd5b50610674611415565b6040805160ff9092168252519081900360200190f35b34801561069657600080fd5b5061069f61141a565b604080516001600160a01b039092168252519081900360200190f35b3480156106c757600080fd5b50610436611420565b3480156106dc57600080fd5b506106e5611426565b6040805161ffff9092168252519081900360200190f35b34801561070857600080fd5b5061067461142b565b34801561071d57600080fd5b50610726611430565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561076257818101518382015260200161074a565b505050509050019250505060405180910390f35b34801561078257600080fd5b5061043661152b565b34801561079757600080fd5b5061069f611531565b3480156107ac57600080fd5b50610585600480360360208110156107c357600080fd5b50356001600160a01b0316611537565b3480156107df57600080fd5b50610436600480360360208110156107f657600080fd5b50356001600160a01b031661156c565b34801561081257600080fd5b506106746115bd565b34801561082757600080fd5b5061045d6115c2565b34801561083c57600080fd5b5061085a6004803603602081101561085357600080fd5b50356115c7565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156108b257600080fd5b5061069f61162b565b3480156108c757600080fd5b50610674611631565b3480156108dc57600080fd5b5061069f611636565b3480156108f157600080fd5b5061043661163c565b34801561090657600080fd5b50610674611642565b34801561091b57600080fd5b50610436611647565b34801561093057600080fd5b5061045d61164d565b34801561094557600080fd5b5061041f6004803603604081101561095c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460018302840111600160201b831117156109b357600080fd5b509092509050611652565b3480156109ca57600080fd5b50610436611705565b3480156109df57600080fd5b5061043661170b565b3480156109f457600080fd5b5061043660048036036020811015610a0b57600080fd5b50356001600160a01b0316611711565b348015610a2757600080fd5b5061041f611786565b348015610a3c57600080fd5b506106746118a0565b348015610a5157600080fd5b5061069f6118a5565b348015610a6657600080fd5b506104366118ab565b348015610a7b57600080fd5b506104366118b0565b348015610a9057600080fd5b5061069f6118b5565b348015610aa557600080fd5b506104fb6118bb565b348015610aba57600080fd5b506105856118da565b348015610acf57600080fd5b506104366118e3565b348015610ae457600080fd5b5061045d6115bd565b348015610af957600080fd5b5061041f60048036036040811015610b1057600080fd5b810190602081018135600160201b811115610b2a57600080fd5b820183602082011115610b3c57600080fd5b803590602001918460018302840111600160201b83111715610b5d57600080fd5b919390929091602081019035600160201b811115610b7a57600080fd5b820183602082011115610b8c57600080fd5b803590602001918460018302840111600160201b83111715610bad57600080fd5b5090925090506118ec565b348015610bc457600080fd5b5061043660048036036020811015610bdb57600080fd5b50356001600160a01b0316612329565b348015610bf757600080fd5b5061072661233b565b348015610c0c57600080fd5b5061043661241e565b348015610c2157600080fd5b50610436611631565b348015610c3657600080fd5b5061069f612423565b348015610c4b57600080fd5b50610436612429565b348015610c6057600080fd5b50610436612468565b348015610c7557600080fd5b50610436612474565b348015610c8a57600080fd5b5061069f61247a565b348015610c9f57600080fd5b50610436612480565b348015610cb457600080fd5b5061041f612485565b348015610cc957600080fd5b50610436612688565b348015610cde57600080fd5b5061041f60048036036020811015610cf557600080fd5b50356001600160a01b031661268e565b348015610d1157600080fd5b5061045d61279c565b61041f60048036036020811015610d3057600080fd5b50356001600160a01b03166127a1565b348015610d4c57600080fd5b50610436612aa6565b348015610d6157600080fd5b5061069f612aac565b348015610d7657600080fd5b506106746118ab565b348015610d8b57600080fd5b5061069f612ab2565b348015610da057600080fd5b50610dbe60048036036020811015610db757600080fd5b5035612ab8565b6040805192835290151560208301528051918290030190f35b348015610de357600080fd5b5061069f612ae6565b6000610df733611711565b9050600b8181548110610e0657fe5b600091825260209091206001601690920201015460ff16610e63576040805162461bcd60e51b81526020600482015260126024820152716e6f7420696e206d61696e74656e616e636560701b604482015290519081900360640190fd5b6000610e6d612429565b9050610e7a338383612aec565b505050565b60095481565b606481565b60005460609060ff16610ee0576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610f205760405162461bcd60e51b815260040180806020018281038252602f81526020018061648b602f913960400191505060405180910390fd5b600b54610fc557610f2f6159e0565b60015460005b81811015610fc157600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff191691151591909117905560408501518592610fb391600080516020615e5b833981519152909101906014615a04565b505050806001019050610f35565b5050505b610fcd615a3e565b600061100e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce092505050565b915091508061102a576110216064612e39565b92505050611115565b815160009060ff1661104a576110438360200151612e9a565b90506110e1565b825160ff16600114156110dd578260200151516001146110b7577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180615d5b6025913960400191505060405180910390a15060676110d8565b61104383602001516000815181106110cb57fe5b6020026020010151613caa565b6110e1565b5060655b63ffffffff811661110657505060408051600081526020810190915291506111159050565b61110f81612e39565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b6001546000908210611144575060006111fa565b60006001600160a01b03166001838154811061115c57fe5b60009182526020909120600490910201546001600160a01b0316148061118c5750600854158061118c5750600a54155b8061119b575060085460095410155b806111ac57506111aa826111ff565b155b806111d557506000600b83815481106111c157fe5b906000526020600020906016020160000154115b806111e9575060016111e561233b565b5111155b156111f6575060006111fa565b5060015b919050565b6001546000908210611213575060006111fa565b600b548210611250576001828154811061122957fe5b9060005260206000209060040201600201601c9054906101000a900460ff161590506111fa565b6001828154811061125d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156112aa5750600b828154811061129157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146112f05760405162461bcd60e51b81526004018080602001828103825260298152602001806165346029913960400191505060405180910390fd5b600b54611395576112ff6159e0565b60015460005b8181101561139157600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261138391600080516020615e5b833981519152909101906014615a04565b505050806001019050611305565b5050505b6001600160a01b038116600090815260046020526040902054806113b9575061140c565b6001810390506000600b82815481106113ce57fe5b600091825260209091206001601690920201015460ff1690506113f18383613e21565b80156113fa5750805b15610e7a576009805460001901905550505b50565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c546060919080611443575060155b606061144d61233b565b905081815111611461579250611528915050565b82828251031015611473578181510392505b82156114a75760c8430461148e82828686036000888861419d565b6114a582828686038787038889898951030161419d565b505b6060826040519080825280602002602001820160405280156114d3578160200160208202803683370190505b50905060005b83811015611521578281815181106114ed57fe5b602002602001015182828151811061150157fe5b6001600160a01b03909216602092830291909101909101526001016114d9565b5093505050505b90565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061155f5760009150506111fa565b60001901611115816111ff565b6001600160a01b038116600090815260046020526040812054806115945760009150506111fa565b6001808203815481106115a357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600181815481106115d457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b600c5481565b606681565b33612000146116925760405162461bcd60e51b815260040180806020018281038252602f81526020018061648b602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600a5481565b6001600160a01b0381166000908152600460205260408120548061177c576040805162461bcd60e51b815260206004820152601760248201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604482015290519081900360640190fd5b6000190192915050565b600b5461182b576117956159e0565b60015460005b8181101561182757600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261181991600080516020615e5b833981519152909101906014615a04565b50505080600101905061179b565b5050505b6008546118385760036008555b600a54611845576002600a555b600061185033611711565b905061185b81611130565b6118965760405162461bcd60e51b8152600401808060200182810382526023815260200180615d386023913960400191505060405180910390fd5b61140c338261428c565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001615e9c6105ef913981565b60005460ff1681565b6402540be40081565b60005460ff1661193f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461197f5760405162461bcd60e51b815260040180806020018281038252602e815260200180615da1602e913960400191505060405180910390fd5b6119e984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506143249050565b15611ac45760208114611a2d5760405162461bcd60e51b8152600401808060200182810382526026815260200180615e356026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611a6b9185858083850183828082843760009201919091525061440b92505050565b905060648110158015611a815750620186a08111155b611abc5760405162461bcd60e51b8152600401808060200182810382526027815260200180615cc86027913960400191505060405180910390fd5b600255612297565b611b2484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506143249050565b15611c145760208114611b7e576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611bbc9185858083850183828082843760009201919091525061440b92505050565b9050612710811115611bff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615c72602b913960400191505060405180910390fd5b6006556007805460ff19166001179055612297565b611c7e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506143249050565b15611d565760208114611cc25760405162461bcd60e51b8152600401808060200182810382526026815260200180615b396026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611d009185858083850183828082843760009201919091525061440b92505050565b600c5490915080611d0f575060155b808210611d4d5760405162461bcd60e51b8152600401808060200182810382526038815260200180615bb06038913960400191505060405180910390fd5b50600855612297565b611dbf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506143249050565b15611e8a5760208114611e035760405162461bcd60e51b8152600401808060200182810382526025815260200180615b8b6025913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611e419185858083850183828082843760009201919091525061440b92505050565b905060008111611e825760405162461bcd60e51b815260040180806020018281038252602d8152602001806164e7602d913960400191505060405180910390fd5b600a55612297565b611efe84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506143249050565b15611fcb5760208114611f425760405162461bcd60e51b815260040180806020018281038252602c815260200180615b5f602c913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611f809185858083850183828082843760009201919091525061440b92505050565b9050600d54811115611fc35760405162461bcd60e51b8152600401808060200182810382526049815260200180615cef6049913960600191505060405180910390fd5b600e55612297565b61203484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506143249050565b156120d557602081146120785760405162461bcd60e51b8152600401808060200182810382526025815260200180615dcf6025913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916120b69185858083850183828082843760009201919091525061440b92505050565b600d819055600e549091508110156120cf57600d54600e555b50612297565b61213984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506143249050565b1561225a5760208114612193576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121d19185858083850183828082843760009201919091525061440b92505050565b9050600081116122125760405162461bcd60e51b8152600401808060200182810382526028815260200180615be86028913960400191505060405180910390fd5b60298111156122525760405162461bcd60e51b8152600401808060200182810382526039815260200180615c106039913960400191505060405180910390fd5b600c55612297565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561236a57612356816111ff565b15612362576001909101905b600101612345565b50606081604051908082528060200260200182016040528015612397578160200160208202803683370190505b5090506000915060005b83811015612416576123b2816111ff565b1561240e57600181815481106123c457fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106123ef57fe5b6001600160a01b03909216602092830291909101909101526001909201915b6001016123a1565b509250505090565b601581565b61100281565b600061243361233b565b519050600080600c541161244857601561244c565b600c545b90508082111561245a578091505b8161246457600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156124dd576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6124e5615a3e565b600061250b6040518061062001604052806105ef8152602001615e9c6105ef9139612ce0565b915091508061254b5760405162461bcd60e51b8152600401808060200182810382526021815260200180615e7b6021913960400191505060405180910390fd5b60005b8260200151518110156126705760018360200151828151811061256d57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061264357fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161254e565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146126ce5760405162461bcd60e51b81526004018080602001828103825260298152602001806165346029913960400191505060405180910390fd5b600b54612773576126dd6159e0565b60015460005b8181101561276f57600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261276191600080516020615e5b833981519152909101906014615a04565b5050508060010190506126e3565b5050505b600061277e82614410565b905061278981611130565b1561279857612798828261428c565b5050565b606581565b3341146127df5760405162461bcd60e51b815260040180806020018281038252602d8152602001806164ba602d913960400191505060405180910390fd5b60005460ff16612832576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b6000341161287f576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff16156128af57506006545b6000831180156128bf5750600081115b156129685760006128e86127106128dc868563ffffffff6145b416565b9063ffffffff61460d16565b905080156129665760405161dead9082156108fc029083906000818181858888f1935050505015801561291f573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1612963848263ffffffff61464f16565b93505b505b8115612a6057600060018084038154811061297f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156129ea576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2612a5a565b6003546129fd908563ffffffff61469116565b6003908155810154612a15908563ffffffff61469116565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50612aa0565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612ac557fe5b60009182526020909120601690910201805460019091015490915060ff1682565b61100481565b6000600a5460001480612afd575081155b80612b085750600954155b15612b1557506000611115565b600960008154809291906001900391905055506000612b62600a546128dc856128dc600b8981548110612b4457fe5b6000918252602090912060169091020154439063ffffffff61464f16565b90506000600b8581548110612b7357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612bd857600080fd5b505afa158015612bec573d6000803e3d6000fd5b505050506040513d6040811015612c0257600080fd5b508051602090910151600095509092509050808310612c9057612c258787613e21565b50604080516305bfb49960e41b81526001600160a01b0389166004820152905161100191635bfb499091602480830192600092919082900301818387803b158015612c6f57600080fd5b505af1158015612c83573d6000803e3d6000fd5b5050505060019350612ca2565b818310612ca257612ca087614410565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612ce8615a3e565b6000612cf2615a3e565b612cfa615a56565b612d0b612d06866146eb565b614710565b90506000805b612d1a8361475a565b15612e2b5780612d3f57612d35612d308461477b565b6147c9565b60ff168452612e23565b8060011415612e1e576060612d5b612d568561477b565b614880565b90508051604051908082528060200260200182016040528015612d9857816020015b612d85615a76565b815260200190600190039081612d7d5790505b50602086015260005b8151811015612e1357612db2615a76565b6000612dd0848481518110612dc357fe5b6020026020010151614951565b9150915080612ded57876000995099505050505050505050612e34565b8188602001518481518110612dfe57fe5b60209081029190910101525050600101612da1565b506001925050612e23565b612e2b565b600101612d11565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081612e53579050509050612e798363ffffffff16614a2e565b81600081518110612e8657fe5b602002602001018190525061111581614a41565b6000806060612ea884614acb565b9150915081612f55577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612f10578181015183820152602001612ef8565b50505050905090810190601f168015612f3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066925050506111fa565b50506060612f6283614bad565b6001549091506000908190815b81811015612fe55767016345785d8a000060018281548110612f8d57fe5b90600052602060002090600402016003015410612faf57600190930192612fdd565b600060018281548110612fbe57fe5b9060005260206000209060040201600301541115612fdd576001909201915b600101612f6f565b50606083604051908082528060200260200182016040528015613012578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613041578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613070578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561309f578160200160208202803683370190505b50905060006060876040519080825280602002602001820160405280156130d0578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156130ff578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561314757600080fd5b505afa15801561315b573d6000803e3d6000fd5b505050506040513d602081101561317157600080fd5b5051905067016345785d8a00008111156131e5577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180615df46021913960400191505060405180910390a160689c505050505050505050505050506111fa565b60005b898110156134565767016345785d8a00006001828154811061320657fe5b9060005260206000209060040201600301541061338c576001818154811061322a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061325b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061329057fe5b906000526020600020906004020160030154816132a957fe5b06600183815481106132b757fe5b9060005260206000209060040201600301540390506132df838261464f90919063ffffffff16565b898e815181106132eb57fe5b6020026020010181815250506001828154811061330457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e8151811061333557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061336257fe5b602090810291909101015261337d868263ffffffff61469116565b6001909d019c955061344e9050565b60006001828154811061339b57fe5b906000526020600020906004020160030154111561344e57600181815481106133c057fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c815181106133f157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061341e57fe5b906000526020600020906004020160030154838c8151811061343c57fe5b60209081029190910101526001909a01995b6001016131e8565b5060008415613894576110046001600160a01b0316636e056520868b8b8a60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156134e85781810151838201526020016134d0565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561352757818101518382015260200161350f565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561356657818101518382015260200161354e565b505050509050019750505050505050506020604051808303818588803b15801561358f57600080fd5b505af1935050505080156135b557506040513d60208110156135b057600080fd5b505160015b6137f0576040516000815260443d10156135d15750600061366c565b60046000803e60005160e01c6308c379a081146135f257600091505061366c565b60043d036004833e81513d60248201116001600160401b038211171561361d5760009250505061366c565b80830180516001600160401b0381111561363e57600094505050505061366c565b8060208301013d860181111561365c5760009550505050505061366c565b601f01601f191660405250925050505b80613677575061371b565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156136db5781810151838201526020016136c3565b50505050905090810190601f1680156137085780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506137eb565b3d808015613745576040519150601f19603f3d011682016040523d82523d6000602084013e61374a565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156137af578181015183820152602001613797565b50505050905090810190601f1680156137dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b613894565b801561382e576040805187815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1613892565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905187917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015613a4a5760005b8751811015613a485760008882815181106138b457fe5b602002602001015190506000600182815481106138cd57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106138fe57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156139ba576001828154811061393f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061398e57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2613a3e565b600182815481106139c757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613a1657fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161389d565b505b835115613b945760005b8451811015613b92576000858281518110613a6b57fe5b60200260200101516001600160a01b03166108fc868481518110613a8b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613b2157858281518110613ac157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613aff57fe5b60200260200101516040518082815260200191505060405180910390a2613b89565b858281518110613b2d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613b6b57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101613a54565b505b4715613bfd576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015613bfb573d6000803e3d6000fd5b505b600060038190556005558c5115613c1757613c178d614d7d565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c5457600080fd5b505af1158015613c68573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009e9d5050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580613cfb5750600180820381548110613cdb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613d415782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009150506111fa565b600154600554600019820111801590613d975784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600093505050506111fa565b600580546001908101909155805481906000198601908110613db557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b60008060018381548110613e3157fe5b90600052602060002090600402016003015490506000600180805490500390506001613e5b61233b565b5111613e9057600060018581548110613e7057fe5b9060005260206000209060040201600301819055506000925050506112aa565b6040805183815290516001600160a01b038716917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561408d5760018160010181548110613f0857fe5b906000526020600020906004020160018281548110613f2357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b805490918301908110613fe457fe5b9060005260206000209060160201600b8281548110613fff57fe5b600091825260209091208254601690920201908155600180830154908201805460ff191660ff909216151591909117905561404260028083019084016014615aab565b5090505080600101600460006001848154811061405b57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101613eea565b50600180548061409957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806140ec57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061411e6002830182615ad6565b50509055600081838161412d57fe5b04905080156141915760015460005b8181101561418e57826001828154811061415257fe5b906000526020600020906004020160030154016001828154811061417257fe5b600091825260209091206003600490920201015560010161413c565b50505b50600195945050505050565b60005b828110156142835760408051602080820189905287840182840152825180830384018152606090920190925280519101206000908390816141dd57fe5b0690508085018287011461427a57600088838801815181106141fb57fe5b60200260200101519050888287018151811061421357fe5b6020026020010151898489018151811061422957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080898388018151811061425857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b506001016141a0565b50505050505050565b600980546001908101909155600b8054839081106142a657fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106142dc57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020018082805190602001908083835b602083106143595780518252601f19909201916020918201910161433a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106143c75780518252601f1990920191602091820191016143a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526004602052604081205480614439575060001990506111fa565b60018103905060006001828154811061444e57fe5b906000526020600020906004020160030154905060006001838154811061447157fe5b906000526020600020906004020160030181905550600060018080549050039050846001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a2806144e3578293505050506111fa565b60008183816144ee57fe5b04905080156145aa5760005b8481101561454c57816001828154811061451057fe5b906000526020600020906004020160030154016001828154811061453057fe5b60009182526020909120600360049092020101556001016144fa565b50600180549085015b818110156145a757826001828154811061456b57fe5b906000526020600020906004020160030154016001828154811061458b57fe5b6000918252602090912060036004909202010155600101614555565b50505b5091949350505050565b6000826145c3575060006112aa565b828202828482816145d057fe5b04146111155760405162461bcd60e51b8152600401808060200182810382526021815260200180615d806021913960400191505060405180910390fd5b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615370565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615412565b600082820183811015611115576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6146f3615ae5565b506040805180820190915281518152602082810190820152919050565b614718615a56565b6147218261546c565b61472a57600080fd5b600061473983602001516154a6565b60208085015160408051808201909152868152920190820152915050919050565b6000614764615ae5565b505080518051602091820151919092015191011190565b614783615ae5565b61478c8261475a565b61479557600080fd5b602082015160006147a582615509565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906147de57508151602110155b6147e757600080fd5b60006147f683602001516154a6565b90508083600001511015614851576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561487757826020036101000a820491505b50949350505050565b606061488b8261546c565b61489457600080fd5b600061489f8361563c565b90506060816040519080825280602002602001820160405280156148dd57816020015b6148ca615ae5565b8152602001906001900390816148c25790505b50905060006148ef85602001516154a6565b60208601510190506000805b848110156149465761490c83615509565b915060405180604001604052808381526020018481525084828151811061492f57fe5b6020908102919091010152918101916001016148fb565b509195945050505050565b614959615a76565b6000614963615a76565b61496b615a56565b61497485614710565b90506000805b6149838361475a565b15612e2b57806149ae5761499e6149998461477b565b615698565b6001600160a01b03168452614a26565b80600114156149d6576149c36149998461477b565b6001600160a01b03166020850152614a26565b80600214156149fe576149eb6149998461477b565b6001600160a01b03166040850152614a26565b8060031415612e1e57614a13612d308461477b565b6001600160401b03166060850152600191505b60010161497a565b60606112aa614a3c836156b2565b615798565b6060815160001415614a6257506040805160008152602081019091526111fa565b606082600081518110614a7157fe5b602002602001015190506000600190505b8351811015614ab257614aa882858381518110614a9b57fe5b60200260200101516157ea565b9150600101614a82565b50611115614ac5825160c060ff16615867565b826157ea565b60006060602983511115614afd576000604051806060016040528060298152602001615c496029913991509150612e34565b60005b8351811015614b935760005b81811015614b8a57848181518110614b2057fe5b6020026020010151600001516001600160a01b0316858381518110614b4157fe5b6020026020010151600001516001600160a01b03161415614b825760006040518060600160405280602b8152602001615c9d602b9139935093505050612e34565b600101614b0c565b50600101614b00565b505060408051602081019091526000815260019150915091565b6060600080808080614bbd612429565b6001549091505b8015614ccb57600181039250600b8381548110614bdd57fe5b600091825260209091206001601690920201015460ff16614bfd57614cc2565b60018381548110614c0a57fe5b60009182526020909120600490910201546001600160a01b03169450614c31858484612aec565b9350831580614c44575060018851038610155b15614c4e57614cc2565b60005b8851811015614cc057856001600160a01b0316898281518110614c7057fe5b6020026020010151600001516001600160a01b03161415614cb8576001898281518110614c9957fe5b6020908102919091010151901515608090910152600190960195614cc0565b600101614c51565b505b60001901614bc4565b5084875103604051908082528060200260200182016040528015614d0957816020015b614cf6615a76565b815260200190600190039081614cee5790505b5095506000915060005b8751811015614d7257878181518110614d2857fe5b602002602001015160800151614d6a57878181518110614d4457fe5b6020026020010151878481518110614d5857fe5b60209081029190910101526001909201915b600101614d13565b505050505050919050565b600154815160005b82811015614e9a576001614d97615a76565b60018381548110614da457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614e6e57868181518110614e3457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614e665760009250614e6e565b600101614e20565b508115614e905780516001600160a01b03166000908152600460205260408120555b5050600101614d85565b5080821115614f4b57805b82811015614f49576001805480614eb857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480614f0b57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590614f3d6002830182615ad6565b50509055600101614ea5565b505b6000818310614f5a5781614f5c565b825b905060005b818110156151565761500e858281518110614f7857fe5b602002602001015160018381548110614f8d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261595f565b61512957806001016004600087848151811061502657fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061506257fe5b60200260200101516001828154811061507757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561514e565b60006001828154811061513857fe5b9060005260206000209060040201600301819055505b600101614f61565b50828211156152fb576151676159e0565b835b838110156152f857600186828151811061517f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020615e158339815191528101918255918501516000805160206165148339815191528301805491151560ff19909216919091179055918401518492916152b491600080516020615e5b833981519152909101906014615a04565b50505080600101600460008884815181106152cb57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615169565b50505b6000600981905560015493505b83811015615369576000600b828154811061531f57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061535057fe5b6000918252602090912060169091020155600101615308565b5050505050565b600081836153fc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153c15781810151838201526020016153a9565b50505050905090810190601f1680156153ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161540857fe5b0495945050505050565b600081848411156154645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156153c15781810151838201526020016153a9565b505050900390565b805160009061547d575060006111fa565b6020820151805160001a9060c082101561549c576000925050506111fa565b5060019392505050565b8051600090811a60808110156154c05760009150506111fa565b60b88110806154db575060c081108015906154db575060f881105b156154ea5760019150506111fa565b60c08110156154fe5760b5190190506111fa565b60f5190190506111fa565b80516000908190811a60808110156155245760019150615635565b60b881101561553957607e1981019150615635565b60c08110156155b357600060b78203600186019550806020036101000a8651049150600181018201935050808310156155ad576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615635565b60f88110156155c85760be1981019150615635565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615633576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061564d575060006111fa565b6000809050600061566184602001516154a6565b602085015185519181019250015b8082101561568f5761568082615509565b6001909301929091019061566f565b50909392505050565b80516000906015146156a957600080fd5b6112aa826147c9565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166156f65750601861571a565b6fffffffffffffffffffffffffffffffff1984166157165750601061571a565b5060005b60208110156157505781818151811061572f57fe5b01602001516001600160f81b0319161561574857615750565b60010161571a565b60008160200390506060816040519080825280601f01601f191660200182016040528015615785576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156157ca5750607f60f81b826000815181106157b857fe5b01602001516001600160f81b03191611155b156157d65750806111fa565b6112aa6157e88351608060ff16615867565b835b6060806040519050835180825260208201818101602087015b8183101561581b578051835260209283019201615803565b50855184518101855292509050808201602086015b81831015615848578051835260209283019201615830565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106158b7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116159115782840160f81b816000815181106158f357fe5b60200101906001600160f81b031916908160001a90535090506112aa565b606061591c856156b2565b90508381510160370160f81b8260008151811061593557fe5b60200101906001600160f81b031916908160001a90535061595682826157ea565b95945050505050565b805182516000916001600160a01b039182169116148015615999575081602001516001600160a01b031683602001516001600160a01b0316145b80156159be575081604001516001600160a01b031683604001516001600160a01b0316145b80156111155750506060908101519101516001600160401b0390811691161490565b60408051606081018252600080825260208201529081016159ff615aff565b905290565b8260148101928215615a32579160200282015b82811115615a32578251825591602001919060010190615a17565b50612464929150615b1e565b60408051808201909152600081526060602082015290565b6040518060400160405280615a69615ae5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8260148101928215615a32579182015b82811115615a32578254825591600101919060010190615abb565b5061140c906014810190615b1e565b604051806040016040528060008152602001600081525090565b6040518061028001604052806014906020820280368337509192915050565b61152891905b808211156124645760008155600101615b2456fe6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d69736d617463686c656e677468206f66206d61784e756d4f66576f726b696e6743616e64696461746573206d69736d617463686c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736d61746368746865206d61784e756d4f664d61696e7461696e696e67206d757374206265206c657373207468616e206e756d4f6643616e696e61746573746865206e756d4f66436162696e657473206d7573742062652067726561746572207468616e2030746865206e756d4f66436162696e657473206d757374206265206c657373207468616e204d41585f4e554d5f4f465f56414c494441544f5253746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e6765746865206d61784e756d4f66576f726b696e6743616e64696461746573206d757374206265206e6f742067726561746572207468616e206d61784e756d4f6643616e6469646174657363616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616e63656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736d61746368666565206973206c6172676572207468616e2044555354595f494e434f4d494e470175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db96c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463680175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb6661696c656420746f20706172736520696e69742076616c696461746f72536574f905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a2000746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d61696e7461696e536c6173685363616c65206d7573742062652067726561746572207468616e20300175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a264697066735822122091dd90b1dd27923c787e9f55bd1bebe31e8416465e6ce432022dfeb252e6701e64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/euler/types.go b/core/systemcontracts/euler/types.go new file mode 100644 index 0000000000..f9471b62e1 --- /dev/null +++ b/core/systemcontracts/euler/types.go @@ -0,0 +1,19 @@ +package euler + +import _ "embed" + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/ValidatorContract + MainnetValidatorContract string + //go:embed mainnet/SlashContract + MainnetSlashContract string +) + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/ValidatorContract + ChapelValidatorContract string + //go:embed chapel/SlashContract + ChapelSlashContract string +) diff --git a/core/systemcontracts/feynman/chapel/CrossChainContract b/core/systemcontracts/feynman/chapel/CrossChainContract new file mode 100644 index 0000000000..14af1f385f --- /dev/null +++ b/core/systemcontracts/feynman/chapel/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611442565b610432611447565b61043261144d565b610456611453565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611483565b6104566116e3565b61061561170b565b6108896004803603602081101561088257600080fd5b5035611710565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b61045661173f565b610432600480360360208110156108d257600080fd5b503560ff16611766565b610432611781565b6103f361170b565b6103f3611787565b61061561141d565b61045661178c565b610432611792565b6103f3611798565b61043261179d565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a3565b610456612a5d565b6103f3612a65565b610432612a6a565b610432612a70565b610470612a76565b610432612a7f565b610432612a85565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8b565b61069260048036036020811015610b0b57600080fd5b503560ff1661354f565b61045661356a565b61043261358e565b6105e6613594565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e8565b610761613808565b610456613827565b61043261382d565b610432613833565b6105e6613839565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf0565b6105e6613c0b565b6103f3613e2a565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e2f565b610432613f72565b6103f3613f78565b610432613f7d565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f83565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcb565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcb565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c8565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614146565b50905061141181838851614150565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150b57600080fd5b505afa15801561151f573d6000803e3d6000fd5b505050506040513d602081101561153557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157657600080fd5b505afa15801561158a573d6000803e3d6000fd5b505050506040513d60208110156115a057600080fd5b50519050806115ad575060155b6000821180156115bd5750808211155b6115fc576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906116699083614191565b905080156116db5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d602081101561185157600080fd5b50516118a4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611914576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198957600080fd5b505afa15801561199d573d6000803e3d6000fd5b505050506040513d60208110156119b357600080fd5b50516119f05760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5a576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac3576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b155760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b59576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b505160408051808201909152600381526269626360e81b6020820152611c968e8e613f83565b8585613fcb565b611ce5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3157600080fd5b505afa158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b505190508b8b600080806060611d7089614476565b935093509350935083611e32578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dea578181015183820152602001611dd2565b50505050905090810190601f168015611e175780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611eff578181015183820152602001611ee7565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4c57600080fd5b505af192505050801561203057506040513d6000823e601f3d908101601f191682016040526020811015611f7f57600080fd5b8101908080516040519392919084600160201b821115611f9e57600080fd5b908301906020820185811115611fb357600080fd5b8251600160201b811182820188101715611fcc57600080fd5b82525081516020918201929091019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b5060405250505060015b612342576040516000815260443d101561204c575060006120e7565b60046000803e60005160e01c6308c379a0811461206d5760009150506120e7565b60043d036004833e81513d60248201116001600160401b0382111715612098576000925050506120e7565b80830180516001600160401b038111156120b95760009450505050506120e7565b8060208301013d86018111156120d7576000955050505050506120e7565b601f01601f191660405250925050505b806120f25750612204565b60ff8716600090815260076020526040812054612129916001600160401b0390911690899061212490600290886113a7565b614526565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c45781810151838201526020016121ac565b50505050905090810190601f1680156121f15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233d565b3d80801561222e576040519150601f19603f3d011682016040523d82523d6000602084013e612233565b606091505b5060ff8716600090815260076020526040812054612266916001600160401b0390911690899061212490600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123015781810151838201526020016122e9565b50505050905090810190601f16801561232e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b1565b8051156123af5760ff871660009081526007602052604081205461237b916001600160401b0390911690899061212490600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612985565b60ff83166001141561265b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015612441578181015183820152602001612429565b50505050905090810190601f16801561246e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248e57600080fd5b505af192505050801561249f575060015b6123b1576040516000815260443d10156124bb57506000612556565b60046000803e60005160e01c6308c379a081146124dc576000915050612556565b60043d036004833e81513d60248201116001600160401b038211171561250757600092505050612556565b80830180516001600160401b03811115612528576000945050505050612556565b8060208301013d860181111561254657600095505050505050612556565b601f01601f191660405250925050505b8061256157506125c6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c45781810151838201526020016121ac565b3d8080156125f0576040519150601f19603f3d011682016040523d82523d6000602084013e6125f5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123015781810151838201526020016122e9565b60ff8316600214156129855760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e55781810151838201526020016126cd565b50505050905090810190601f1680156127125780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273257600080fd5b505af1925050508015612743575060015b612983576040516000815260443d101561275f575060006127fa565b60046000803e60005160e01c6308c379a081146127805760009150506127fa565b60043d036004833e81513d60248201116001600160401b03821117156127ab576000925050506127fa565b80830180516001600160401b038111156127cc5760009450505050506127fa565b8060208301013d86018111156127ea576000955050505050506127fa565b601f01601f191660405250925050505b8061280557506128ae565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286e578181015183820152602001612856565b50505050905090810190601f16801561289b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612983565b3d8080156128d8576040519150601f19603f3d011682016040523d82523d6000602084013e6128dd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561294757818101518382015260200161292f565b50505050905090810190601f1680156129745780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b505050506040513d6020811015612a4157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b6602e913960400191505060405180910390fd5b600b5460ff1615612b0f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c09050565b15612c1357604080516020601f8401819004810282018101909252828152600091612bbb918585808385018382808284376000920191909152506147a792505050565b90506127108111158015612bd05750600a8110155b612c0b5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a2e6032913960400191505060405180910390fd5b6001556134bd565b612c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c09050565b15612e0457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612cff5760405162461bcd60e51b815260040180806020018281038252605a8152602001806148cf605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1d816147ac565b612d6e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134bd565b612e7184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c09050565b15612fa257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef45760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e4604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f98576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134bd565b61300684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c09050565b1561313b576002811461304a5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495d602d913960400191505060405180910390fd5b600061308d600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156130a7575060648161ffff16105b6130f1576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61319e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c09050565b156132d157600281146131e25760405162461bcd60e51b815260040180806020018281038252602c81526020018061498a602c913960400191505060405180910390fd5b6000613225600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff1611801561323f575060648161ffff16105b613288576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61333c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c09050565b1561348057600281146133805760405162461bcd60e51b81526004018080602001828103825260348152602001806149296034913960400191505060405180910390fd5b60006133c3600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156133dd575060648161ffff16105b61342e576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135d9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d602081101561364657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368757600080fd5b505afa15801561369b573d6000803e3d6000fd5b505050506040513d60208110156136b157600080fd5b50519050806136be575060155b6000821180156136ce5750808211155b61370d576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613754576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a5907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e357600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613891576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c50576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d6020811015613cbd57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cfe57600080fd5b505afa158015613d12573d6000803e3d6000fd5b505050506040513d6020811015613d2857600080fd5b5051905080613d35575060155b600082118015613d455750808211155b613d84576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc8576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1a907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e3576137e36140c8565b601181565b60005460ff16613e74576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed15760405162461bcd60e51b815260040180806020018281038252603181526020018061489e6031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f369284928a9261212492909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fda575060006140bf565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614011576020820181803683370190505b509050600061401f826147b2565b60208089015182520190508660008061403789614146565b8086526020909501949092509050614050828583614150565b9283019261405d88614146565b8086526020909501949092509050614076828583614150565b9283018a81526020019261408987614146565b9092509050614099828583614150565b5083516020016140a76147b8565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614170578251825260209283019290910190601f1901614151565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425a57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428b575082816001015414155b1561435e576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614300916002840191906147d6565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614412565b60005b60028201548110156143e957336001600160a01b031682600201828154811061438657fe5b6000918252602090912001546001600160a01b031614156143e1576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614361565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446c576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614460600283018261483b565b50506001915050613fc5565b5060009392505050565b600080600060606021855110156144a657505060408051600080825260208201909252909250829150819061451f565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f1576020820181803683370190505b50905060006144ff82614146565b509050614511858260218d5103614150565b506001975091955093509150505b9193509193565b600b5460ff161561456a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145a9576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ea565b600380546001908101918290555410156145ea576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614680578181015183820152602001614668565b50505050905090810190601f1680156146ad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f55780518252601f1990920191602091820191016146d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147635780518252601f199092019160209182019101614744565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482b579160200282015b8281111561482b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f6565b5061483792915061485c565b5090565b50805460008255906000526020600020908101906148599190614883565b50565b61488091905b808211156148375780546001600160a01b0319168155600101614862565b90565b61488091905b80821115614837576000815560010161488956fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/GovHubContract b/core/systemcontracts/feynman/chapel/GovHubContract new file mode 100644 index 0000000000..eae834946b --- /dev/null +++ b/core/systemcontracts/feynman/chapel/GovHubContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a610737565b61022961073d565b61036b610742565b6040805160ff9092168252519081900360200190f35b61024a610747565b61036b61074d565b610399610752565b6040805161ffff9092168252519081900360200190f35b61036b610757565b61024a61075c565b61024a610762565b61024a610768565b61036b61076e565b61036b610773565b61024a610778565b61036b61077e565b61024a610783565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b509092509050610789565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b031661081b565b61036b610906565b61022961090b565b61024a610910565b61024a610916565b61056161091c565b604080519115158252519081900360200190f35b61024a610925565b61024a61092b565b61022961074d565b61024a610931565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b509092509050610937565b61024a6109ae565b61024a6109b4565b61036b6109ba565b61024a6109bf565b61036b6109c5565b61024a6109ca565b606481565b61200181565b6060336120001461068a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b610692611638565b60006106d385858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109d092505050565b91509150806106ef576106e66064610a96565b92505050610730565b60006106fa83610b00565b905063ffffffff811661072157505060408051600081526020810190915291506107309050565b61072a81610a96565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b606181565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b33612000146107c95760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461085b5760405162461bcd60e51b81526004018080602001828103825260318152602001806116cc6031913960400191505060405180910390fd5b610863611638565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108fd81610b00565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116fd6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109d8611638565b60006109e2611638565b6109ea611662565b6109fb6109f686610ea1565b610ec6565b90506000805b610a0a83610f10565b15610a895780610a2c57610a25610a2084610f31565b610f7f565b8452610a81565b8060011415610a4b57610a41610a2084610f31565b6020850152610a81565b8060021415610a7c57610a65610a6084610f31565b610ff8565b6001600160a01b0316604085015260019150610a81565b610a89565b600101610a01565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610ab0579050509050610ad68363ffffffff16611018565b81600081518110610ae357fe5b6020026020010181905250610af78161102b565b9150505b919050565b6000610b0f82604001516110b5565b610b7b57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610afb565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610be8578181015183820152602001610bd0565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c48578181015183820152602001610c30565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c9657600080fd5b505af1925050508015610ca7575060015b610e99576040516000815260443d1015610cc357506000610d60565b60046000803e60005160e01c6308c379a08114610ce4576000915050610d60565b60043d036004833e81513d602482011167ffffffffffffffff82111715610d1057600092505050610d60565b808301805167ffffffffffffffff811115610d32576000945050505050610d60565b8060208301013d8601811115610d5057600095505050505050610d60565b601f01601f191660405250925050505b80610d6b5750610e0e565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578181015183820152602001610db2565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610afb565b3d808015610e38576040519150601f19603f3d011682016040523d82523d6000602084013e610e3d565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610dca578181015183820152602001610db2565b506000919050565b610ea9611682565b506040805180820190915281518152602082810190820152919050565b610ece611662565b610ed7826110bb565b610ee057600080fd5b6000610eef83602001516110f5565b60208085015160408051808201909152868152920190820152915050919050565b6000610f1a611682565b505080518051602091820151919092015191011190565b610f39611682565b610f4282610f10565b610f4b57600080fd5b60208201516000610f5b82611158565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f8d57600080fd5b6000610f9c83602001516110f5565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610fd3576020820181803683370190505b5090506000816020019050610fef84876020015101828561128b565b50949350505050565b805160009060151461100957600080fd5b611012826112d6565b92915050565b60606110126110268361138b565b611471565b606081516000141561104c5750604080516000815260208101909152610afb565b60608260008151811061105b57fe5b602002602001015190506000600190505b835181101561109c576110928285838151811061108557fe5b60200260200101516114c3565b915060010161106c565b50610af76110af825160c060ff16611540565b826114c3565b3b151590565b80516000906110cc57506000610afb565b6020820151805160001a9060c08210156110eb57600092505050610afb565b5060019392505050565b8051600090811a608081101561110f576000915050610afb565b60b881108061112a575060c0811080159061112a575060f881105b15611139576001915050610afb565b60c081101561114d5760b519019050610afb565b60f519019050610afb565b80516000908190811a60808110156111735760019150611284565b60b881101561118857607e1981019150611284565b60c081101561120257600060b78203600186019550806020036101000a8651049150600181018201935050808310156111fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611284565b60f88110156112175760be1981019150611284565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611282576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8061129557610816565b5b602081106112b5578251825260209283019290910190601f1901611296565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112eb57508151602110155b6112f457600080fd5b600061130383602001516110f5565b9050808360000151101561135e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fef57506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166113cf575060186113f3565b6fffffffffffffffffffffffffffffffff1984166113ef575060106113f3565b5060005b60208110156114295781818151811061140857fe5b01602001516001600160f81b0319161561142157611429565b6001016113f3565b60008160200390506060816040519080825280601f01601f19166020018201604052801561145e576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114a35750607f60f81b8260008151811061149157fe5b01602001516001600160f81b03191611155b156114af575080610afb565b6110126114c18351608060ff16611540565b835b6060806040519050835180825260208201818101602087015b818310156114f45780518352602092830192016114dc565b50855184518101855292509050808201602086015b81831015611521578051835260209283019201611509565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611590576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ea5782840160f81b816000815181106115cc57fe5b60200101906001600160f81b031916908160001a9053509050611012565b60606115f58561138b565b90508381510160370160f81b8260008151811061160e57fe5b60200101906001600160f81b031916908160001a90535061162f82826114c3565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611675611682565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/GovTokenContract b/core/systemcontracts/feynman/chapel/GovTokenContract new file mode 100644 index 0000000000..2fb7c60d84 --- /dev/null +++ b/core/systemcontracts/feynman/chapel/GovTokenContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/GovernorContract b/core/systemcontracts/feynman/chapel/GovernorContract new file mode 100644 index 0000000000..0fa6bbb393 --- /dev/null +++ b/core/systemcontracts/feynman/chapel/GovernorContract @@ -0,0 +1 @@ +6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c8a565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca3565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615de9565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c8a565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615edf565b3480156105b157600080fd5b506105e36105c0366004615c8a565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f07565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160de565b611267565b34801561066b57600080fd5b5061052061067a36600461616d565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160de565b611378565b3480156106c157600080fd5b506105206106d0366004615c8a565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c8a565b61146b565b6040516104d59493929190616253565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa3660046162a0565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c8a565b611773565b6040516104d59190616304565b3480156107e857600080fd5b5061045c6107f7366004615c8a565b61177e565b34801561080857600080fd5b5061045c61081736600461616d565b6117a9565b34801561082857600080fd5b506104fe61083736600461632c565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160de565b61182a565b34801561089357600080fd5b506104fe6108a236600461616d565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616d565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616d565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b5061052061098936600461635c565b611960565b34801561099a57600080fd5b506105206109a9366004616388565b611989565b3480156109ba57600080fd5b506105206109c9366004615c8a565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c8a565b611a88565b3480156109fa57600080fd5b50610520610a0936600461640b565b611b10565b348015610a1a57600080fd5b50610520610a29366004616464565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eae565b348015610a6457600080fd5b50610a6d611f44565b6040516104d59796959493929190616504565b348015610a8c57600080fd5b50610a95611fe2565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616566565b612056565b348015610aec57600080fd5b5061052061206d565b348015610b0157600080fd5b5061045c610b1036600461616d565b61209a565b348015610b2157600080fd5b50610520610b30366004615c8a565b612122565b348015610b4157600080fd5b5061045c610b503660046165be565b6121be565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612903565b348015610b9457600080fd5b50610626610ba336600461661d565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c8a565b61290f565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166b0565b61291a565b348015610c0e57600080fd5b50610520610c1d3660046160de565b612a2a565b348015610c2e57600080fd5b5061045c610c3d3660046166f3565b612a64565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c36600461671c565b612aec565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c8a565b612b73565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d3636600461632c565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c8a565b612b96565b348015610e1257600080fd5b50610520610e213660046167bd565b612c1e565b348015610e3257600080fd5b5061045c610e41366004615c8a565b612c3f565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167e9565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c8a565b612cc7565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c8a565b612d56565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a612122565b60008c815261016360205260409020549098506001600160401b03169650610f308b61290f565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162ee565b1493506007816007811115610f9e57610f9e6162ee565b14925050509193959799509193959799565b6000610fbb82612d79565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd929190616851565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9e565b868686612dcb565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612de9915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b815260040161045390616861565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa929190616851565b604051809103902090505b806111c1610164612e52565b036111b557505b6111d181612ed1565b50565b606061016280546111e490616898565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616898565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168d2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168fe565b9150506112c6565b5061134985858585613042565b95945050505050565b6000610ef06001611361611fe2565b61136b9190616917565b65ffffffffffff16612cc7565b60008061138786868686612a2a565b9050600061139482611773565b905060048160078111156113aa576113aa6162ee565b14806113c7575060058160078111156113c5576113c56162ee565b145b6113e35760405162461bcd60e51b81526004016104539061693d565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613247565b61145482888888886132e8565b61146182888888886133ca565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616898565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616898565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616898565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616898565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613405565b979650505050505050565b6000610fbb82613428565b60008060008061178d85613575565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613806565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697e565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613405565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612de9915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169eb565b81548110611a0c57611a0c6168d2565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138d1565b61025e9061393a565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b815260040161045390616861565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae9929190616851565b604051809103902090505b80611b00610164612e52565b03611af457505b6111d1816139ed565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340592505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a30565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162ee565b1480611c1b57506000816007811115611c1957611c196162ee565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a2a565b3360009081526102c3602052604090208190559050611c7188888888613adb565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b43565b611dd4611db760036000616a14565b611dc5600362015180616a14565b68056bc75e2d63100000613b9a565b611ddc613bd1565b611de7612005613bf8565b611df2612006613c28565b611dfc600a613c58565b611e11611e0c6003610e10616a14565b613c88565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e667330151da466ec8ab345bef3d6983023e050fb0673613cb8565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611ee0576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0a57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f645750609954155b611fa85760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fb0613d0b565b611fb8613d1a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa925050508015612049575060408051601f3d908101601f1916820190925261204691810190616a36565b60015b61195b57610ef043613d29565b6000612063848484613d90565b90505b9392505050565b61025e54600090156120925761208461025e613e07565b6001600160e01b0316905090565b5061025d5490565b6120a2610edb565b6001600160a01b0316336001600160a01b0316146120d25760405162461bcd60e51b815260040161045390616861565b306120db610edb565b6001600160a01b03161461211957600080366040516120fb929190616851565b604051809103902090505b80612112610164612e52565b0361210657505b6111d181613e37565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015612181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a59190616a5e565b9050806001146121b55780612066565b60009392505050565b33611007146121e457604051630f22c43960e41b81526110076004820152602401610453565b61224a6040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b156122ff57602081146122785783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916122b9918585808385018382808284376000920191909152509293925050613efb9050565b90508015806122ca57506201518081115b156122f05784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f9816139ed565b506128c0565b6123666040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561241557602081146123945783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916123d5918585808385018382808284376000920191909152509293925050613efb9050565b90508015806123e6575062278d0081115b1561240c5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613f00565b612481604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561253757602081146124af5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916124f0918585808385018382808284376000920191909152509293925050613efb9050565b9050801580612508575069021e19e0c9bab240000081115b1561252e5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613fa3565b6125a16040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561265057602081146125cf5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f8401819004810282018101909252828152600091612610918585808385018382808284376000920191909152509293925050613efb9050565b905060058110806126215750601481115b156126475784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981612ed1565b6126bf604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561278557600881146126ed5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b6000612733600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efb9050565b90506001600160401b038116158061275657506202a300816001600160401b0316115b1561277c5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613fe6565b6127f16040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561289f576014811461281f5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b6000612865601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efb9050565b90506001600160a01b0381166128965784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981614052565b838383836040516325ee20d560e21b81526004016104539493929190616aa0565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f59493929190616aa0565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140be565b612922610edb565b6001600160a01b0316336001600160a01b0316146129525760405162461bcd60e51b815260040161045390616861565b3061295b610edb565b6001600160a01b031614612999576000803660405161297b929190616851565b604051809103902090505b80612992610164612e52565b0361298657505b600080856001600160a01b03168585856040516129b7929190616851565b60006040518083038185875af1925050503d80600081146129f4576040519150601f19603f3d011682016040523d82523d6000602084013e6129f9565b606091505b5091509150612a218282604051806060016040528060288152602001616efd602891396140fc565b50505050505050565b600084848484604051602001612a439493929190616ac7565b60408051601f19818403018152919052805160209091012095945050505050565b612a6c610edb565b6001600160a01b0316336001600160a01b031614612a9c5760405162461bcd60e51b815260040161045390616861565b30612aa5610edb565b6001600160a01b031614612ae35760008036604051612ac5929190616851565b604051809103902090505b80612adc610164612e52565b03612ad057505b6111d181613fe6565b60008251845114612b505760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5e338787878787614115565b611b588686612b6d87876141d3565b85611b62565b600080600080612b8285613575565b93509350935093506117a184848484611267565b612b9e610edb565b6001600160a01b0316336001600160a01b031614612bce5760405162461bcd60e51b815260040161045390616861565b30612bd7610edb565b6001600160a01b031614612c155760008036604051612bf7929190616851565b604051809103902090505b80612c0e610164612e52565b03612c0257505b6111d181613f00565b60006120668383612c3a60408051602081019091526000815290565b613d90565b612c47610edb565b6001600160a01b0316336001600160a01b031614612c775760405162461bcd60e51b815260040161045390616861565b30612c80610edb565b6001600160a01b031614612cbe5760008036604051612ca0929190616851565b604051809103902090505b80612cb7610164612e52565b03612cab57505b6111d181613fa3565b60006064612cd4836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d429190616a5e565b612d4c9190616b12565b610fbb9190616a14565b600080600080612d6585613575565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614305565b6000610fbb612dab6143a1565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612ddc878787876143ab565b915091506114618161446f565b6000805462010000900460ff1615612e1457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e455760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145b9565b6000612e6d8254600f81810b600160801b909204900b131590565b15612e8b57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f545760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5e61206d565b90508015801590612f70575061025e54155b15612fd557604080518082019091526000815261025e9060208101612f94846146bc565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613003612ff0612fe3611fe2565b65ffffffffffff166138d1565b612ff9846146bc565b61025e9190614725565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061305186868686612a2a565b9050600461305e82611773565b600781111561306f5761306f6162ee565b1461308c5760405162461bcd60e51b81526004016104539061693d565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fb9190616a5e565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613136908a908a908a906000908b90600401616b29565b602060405180830381865afa158015613153573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131779190616a5e565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c4918b918b918b91908b908990600401616b77565b600060405180830381600087803b1580156131de57600080fd5b505af11580156131f2573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132249190616bcf565b604080519283526020830191909152015b60405180910390a15095945050505050565b30613250610edb565b6001600160a01b0316146132e15760005b84518110156117a157306001600160a01b0316858281518110613286576132866168d2565b60200260200101516001600160a01b0316036132d1576132d18382815181106132b1576132b16168d2565b60200260200101518051906020012061016461474090919063ffffffff16565b6132da816168fe565b9050613261565b5050505050565b60005462010000900460ff161561331257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133435760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133bc576102c16000868381518110613366576133666168d2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133aa57604051630b094f2760e31b815260040160405180910390fd5b806133b4816168fe565b915050613346565b506132e1858585858561477c565b306133d3610edb565b6001600160a01b0316146132e15761016454600f81810b600160801b909204900b13156132e1576000610164556132e1565b60006113498585858561342360408051602081019091526000815290565b612de9565b600080613434836147f1565b9050600481600781111561344a5761344a6162ee565b146134555792915050565b600083815261022c602052604090205480613471575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134df9190616be2565b156134ee575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355c9190616be2565b1561356b575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374783600301805480602002602001604051908101604052809291908181526020016000905b8282101561366e5783829060005260206000200180546135e190616898565b80601f016020809104026020016040519081016040528092919081815260200182805461360d90616898565b801561365a5780601f1061362f5761010080835404028352916020019161365a565b820191906000526020600020905b81548152906001019060200180831161363d57829003601f168201915b5050505050815260200190600101906135c2565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373e5783829060005260206000200180546136b190616898565b80601f01602080910402602001604051908101604052809291908181526020018280546136dd90616898565b801561372a5780601f106136ff5761010080835404028352916020019161372a565b820191906000526020600020905b81548152906001019060200180831161370d57829003601f168201915b505050505081526020019060010190613692565b505050506141d3565b600984015483546040805160208084028201810190925282815291869183018282801561379d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161377f575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137ef57602002820191906000526020600020905b8154815260200190600101908083116137db575b505050505092509450945094509450509193509193565b60008061381586868686612a2a565b60008181526101c660205260409020549091506001600160a01b0316338114806138695750613842612903565b613867826001613850611fe2565b61385a9190616917565b65ffffffffffff16612c1e565b105b6138c55760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b61176887878787614929565b600063ffffffff8211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399757600061395584614937565b61395f90856169eb565b60008881526020902090915081015463ffffffff908116908716101561398757809150613995565b613992816001616bcf565b92505b505b60006139a587878585614a1f565b905080156139e0576139ca876139bc6001846169eb565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ad9576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aab9190616a5e565b1015613aca576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3733868686516001600160401b03811115613afc57613afc615d26565b604051908082528060200260200182016040528015613b2f57816020015b6060815260200190600190039081613b1a5790505b508787614115565b61134985858585614a75565b600054610100900460ff16613b6a5760405162461bcd60e51b815260040161045390616c04565b613b9181613b8c6040805180820190915260018152603160f81b602082015290565b614e54565b6111d181614ea3565b600054610100900460ff16613bc15760405162461bcd60e51b815260040161045390616c04565b613bcc838383614edb565b505050565b600054610100900460ff16613ad95760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff16613c1f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f1d565b600054610100900460ff16613c4f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f67565b600054610100900460ff16613c7f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f8e565b600054610100900460ff16613caf5760405162461bcd60e51b815260040161045390616c04565b6111d181614fb5565b600054610100900460ff16613cdf5760405162461bcd60e51b815260040161045390616c04565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616898565b6060609b80546111e490616898565b600065ffffffffffff8211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120639190616a5e565b805460009080156121b557613e21836139bc6001846169eb565b54600160201b90046001600160e01b0316612066565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb59190616c4f565b6040516020818303038152906040528051906020012083604051602001613edc9190616c4f565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f605760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fdc565b6060831561410b575081612066565b6120668383614ff2565b805160208201206000614133878761412d88886141d3565b85612a2a565b60008181526101c6602052604090206009810154919250906141c85780546001600160a01b0319166001600160a01b038a16178155875161417d90600183019060208b0190615ac1565b50865161419390600283019060208a0190615b22565b5085516141a99060038301906020890190615b5d565b5084516141bf9060048301906020880190615baf565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141f0576141f0615d26565b60405190808252806020026020018201604052801561422357816020015b606081526020019060019003908161420e5790505b50905060005b81518110156142fd57848181518110614244576142446168d2565b6020026020010151516000146142b457848181518110614266576142666168d2565b602002602001015180519060200120848281518110614287576142876168d2565b60200260200101516040516020016142a0929190616c6b565b6040516020818303038152906040526142cf565b8381815181106142c6576142c66168d2565b60200260200101515b8282815181106142e1576142e16168d2565b6020026020010181905250806142f6906168fe565b9050614229565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434b57506001600160e01b0319868116908216145b8061436257506001600160e01b0319868116908516145b8061437d57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef061501c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143e25750600090506003614466565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614436573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661445f57600060019250925050614466565b9150600090505b94509492505050565b6000816004811115614483576144836162ee565b0361448b5750565b600181600481111561449f5761449f6162ee565b036144ec5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b6002816004811115614500576145006162ee565b0361454d5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b6003816004811115614561576145616162ee565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145c98787878787615090565b600088815261029060205260409020549091506001600160401b03161580156145f657506145f6876151e6565b15611b5857600061461061028f546001600160401b031690565b614618611fe2565b65ffffffffffff1661462a9190616c9c565b90506146358861290f565b816001600160401b03161115614684576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139365760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614733858585615226565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b8908890889088906000908990600401616b29565b6000604051808303818588803b1580156147d157600080fd5b505af11580156147e5573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148165750600792915050565b6002810154610100900460ff16156148315750600292915050565b600083815261016360205260408120546001600160401b03169081900361489a5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a4611fe2565b65ffffffffffff1690508082106148c057506000949350505050565b60006148cb8661290f565b90508181106148e05750600195945050505050565b6148e9866151e6565b801561490c575060008681526101c6602052604090206006810154600590910154115b1561491d5750600495945050505050565b50600395945050505050565b6000611349858585856153c5565b60008160000361494957506000919050565b600060016149568461547b565b901c6001901b9050600181848161496f5761496f6169fe565b048201901c90506001818481614987576149876169fe565b048201901c9050600181848161499f5761499f6169fe565b048201901c905060018184816149b7576149b76169fe565b048201901c905060018184816149cf576149cf6169fe565b048201901c905060018184816149e7576149e76169fe565b048201901c905060018184816149ff576149ff6169fe565b048201901c905061206681828581614a1957614a196169fe565b0461550f565b60005b818310156142fd576000614a36848461551e565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a6157809250614a6f565b614a6c816001616bcf565b93505b50614a22565b600033614a828184615539565b614ace5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad8611fe2565b65ffffffffffff169050614aea612903565b614af983610e216001856169eb565b1015614b615760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b768888888880519060200120612a2a565b90508651885114614b995760405162461bcd60e51b815260040161045390616cbc565b8551885114614bba5760405162461bcd60e51b815260040161045390616cbc565b6000885111614c0b5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c7b5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c876101945490565b614c919084616bcf565b90506000614c9f6101955490565b614ca99083616bcf565b90506040518060e00160405280614cbf8461562a565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614cec8361562a565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614df157614df1615d26565b604051908082528060200260200182016040528015614e2457816020015b6060815260200190600190039081614e0f5790505b508d88888f604051614e3e99989796959493929190616cfd565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e7b5760405162461bcd60e51b815260040161045390616c04565b609a614e878382616ddb565b50609b614e948282616ddb565b50506000609881905560995550565b600054610100900460ff16614eca5760405162461bcd60e51b815260040161045390616c04565b610162614ed78282616ddb565b5050565b600054610100900460ff16614f025760405162461bcd60e51b815260040161045390616c04565b614f0b836139ed565b614f1482613f00565b613bcc81613fa3565b600054610100900460ff16614f445760405162461bcd60e51b815260040161045390616c04565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166121195760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff16612ae35760405162461bcd60e51b815260040161045390616c04565b6000818311614feb5781612066565b5090919050565b8151156150025781518083602001fd5b8060405162461bcd60e51b81526004016104539190615edf565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f615047615692565b61504f6156eb565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150aa88611773565b60078111156150bb576150bb6162ee565b146151145760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512e9088906001600160401b031686613d90565b905061513d888888848861571c565b835160000361519257866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151859493929190616e9a565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d3959493929190616ec2565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521d610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b82546000908190801561536c576000615244876139bc6001856169eb565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c55760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530d57846152e6886139bc6001866169eb565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561535c565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147389050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614738565b6000806153d4868686866158ba565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916154309160040190815260200190565b600060405180830381600087803b15801561544a57600080fd5b505af115801561545e573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561549057608092831c92015b604083901c156154a257604092831c92015b602083901c156154b457602092831c92015b601083901c156154c657601092831c92015b600883901c156154d857600892831c92015b600483901c156154ea57600492831c92015b600283901c156154fc57600292831c92015b600183901c15610fbb5760010192915050565b6000818310614feb5781612066565b600061552d6002848418616a14565b61206690848416616bcf565b80516000906034811015615551576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558457600192505050610fbb565b6000806155926028856169eb565b90505b83811015615609576000806155c98884815181106155b5576155b56168d2565b01602001516001600160f81b0319166159c7565b91509150816155e15760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b179350505080615602906168fe565b9050615595565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569d613d0b565b8051909150156156b4578051602090910120919050565b60985480156156c35792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f6613d1a565b80519091501561570d578051602090910120919050565b60995480156156c35792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157ac5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157cc84615a59565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff851661581c57838260060160008282546158119190616bcf565b90915550612a219050565b60001960ff86160161583c57838260050160008282546158119190616bcf565b60011960ff86160161585c57838260070160008282546158119190616bcf565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158c986868686612a2a565b905060006158d682611773565b905060028160078111156158ec576158ec6162ee565b1415801561590c57506006816007811115615909576159096162ee565b14155b801561592a57506007816007811115615927576159276162ee565b14155b6159765760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132359084815260200190565b60008060f883901c602f811180156159e25750603a8160ff16105b156159f757600194602f199091019350915050565b8060ff166040108015615a0d575060478160ff16105b15615a22576001946036199091019350915050565b8060ff166060108015615a38575060678160ff16105b15615a4d576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b16579160200282015b82811115615b1657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ae1565b50613936929150615c01565b828054828255906000526020600020908101928215615b16579160200282015b82811115615b16578251825591602001919060010190615b42565b828054828255906000526020600020908101928215615ba3579160200282015b82811115615ba35782518290615b939082616ddb565b5091602001919060010190615b7d565b50613936929150615c16565b828054828255906000526020600020908101928215615bf5579160200282015b82811115615bf55782518290615be59082616ddb565b5091602001919060010190615bcf565b50613936929150615c33565b5b808211156139365760008155600101615c02565b80821115613936576000615c2a8282615c50565b50600101615c16565b80821115613936576000615c478282615c50565b50600101615c33565b508054615c5c90616898565b6000825580601f10615c6c575050565b601f0160209004906000526020600020908101906111d19190615c01565b600060208284031215615c9c57600080fd5b5035919050565b600060208284031215615cb557600080fd5b81356001600160e01b03198116811461206657600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615cf057600080fd5b5081356001600160401b03811115615d0757600080fd5b602083019150836020828501011115615d1f57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6457615d64615d26565b604052919050565b60006001600160401b03821115615d8557615d85615d26565b50601f01601f191660200190565b600082601f830112615da457600080fd5b8135615db7615db282615d6c565b615d3c565b818152846020838601011115615dcc57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0557600080fd5b88359750615e1560208a01615ccd565b965060408901356001600160401b0380821115615e3157600080fd5b615e3d8c838d01615cde565b909850965060608b0135915080821115615e5657600080fd5b50615e638b828c01615d93565b945050615e7260808a01615ccd565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615eaa578181015183820152602001615e92565b50506000910152565b60008151808452615ecb816020860160208601615e8f565b601f01601f19169290920160200192915050565b6020815260006120666020830184615eb3565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1d57600080fd5b8435615f2881615ef2565b93506020850135615f3881615ef2565b92506040850135915060608501356001600160401b03811115615f5a57600080fd5b615f6687828801615d93565b91505092959194509250565b60006001600160401b03821115615f8b57615f8b615d26565b5060051b60200190565b600082601f830112615fa657600080fd5b81356020615fb6615db283615f72565b82815260059290921b84018101918181019086841115615fd557600080fd5b8286015b84811015615ff9578035615fec81615ef2565b8352918301918301615fd9565b509695505050505050565b600082601f83011261601557600080fd5b81356020616025615db283615f72565b82815260059290921b8401810191818101908684111561604457600080fd5b8286015b84811015615ff95780358352918301918301616048565b600082601f83011261607057600080fd5b81356020616080615db283615f72565b82815260059290921b8401810191818101908684111561609f57600080fd5b8286015b84811015615ff95780356001600160401b038111156160c25760008081fd5b6160d08986838b0101615d93565b8452509183019183016160a3565b600080600080608085870312156160f457600080fd5b84356001600160401b038082111561610b57600080fd5b61611788838901615f95565b9550602087013591508082111561612d57600080fd5b61613988838901616004565b9450604087013591508082111561614f57600080fd5b5061615c8782880161605f565b949793965093946060013593505050565b60006020828403121561617f57600080fd5b813561206681615ef2565b600081518084526020808501945080840160005b838110156161c35781516001600160a01b03168752958201959082019060010161619e565b509495945050505050565b600081518084526020808501945080840160005b838110156161c3578151875295820195908201906001016161e2565b600081518084526020808501808196508360051b8101915082860160005b85811015616246578284038952616234848351615eb3565b9885019893509084019060010161621c565b5091979650505050505050565b608081526000616266608083018761618a565b828103602084015261627881876161ce565b9050828103604084015261628c81866161fe565b9050828103606084015261176881856161fe565b600080600080600060a086880312156162b857600080fd5b853594506162c860208701615ccd565b93506162d660408701615ccd565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632657634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561633f57600080fd5b82359150602083013561635181615ef2565b809150509250929050565b6000806040838503121561636f57600080fd5b8235915061637f60208401615ccd565b90509250929050565b6000806000806000608086880312156163a057600080fd5b853594506163b060208701615ccd565b935060408601356001600160401b03808211156163cc57600080fd5b6163d889838a01615cde565b909550935060608801359150808211156163f157600080fd5b506163fe88828901615d93565b9150509295509295909350565b6000806000806060858703121561642157600080fd5b8435935061643160208601615ccd565b925060408501356001600160401b0381111561644c57600080fd5b61645887828801615cde565b95989497509550505050565b6000806000806080858703121561647a57600080fd5b84356001600160401b038082111561649157600080fd5b61649d88838901615f95565b955060208701359150808211156164b357600080fd5b6164bf88838901616004565b945060408701359150808211156164d557600080fd5b6164e18883890161605f565b935060608701359150808211156164f757600080fd5b50615f6687828801615d93565b60ff60f81b8816815260e06020820152600061652360e0830189615eb3565b82810360408401526165358189615eb3565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161ce565b60008060006060848603121561657b57600080fd5b833561658681615ef2565b92506020840135915060408401356001600160401b038111156165a857600080fd5b6165b486828701615d93565b9150509250925092565b600080600080604085870312156165d457600080fd5b84356001600160401b03808211156165eb57600080fd5b6165f788838901615cde565b9096509450602087013591508082111561661057600080fd5b5061645887828801615cde565b600080600080600060a0868803121561663557600080fd5b853561664081615ef2565b9450602086013561665081615ef2565b935060408601356001600160401b038082111561666c57600080fd5b61667889838a01616004565b9450606088013591508082111561668e57600080fd5b61669a89838a01616004565b935060808801359150808211156163f157600080fd5b600080600080606085870312156166c657600080fd5b84356166d181615ef2565b93506020850135925060408501356001600160401b0381111561644c57600080fd5b60006020828403121561670557600080fd5b81356001600160401b038116811461206657600080fd5b600080600080600060a0868803121561673457600080fd5b85356001600160401b038082111561674b57600080fd5b61675789838a01615f95565b9650602088013591508082111561676d57600080fd5b61677989838a01616004565b9550604088013591508082111561678f57600080fd5b61679b89838a0161605f565b945060608801359150808211156167b157600080fd5b61669a89838a0161605f565b600080604083850312156167d057600080fd5b82356167db81615ef2565b946020939093013593505050565b600080600080600060a0868803121561680157600080fd5b853561680c81615ef2565b9450602086013561681c81615ef2565b9350604086013592506060860135915060808601356001600160401b0381111561684557600080fd5b6163fe88828901615d93565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168ac57607f821691505b6020821081036168cc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201616910576169106168e8565b5060010190565b65ffffffffffff828116828216039080821115616936576169366168e8565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561699057600080fd5b81516001600160401b038111156169a657600080fd5b8201601f810184136169b757600080fd5b80516169c5615db282615d6c565b8181528560208385010111156169da57600080fd5b611349826020830160208601615e8f565b81810381811115610fbb57610fbb6168e8565b634e487b7160e01b600052601260045260246000fd5b600082616a3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4857600080fd5b815165ffffffffffff8116811461206657600080fd5b600060208284031215616a7057600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab4604083018688616a77565b8281036020840152611768818587616a77565b608081526000616ada608083018761618a565b8281036020840152616aec81876161ce565b90508281036040840152616b0081866161fe565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e8565b60a081526000616b3c60a083018861618a565b8281036020840152616b4e81886161ce565b90508281036040840152616b6281876161fe565b60608401959095525050608001529392505050565b60c081526000616b8a60c083018961618a565b8281036020840152616b9c81896161ce565b90508281036040840152616bb081886161fe565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e8565b600060208284031215616bf457600080fd5b8151801515811461206657600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c61818460208701615e8f565b9190910192915050565b6001600160e01b0319831681528151600090616c8e816004850160208701615e8f565b919091016004019392505050565b6001600160401b03818116838216019080821115616936576169366168e8565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d288382018b61618a565b90508281036060840152616d3c818a6161ce565b90508281036080840152616d5081896161fe565b905082810360a0840152616d6481886161fe565b90508560c08401528460e0840152828103610100840152616d858185615eb3565b9c9b505050505050505050505050565b601f821115613bcc57600081815260208120601f850160051c81016020861015616dbc5750805b601f850160051c820191505b818110156117a157828155600101616dc8565b81516001600160401b03811115616df457616df4615d26565b616e0881616e028454616898565b84616d95565b602080601f831160018114616e3d5760008415616e255750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6c57888601518255948401946001909101908401616e4d565b5085821015616e8a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb3565b85815260ff8516602082015283604082015260a060608201526000616eea60a0830185615eb3565b8281036080840152611c718185615eb356fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/SlashContract b/core/systemcontracts/feynman/chapel/SlashContract new file mode 100644 index 0000000000..0b33aa7b53 --- /dev/null +++ b/core/systemcontracts/feynman/chapel/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d56565b60405180910390f35b610388610626565b6040516103779190613534565b6103a86103a336600461346a565b61062c565b604051610377919061356c565b6103bd610692565b6040516103779190613561565b6103dd6103d8366004613181565b61069b565b60405161037793929190613d3e565b6103ff6103fa3660046132c7565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d27565b61038861042c36600461343a565b610a1f565b61044461043f366004613181565b610a46565b604051610377929190613d30565b610411610a9d565b610462610aa3565b6040516103779190613d67565b610388610aa8565b61047f610aae565b6040516103779190613d18565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613181565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461346a565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131b9565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461331e565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461346a565b611332565b6103ff6105c1366004613181565b6113a3565b6103ff6105d4366004613387565b611812565b610388611df1565b610411611df7565b610388611dfc565b6103ff611e02565b610462611e3e565b610388611e43565b610462611e49565b6103ff611e4e565b610388612297565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bbb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613661565b60405162461bcd60e51b815260040161064f90613cac565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613661565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b19565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f579050509050610760606161229d565b8160008151811061076d57fe5b6020026020010181905250610781836122b8565b8160018151811061078e57fe5b60200260200101819052506107a2826122b8565b816002815181106107af57fe5b602002602001018190525060606107c58261230e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613534565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610889919061319d565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613631565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135d2565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613534565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613534565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613548565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613452565b505050505050505050565b61200581565b61708081565b60018181548110610a2c57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a51612f68565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138a4565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613661565b61200063f7a251d7600b610b268461239f565b60006040518463ffffffff1660e01b8152600401610b4693929190613d75565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e52833981519152600083604051610bcf92919061357f565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bbb565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613661565b610c5d612f8b565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246892505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d56565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d56565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138a4565b610d5c82826124e8565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613661565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a08565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b6020820152915061269b9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613830565b604080516020601f8401819004810282018101909252828152600091610e9c918585808385018382808284376000920191909152506126f592505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b76565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b6020820152915061269b9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a56565b604080516020601f8401819004810282018101909252828152600091610f9d918585808385018382808284376000920191909152506126f592505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061371a565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b6020820152915061269b9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f90613990565b604080516020601f84018190048102820181019092528281526000916110a6918585808385018382808284376000920191909152506126f592505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613a98565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c61736800000000000000006020820152915061269b9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f9061374f565b604080516020601f84018190048102820181019092528281526111b291908484808385018382808284376000920191909152506126fa92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b6020820152915061269b9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f9061391f565b604080516020601f8401819004810282018101909252828152600091611292918585808385018382808284376000920191909152506126f592505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f90613698565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c57565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135a0565b60405180910390a150505050565b609681565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bbb565b60005460ff166113755760405162461bcd60e51b815260040161064f90613661565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c0a565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613661565b60035443116114055760405162461bcd60e51b815260040161064f90613ce3565b3a156114235760405162461bcd60e51b815260040161064f90613962565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613534565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132a7565b6114a15761180b565b6114a9612f68565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613534565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613534565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a919061319d565b6001600160a01b03161461166b576116668282602001516124e8565b611734565b61200063f7a251d7600b61167e8561239f565b60006040518463ffffffff1660e01b815260040161169e93929190613d75565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e5283398151915283602001518360405161172a92919061357f565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613534565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613661565b60075460ff166118565760405162461bcd60e51b815260040161064f906135fc565b6006546118635760146006555b600854611871576170806008555b60085481516040015143910111801561189557504360085482602001516040015101115b6118b15760405162461bcd60e51b815260040161064f90613c7e565b8060200151602001518160000151602001511480156118df5750806020015160600151816000015160600151145b156118fc5760405162461bcd60e51b815260040161064f90613877565b80516040810151905110801561191b5750602081015160408101519051105b6119375760405162461bcd60e51b815260040161064f906137f9565b60208101515181515110801561195c5750806000015160400151816020015160400151105b8061198757508051516020820151511080156119875750806020015160400151816000015160400151105b806119a15750806020015160400151816000015160400151145b6119bd5760405162461bcd60e51b815260040161064f906136e3565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e6919060040161356c565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906132a7565b611a525760405162461bcd60e51b815260040161064f906139d9565b611a6481600001518260400151612722565b8015611a7d5750611a7d81602001518260400151612722565b611a995760405162461bcd60e51b815260040161064f9061379a565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1391908101906131e4565b9150915060005b8151811015611c5057611b44828281518110611b3257fe5b602002602001015185604001516128fa565b15611c48576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7c9033908590600401613548565b602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190613452565b506110006001600160a01b03166335409f7f858481518110611bec57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c109190613534565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b5050505050611c50565b600101611b1a565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7c9160040161356c565b60206040518083038186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061319d565b6001600160a01b031614611d3a576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d03919060040161356c565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d5a866040015161295e565b60006040518463ffffffff1660e01b8152600401611d7a93929190613d75565b600060405180830381600087803b158015611d9457600080fd5b505af1158015611da8573d6000803e3d6000fd5b505050506000611dbd84604001516000612999565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e255760405162461bcd60e51b815260040161064f90613ae2565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e6f5760405162461bcd60e51b815260040161064f906138a4565b60005460ff16611e915760405162461bcd60e51b815260040161064f90613661565b600154611e9d57612295565b600154600090600019015b808211612269576000805b82841015611fcc57611ec3612f68565b6002600060018781548110611ed457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb657600460055481611f4157fe5b04816020015103816020018181525050806002600060018881548110611f6357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc0565b6001925050611fcc565b50836001019350611eb3565b82841161216357611fdb612f68565b6002600060018681548110611fec57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d45760046005548161205957fe5b0481602001510381602001818152505080600260006001878154811061207b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121639050565b60026000600186815481106120e557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121565750612163565b5060001990920191611fcc565b81801561216d5750805b1561224c57600260006001868154811061218357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121ca57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612258575050612269565b505060019091019060001901611ea8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b06122ab836129b5565b6122b8565b90505b919050565b6060815160011480156122ea5750607f60f81b826000815181106122d857fe5b01602001516001600160f81b03191611155b156122f65750806122b3565b6122b06123088351608060ff16612a9b565b83612b6d565b606081516000141561232f57506040805160008152602081019091526122b3565b60608260008151811061233e57fe5b602002602001015190506000600190505b835181101561237f576123758285838151811061236857fe5b6020026020010151612b6d565b915060010161234f565b50612398612392825160c060ff16612a9b565b82612b6d565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ba5790505090506123e3836001600160a01b0316612bea565b816000815181106123f057fe5b60200260200101819052506124044361229d565b8160018151811061241157fe5b6020908102919091010152612426606161229d565b8160028151811061243357fe5b60200260200101819052506124474261229d565b8160038151811061245457fe5b60200260200101819052506123988161230e565b612470612f8b565b600061247a612f8b565b612482612f9d565b61249361248e86612c0d565b612c32565b90506000805b6124a283612c7c565b156124db57806124ce576124bd6124b884612c9d565b612ceb565b63ffffffff168452600191506124d3565b6124db565b600101612499565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061250d908590600401613534565b600060405180830381600087803b15801561252757600080fd5b505af1925050508015612538575060015b610d5c576040516000815260443d1015612554575060006125f1565b60046000803e60005160e01c6308c379a081146125755760009150506125f1565b60043d036004833e81513d602482011167ffffffffffffffff821117156125a1576000925050506125f1565b808301805167ffffffffffffffff8111156125c35760009450505050506125f1565b8060208301013d86018111156125e1576000955050505050506125f1565b601f01601f191660405250925050505b806125fc5750612633565b826001600160a01b0316600080516020613e52833981519152838360405161262592919061357f565b60405180910390a250612696565b3d80801561265d576040519150601f19603f3d011682016040523d82523d6000602084013e612662565b606091505b50826001600160a01b0316600080516020613e52833981519152838360405161268c92919061357f565b60405180910390a2505b610d5c565b6000816040516020016126ae9190613518565b60405160208183030381529060405280519060200120836040516020016126d59190613518565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561271457600191508161271a565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161273e575050604080516020808252818301909252919250606091908082018180368337019050509050612783856000015161229d565b8260008151811061279057fe5b60200260200101819052506127ab6020866020015183612d6d565b6127b4816122b8565b826001815181106127c157fe5b60200260200101819052506127d9856040015161229d565b826002815181106127e657fe5b60200260200101819052506128016020866060015183612d6d565b61280a816122b8565b8260038151811061281757fe5b602002602001018190525061283d60206128308461230e565b8051906020012083612d6d565b6040805160b080825260e0820190925260609160208201818036833701905050905061286d818360006020612d7d565b61287f81876080015160206060612d7d565b61288d818660806030612d7d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128ca57600080fd5b5060016128d8826000612dd0565b60ff16146128ed5760009450505050506126ef565b5060019695505050505050565b8151815160009160019181148083146129165760009250612954565b600160208701838101602088015b60028483851001141561294f5780518351146129435760009650600093505b60209283019201612924565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129795790505090506123e3836122b8565b600081602001835110156129ac57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166129f957506018612a1d565b6fffffffffffffffffffffffffffffffff198416612a1957506010612a1d565b5060005b6020811015612a5357818181518110612a3257fe5b01602001516001600160f81b03191615612a4b57612a53565b600101612a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ac55760405162461bcd60e51b815260040161064f906137d1565b60408051600180825281830190925260609160208201818036833701905050905060378411612b1f5782840160f81b81600081518110612b0157fe5b60200101906001600160f81b031916908160001a90535090506126ef565b6060612b2a856129b5565b90508381510160370160f81b82600081518110612b4357fe5b60200101906001600160f81b031916908160001a905350612b648282612b6d565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612b9e578051835260209283019201612b86565b50855184518101855292509050808201602086015b81831015612bcb578051835260209283019201612bb3565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b8318601482015260348101909152606090612398816122b8565b612c15612fbd565b506040805180820190915281518152602082810190820152919050565b612c3a612f9d565b612c4382612dec565b612c4c57600080fd5b6000612c5b8360200151612e26565b60208085015160408051808201909152868152920190820152915050919050565b6000612c86612fbd565b505080518051602091820151919092015191011190565b612ca5612fbd565b612cae82612c7c565b612cb757600080fd5b60208201516000612cc782612e89565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d0057508151602110155b612d0957600080fd5b6000612d188360200151612e26565b90508083600001511015612d3e5760405162461bcd60e51b815260040161064f90613b3f565b825160208085015183018051928490039291831015612d6457826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612d9457fe5b602001015160f81c60f81b858480600101955081518110612db157fe5b60200101906001600160f81b031916908160001a905350600101612d80565b60008160010183511015612de357600080fd5b50016001015190565b8051600090612dfd575060006122b3565b6020820151805160001a9060c0821015612e1c576000925050506122b3565b5060019392505050565b8051600090811a6080811015612e405760009150506122b3565b60b8811080612e5b575060c08110801590612e5b575060f881105b15612e6a5760019150506122b3565b60c0811015612e7e5760b5190190506122b3565b60f5190190506122b3565b80516000908190811a6080811015612ea45760019150612f61565b60b8811015612eb957607e1981019150612f61565b60c0811015612f0a57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f045760405162461bcd60e51b815260040161064f906138f4565b50612f61565b60f8811015612f1f5760be1981019150612f61565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561271a5760405162461bcd60e51b815260040161064f906138f4565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fb0612fbd565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612fe7578081fd5b8151612ffa612ff582613dc8565b613da1565b818152915060208083019084810160005b84811015613070578151870188603f82011261302657600080fd5b83810151613036612ff582613de8565b81815260408b8184860101111561304c57600080fd5b61305b83888401838701613e0c565b5086525050928201929082019060010161300b565b505050505092915050565b60008083601f84011261308c578182fd5b50813567ffffffffffffffff8111156130a3578182fd5b6020830191508360208285010111156130bb57600080fd5b9250929050565b600082601f8301126130d2578081fd5b81356130e0612ff582613de8565b91508082528360208285010111156130f757600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613121578081fd5b61312b60a0613da1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561316957600080fd5b613175848285016130c2565b60808301525092915050565b600060208284031215613192578081fd5b813561239881613e3c565b6000602082840312156131ae578081fd5b815161239881613e3c565b600080604083850312156131cb578081fd5b82356131d681613e3c565b946020939093013593505050565b600080604083850312156131f6578182fd5b825167ffffffffffffffff8082111561320d578384fd5b81850186601f82011261321e578485fd5b8051925061322e612ff584613dc8565b80848252602080830192508084018a82838902870101111561324e578889fd5b8894505b8685101561327957805161326581613e3c565b845260019490940193928101928101613252565b508801519096509350505080821115613290578283fd5b5061329d85828601612fd7565b9150509250929050565b6000602082840312156132b8578081fd5b81518015158114612398578182fd5b600080604083850312156132d9578182fd5b823567ffffffffffffffff808211156132f0578384fd5b6132fc868387016130c2565b93506020850135915080821115613311578283fd5b5061329d858286016130c2565b60008060008060408587031215613333578182fd5b843567ffffffffffffffff8082111561334a578384fd5b6133568883890161307b565b9096509450602087013591508082111561336e578384fd5b5061337b8782880161307b565b95989497509550505050565b600060208284031215613398578081fd5b813567ffffffffffffffff808211156133af578283fd5b818401606081870312156133c1578384fd5b6133cb6060613da1565b92508035828111156133db578485fd5b6133e787828401613110565b8452506020810135828111156133fb578485fd5b61340787828401613110565b60208501525060408101358281111561341e578485fd5b61342a878284016130c2565b6040850152509195945050505050565b60006020828403121561344b578081fd5b5035919050565b600060208284031215613463578081fd5b5051919050565b60008060006040848603121561347e578081fd5b833560ff8116811461348e578182fd5b9250602084013567ffffffffffffffff8111156134a9578182fd5b6134b58682870161307b565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613504816020860160208601613e0c565b601f01601f19169290920160200192915050565b6000825161352a818460208701613e0c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239860208301846134ec565b60008382526040602083015261359860408301846134ec565b949350505050565b6000604082526135b46040830186886134c2565b82810360208401526135c78185876134c2565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613d9160608301856134ec565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dc057600080fd5b604052919050565b600067ffffffffffffffff821115613dde578081fd5b5060209081020190565b600067ffffffffffffffff821115613dfe578081fd5b50601f01601f191660200190565b60005b83811015613e27578181015183820152602001613e0f565b83811115613e36576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/StakeCreditContract b/core/systemcontracts/feynman/chapel/StakeCreditContract new file mode 100644 index 0000000000..259403b1ed --- /dev/null +++ b/core/systemcontracts/feynman/chapel/StakeCreditContract @@ -0,0 +1 @@ +6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/StakeHubContract b/core/systemcontracts/feynman/chapel/StakeHubContract new file mode 100644 index 0000000000..0e0d6a47df --- /dev/null +++ b/core/systemcontracts/feynman/chapel/StakeHubContract @@ -0,0 +1 @@ +608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bef578063fb50b31f1462000c14578063fc0c5ff11462000c39578063ff69ab611462000c5157600080fd5b8063e992aaf51462000b6c578063efdbf0e11462000b84578063f1f74d841462000bc0578063f1fad1041462000bd857600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000aff578063daacdb661462000b17578063dbda7fb31462000b2f578063e8f67c3b1462000b5457600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab5578063d7c2dfc81462000ada57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c69565b3480156200042057600080fd5b506200043862000432366004620093e3565b62000cfb565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d366004620093e3565b62001110565b348015620004a057600080fd5b50620003f4620004b236600462009447565b6200174e565b348015620004c557600080fd5b50620004dd620004d73660046200948c565b62001a7a565b6040516200044c91906200953f565b348015620004f957600080fd5b50620004386200050b36600462009635565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f462000581366004620093e3565b62001d53565b3480156200059457600080fd5b50620003f4620005a6366004620093e3565b62001dd5565b348015620005b957600080fd5b50620003f4620005cb366004620093e3565b62001fba565b348015620005de57600080fd5b5062000605620005f0366004620093e3565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f462000635366004620093e3565b62002197565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f4620006843660046200968a565b62002213565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c1366004620096c8565b62002830565b348015620006d457600080fd5b50620003f4620006e636600462009738565b62003602565b348015620006f957600080fd5b50620007116200070b36600462009758565b6200380a565b6040516200044c9493929190620097c1565b620003f4620007343660046200987d565b62003e9c565b3480156200074757600080fd5b506200046d62000759366004620093e3565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a366004620093e3565b620044e6565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e2366004620093e3565b62004590565b348015620007f557600080fd5b50620003f462000807366004620093e3565b620049a9565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004b7b565b3480156200084a57600080fd5b50620003f46200085c3660046200948c565b62004e92565b3480156200086f57600080fd5b50620003f462004efc565b3480156200088757600080fd5b506200043862000899366004620093e3565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f13660046200968a565b62004f94565b620003f46200090836600462009955565b6200504d565b3480156200091b57600080fd5b50620009336200092d366004620093e3565b620056d7565b6040516200044c919062009993565b3480156200094f57600080fd5b50620003f4620009613660046200968a565b620059c4565b3480156200097457600080fd5b50620003f46200098636600462009a10565b62005a31565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009ac9565b620068d0565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a0836600462009758565b62006a9d565b6040516200044c9392919062009b25565b34801562000a2c57600080fd5b50620003f462000a3e366004620093e3565b62006c79565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b366004620093e3565b62006f3b565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d61271081565b34801562000ac257600080fd5b50620003f462000ad436600462009b82565b6200736b565b34801562000ae757600080fd5b50620003f462000af936600462009c6b565b6200756f565b34801562000b0c57600080fd5b506200046d603b5481565b34801562000b2457600080fd5b506200046d60495481565b34801562000b3c57600080fd5b506200043862000b4e366004620093e3565b62007665565b34801562000b6157600080fd5b506200046d60355481565b34801562000b7957600080fd5b506200046d603a5481565b34801562000b9157600080fd5b506200046d62000ba336600462009635565b805160208183018101805160468252928201919093012091525481565b34801562000bcd57600080fd5b506200046d603e5481565b34801562000be557600080fd5b5062000652601181565b34801562000bfc57600080fd5b506200046d62000c0e3660046200968a565b62007a7c565b34801562000c2157600080fd5b50620003f462000c3336600462009a10565b62007aed565b34801562000c4657600080fd5b506200046d60395481565b34801562000c5e57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9c576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc657604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d669062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000d949062009cd1565b801562000de55780601f1062000db95761010080835404028352916020019162000de5565b820191906000526020600020905b81548152906001019060200180831162000dc757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e109062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3e9062009cd1565b801562000e8f5780601f1062000e635761010080835404028352916020019162000e8f565b820191906000526020600020905b81548152906001019060200180831162000e7157829003601f168201915b5050505050815260200160018201805462000eaa9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed89062009cd1565b801562000f295780601f1062000efd5761010080835404028352916020019162000f29565b820191906000526020600020905b81548152906001019060200180831162000f0b57829003601f168201915b5050505050815260200160028201805462000f449062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000f729062009cd1565b801562000fc35780601f1062000f975761010080835404028352916020019162000fc3565b820191906000526020600020905b81548152906001019060200180831162000fa557829003601f168201915b5050505050815260200160038201805462000fde9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200100c9062009cd1565b80156200105d5780601f1062001031576101008083540402835291602001916200105d565b820191906000526020600020905b8154815290600101906020018083116200103f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e9575050509190925250509051949350505050565b33611000146200113c57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b59062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e39062009cd1565b8015620012345780601f10620012085761010080835404028352916020019162001234565b820191906000526020600020905b8154815290600101906020018083116200121657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125f9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d9062009cd1565b8015620012de5780601f10620012b257610100808354040283529160200191620012de565b820191906000526020600020905b815481529060010190602001808311620012c057829003601f168201915b50505050508152602001600182018054620012f99062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013279062009cd1565b8015620013785780601f106200134c5761010080835404028352916020019162001378565b820191906000526020600020905b8154815290600101906020018083116200135a57829003601f168201915b50505050508152602001600282018054620013939062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c19062009cd1565b8015620014125780601f10620013e65761010080835404028352916020019162001412565b820191906000526020600020905b815481529060010190602001808311620013f457829003601f168201915b505050505081526020016003820180546200142d9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200145b9062009cd1565b8015620014ac5780601f106200148057610100808354040283529160200191620014ac565b820191906000526020600020905b8154815290600101906020018083116200148e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001538575050509190925250505060408101519091506001600160a01b031615806200157557508060e001515b156200163257604051611002903490600081818185875af1925050503d8060008114620015bf576040519150601f19603f3d011682016040523d82523d6000602084013e620015c4565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016259060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168957600080fd5b505af11580156200169e573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016df91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017149190869060040162009d07565b600060405180830381600087803b1580156200172f57600080fd5b505af115801562001744573d6000803e3d6000fd5b5050505050505b50565b33611001146200177657604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff1615620017a157604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b792919062009d21565b908152604051908190036020019020546001600160a01b03169050620017df603f8262007d41565b620017fd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001825620151804262009d47565b604a546000828152604b602052604090205491925011620018595760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187a90849062009d6a565b909155505060405160469062001894908790879062009d21565b908152602001604051809103902054600014158015620018e55750426201518060468787604051620018c892919062009d21565b908152602001604051809103902054620018e3919062009d6a565b105b156200190457604051631898eb6b60e01b815260040160405180910390fd5b6000806200191485600262007d64565b91509150816200193757604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b0919062009d80565b9050620019be858362007dee565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019fe9392919062009db0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3c916001600160a01b0316908a9060040162009d07565b600060405180830381600087803b15801562001a5757600080fd5b505af115801562001a6c573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa457604051630f22c43960e41b8152612000600482015260240162001133565b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001af591879087908190840183828082843760009201919091525062007fb592505050565b915091508062001b185760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b3e575050604080516000815260208101909152905062001d42565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b6e9160040190815260200190565b6020604051808303816000875af115801562001b8e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bb4919062009ddf565b90508062001c5b5782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c1092919062009dff565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001d4295505050505050565b600062001c688462008118565b9050600081600381111562001c815762001c8162009d9a565b0362001ca3575050604080516000815260208101909152925062001d42915050565b83602001516001600160a01b031684600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a86606001518460405162001cf692919062009dff565b60405180910390a386868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092975062001d429650505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001d86576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e0057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001e325760405163b1d02c3d60e01b815260040160405180910390fd5b8062001e40603f8262007d41565b62001e5e5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001e9c57604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001eec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f12919062009d80565b101562001f32576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001f585760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff19169055604980546001919060009062001f7c90849062009e26565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff161562001fe557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020175760405163b1d02c3d60e01b815260040160405180910390fd5b3362002025603f8262007d41565b620020435760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200206b57604051636520611b60e11b815260040160405180910390fd5b6001600160a01b0382811660009081526043602052604090205416151580620020ac57506001600160a01b03821660009081526047602052604090205460ff165b15620020cb57604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620020f190620151809062009d6a565b11156200211157604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b03163314620021ca576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff16156200223e57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620022705760405163b1d02c3d60e01b815260040160405180910390fd5b816200227e603f8262007d41565b6200229c5760405163056e881160e01b815260040160405180910390fd5b81600003620022be57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023269062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620023549062009cd1565b8015620023a55780601f106200237957610100808354040283529160200191620023a5565b820191906000526020600020905b8154815290600101906020018083116200238757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620023d09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620023fe9062009cd1565b80156200244f5780601f1062002423576101008083540402835291602001916200244f565b820191906000526020600020905b8154815290600101906020018083116200243157829003601f168201915b505050505081526020016001820180546200246a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620024989062009cd1565b8015620024e95780601f10620024bd57610100808354040283529160200191620024e9565b820191906000526020600020905b815481529060010190602001808311620024cb57829003601f168201915b50505050508152602001600282018054620025049062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620025329062009cd1565b8015620025835780601f10620025575761010080835404028352916020019162002583565b820191906000526020600020905b8154815290600101906020018083116200256557829003601f168201915b505050505081526020016003820180546200259e9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cc9062009cd1565b80156200261d5780601f10620025f1576101008083540402835291602001916200261d565b820191906000526020600020905b815481529060010190602001808311620025ff57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620026a9575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af115801562002723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002749919062009d80565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b4082980287846040516200279a929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b031603620027c757620027c786620087ab565b6040808301519051633041949b60e01b815261200591633041949b91620027f49190879060040162009d07565b600060405180830381600087803b1580156200280f57600080fd5b505af115801562002824573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff16156200285b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200288d5760405163b1d02c3d60e01b815260040160405180910390fd5b836200289b603f8262007d41565b620028b95760405163056e881160e01b815260040160405180910390fd5b83620028c7603f8262007d41565b620028e55760405163056e881160e01b815260040160405180910390fd5b6034805460ff1916600117905560008490036200291557604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029485760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b0380871660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620029b09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620029de9062009cd1565b801562002a2f5780601f1062002a035761010080835404028352916020019162002a2f565b820191906000526020600020905b81548152906001019060200180831162002a1157829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002a5a9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002a889062009cd1565b801562002ad95780601f1062002aad5761010080835404028352916020019162002ad9565b820191906000526020600020905b81548152906001019060200180831162002abb57829003601f168201915b5050505050815260200160018201805462002af49062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002b229062009cd1565b801562002b735780601f1062002b475761010080835404028352916020019162002b73565b820191906000526020600020905b81548152906001019060200180831162002b5557829003601f168201915b5050505050815260200160028201805462002b8e9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbc9062009cd1565b801562002c0d5780601f1062002be15761010080835404028352916020019162002c0d565b820191906000526020600020905b81548152906001019060200180831162002bef57829003601f168201915b5050505050815260200160038201805462002c289062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002c569062009cd1565b801562002ca75780601f1062002c7b5761010080835404028352916020019162002ca7565b820191906000526020600020905b81548152906001019060200180831162002c8957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002d3357505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002dbe9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002dec9062009cd1565b801562002e3d5780601f1062002e115761010080835404028352916020019162002e3d565b820191906000526020600020905b81548152906001019060200180831162002e1f57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002e689062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002e969062009cd1565b801562002ee75780601f1062002ebb5761010080835404028352916020019162002ee7565b820191906000526020600020905b81548152906001019060200180831162002ec957829003601f168201915b5050505050815260200160018201805462002f029062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002f309062009cd1565b801562002f815780601f1062002f555761010080835404028352916020019162002f81565b820191906000526020600020905b81548152906001019060200180831162002f6357829003601f168201915b5050505050815260200160028201805462002f9c9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002fca9062009cd1565b80156200301b5780601f1062002fef576101008083540402835291602001916200301b565b820191906000526020600020905b81548152906001019060200180831162002ffd57829003601f168201915b50505050508152602001600382018054620030369062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620030649062009cd1565b8015620030b55780601f106200308957610100808354040283529160200191620030b5565b820191906000526020600020905b8154815290600101906020018083116200309757829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031415750505050508152505090508060e001518015620031845750876001600160a01b0316836001600160a01b031614155b15620031a357604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af1158015620031fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003220919062009d80565b9050603754811015620032465760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b0316148015620032db57506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa158015620032b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032d9919062009d80565b105b15620032fa576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a54836200330f919062009e3c565b6200331b919062009d47565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d806000811462003370576040519150601f19603f3d011682016040523d82523d6000602084013e62003375565b606091505b505090508062003398576040516312171d8360e31b815260040160405180910390fd5b620033a4828462009e26565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af1158015620033fa573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062003421919062009d80565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003486939291909283526020830191909152604082015260600190565b60405180910390a4604080516002808252606082018352600092602083019080368337019050509050866040015181600081518110620034ca57620034ca62009e56565b60200260200101906001600160a01b031690816001600160a01b03168152505085604001518160018151811062003505576200350562009e56565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035469084908c9060040162009e6c565b600060405180830381600087803b1580156200356157600080fd5b505af115801562003576573d6000803e3d6000fd5b505050508a15620035e8576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b8152600401620035b392919062009d07565b600060405180830381600087803b158015620035ce57600080fd5b505af1158015620035e3573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff16156200362d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200365f5760405163b1d02c3d60e01b815260040160405180910390fd5b336200366d603f8262007d41565b6200368b5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620036b190620151809062009d6a565b1115620036d157604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b909104811690851611156200370b5760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b03908116908616101562003749576009820154620037439086906001600160401b031662009e98565b62003763565b600982015462003763906001600160401b03168662009e98565b60098301546001600160401b039182169250600160801b9004168111156200379e5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b606080606060006200381d603f620088d1565b90508086101562003e9357841562003836578462003838565b805b945060008562003849888462009e26565b1162003861576200385b878362009e26565b62003863565b855b9050806001600160401b0381111562003880576200388062009554565b604051908082528060200260200182016040528015620038aa578160200160208202803683370190505b509450806001600160401b03811115620038c857620038c862009554565b604051908082528060200260200182016040528015620038f2578160200160208202803683370190505b509350806001600160401b0381111562003910576200391062009554565b6040519080825280602002602001820160405280156200394557816020015b60608152602001906001900390816200392f5790505b50925060005b8181101562003e905760006200396f62003966838b62009d6a565b603f90620088dc565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805494955091939092916080840191620039dc9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003a0a9062009cd1565b801562003a5b5780601f1062003a2f5761010080835404028352916020019162003a5b565b820191906000526020600020905b81548152906001019060200180831162003a3d57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003a869062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003ab49062009cd1565b801562003b055780601f1062003ad95761010080835404028352916020019162003b05565b820191906000526020600020905b81548152906001019060200180831162003ae757829003601f168201915b5050505050815260200160018201805462003b209062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003b4e9062009cd1565b801562003b9f5780601f1062003b735761010080835404028352916020019162003b9f565b820191906000526020600020905b81548152906001019060200180831162003b8157829003601f168201915b5050505050815260200160028201805462003bba9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003be89062009cd1565b801562003c395780601f1062003c0d5761010080835404028352916020019162003c39565b820191906000526020600020905b81548152906001019060200180831162003c1b57829003601f168201915b5050505050815260200160038201805462003c549062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003c829062009cd1565b801562003cd35780601f1062003ca75761010080835404028352916020019162003cd3565b820191906000526020600020905b81548152906001019060200180831162003cb557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003d5f575050505050815250509050806000015188848151811062003d985762003d9862009e56565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003e315780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e05573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e2b919062009d80565b62003e34565b60005b87848151811062003e495762003e4962009e56565b602002602001018181525050806080015186848151811062003e6f5762003e6f62009e56565b602002602001018190525050508062003e889062009ebb565b90506200394b565b50505b92959194509250565b60005462010000900460ff161562003ec757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003ef95760405163b1d02c3d60e01b815260040160405180910390fd5b3362003f07603f8262007d41565b1562003f2657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038881166000908152604360205260409020541615158062003f6757506001600160a01b03881660009081526047602052604090205460ff165b1562003f8657604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b03166045888860405162003fa592919062009d21565b908152604051908190036020019020546001600160a01b031614158062003fef57506048878760405162003fdb92919062009d21565b9081526040519081900360200190205460ff165b156200400e576040516311fdb94760e01b815260040160405180910390fd5b60006200401c838062009ed7565b6040516020016200402f92919062009d21565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620040795760405163c0bf414360e01b815260040160405180910390fd5b60006200408f670de0b6b3a76400003462009e26565b9050603654811015620040b5576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a16620040dd57604051636520611b60e11b815260040160405180910390fd5b611388620040f2604087016020880162009738565b6001600160401b0316118062004138575062004115604086016020870162009738565b6001600160401b03166200412d602087018762009738565b6001600160401b0316115b8062004177575062004151604086016020870162009738565b6001600160401b03166200416c606087016040880162009738565b6001600160401b0316115b15620041965760405163dc81db8560e01b815260040160405180910390fd5b620041e1620041a6858062009ed7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620088ea92505050565b620041ff57604051635dba5ad760e01b815260040160405180910390fd5b6200420e838a8a8a8a62008a8c565b6200422c57604051631647e3cb60e11b815260040160405180910390fd5b60006200427a846200423f878062009ed7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008bbc92505050565b905062004289603f8562008cbd565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043098b8d8362009f7f565b5085600582016200431b82826200a047565b50879050600982016200432f82826200a180565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b031916928816929092179091555185906045906200437d908e908e9062009d21565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e604051620044009291906200a250565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b757833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b757833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b90620044a4908590899060040162009d07565b600060405180830381600087803b158015620044bf57600080fd5b505af1158015620044d4573d6000803e3d6000fd5b50505050505050505050505050505050565b60408051606081018252600080825260208201819052918101919091528162004511603f8262007d41565b6200452f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620045fd9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200462b9062009cd1565b80156200467c5780601f1062004650576101008083540402835291602001916200467c565b820191906000526020600020905b8154815290600101906020018083116200465e57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620046a79062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620046d59062009cd1565b8015620047265780601f10620046fa5761010080835404028352916020019162004726565b820191906000526020600020905b8154815290600101906020018083116200470857829003601f168201915b50505050508152602001600182018054620047419062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200476f9062009cd1565b8015620047c05780601f106200479457610100808354040283529160200191620047c0565b820191906000526020600020905b815481529060010190602001808311620047a257829003601f168201915b50505050508152602001600282018054620047db9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620048099062009cd1565b80156200485a5780601f106200482e576101008083540402835291602001916200485a565b820191906000526020600020905b8154815290600101906020018083116200483c57829003601f168201915b50505050508152602001600382018054620048759062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a39062009cd1565b8015620048f45780601f10620048c857610100808354040283529160200191620048f4565b820191906000526020600020905b815481529060010190602001808311620048d657829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620049805750505091909252505050608001519392505050565b3361100114620049d157604051630f22c43960e41b8152611001600482015260240162001133565b6001600160a01b0380821660009081526043602052604090205416620049f9603f8262007d41565b62004a175760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004a7a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004aa0919062009d80565b90506000603d544262004ab4919062009d6a565b905062004ac2838262007dee565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b029392919062009db0565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004b40916001600160a01b031690889060040162009d07565b600060405180830381600087803b15801562004b5b57600080fd5b505af115801562004b70573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004b9c5750600054600160ff909116105b8062004bb85750303b15801562004bb8575060005460ff166001145b62004c1d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001133565b6000805460ff19166001179055801562004c41576000805461ff0019166101001790555b33411462004c625760405163022d8c9560e31b815260040160405180910390fd5b3a1562004c82576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755600960385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562069780603e55604a5560408051610220810190915261020080825260609182916200b557602083013980602001905181019062004d1391906200a28c565b915060405180610360016040528061034081526020016200b777610340913980602001905181019062004d4791906200a330565b905060005b825181101562004db65760016047600085848151811062004d715762004d7162009e56565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004dae8162009ebb565b905062004d4c565b5060005b815181101562004e27576001604883838151811062004ddd5762004ddd62009e56565b602002602001015160405162004df491906200a42d565b908152604051908190036020019020805491151560ff1990921691909117905562004e1f8162009ebb565b905062004dba565b5062004e477330151da466ec8ab345bef3d6983023e050fb067362008cd4565b505080156200174b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004eba57604051630f22c43960e41b8152612000600482015260240162001133565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004eef939291906200a44b565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004f2f576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004f5a57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b600062004fa3603f8462007d41565b62004fc15760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa1580156200501e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005044919062009d80565b90505b92915050565b60005462010000900460ff16156200507857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620050aa5760405163b1d02c3d60e01b815260040160405180910390fd5b81620050b8603f8262007d41565b620050d65760405163056e881160e01b815260040160405180910390fd5b6037543490811015620050fc5760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051649062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620051929062009cd1565b8015620051e35780601f10620051b757610100808354040283529160200191620051e3565b820191906000526020600020905b815481529060010190602001808311620051c557829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200520e9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200523c9062009cd1565b80156200528d5780601f1062005261576101008083540402835291602001916200528d565b820191906000526020600020905b8154815290600101906020018083116200526f57829003601f168201915b50505050508152602001600182018054620052a89062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d69062009cd1565b8015620053275780601f10620052fb5761010080835404028352916020019162005327565b820191906000526020600020905b8154815290600101906020018083116200530957829003601f168201915b50505050508152602001600282018054620053429062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620053709062009cd1565b8015620053c15780601f106200539557610100808354040283529160200191620053c1565b820191906000526020600020905b815481529060010190602001808311620053a357829003601f168201915b50505050508152602001600382018054620053dc9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200540a9062009cd1565b80156200545b5780601f106200542f576101008083540402835291602001916200545b565b820191906000526020600020905b8154815290600101906020018083116200543d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620054e75750505050508152505090508060e0015180156200552a5750856001600160a01b0316826001600160a01b031614155b156200554957604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af11580156200559a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620055c1919062009d80565b9050826001600160a01b0316876001600160a01b03166000805160206200b757833981519152838760405162005601929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056369190879060040162009d07565b600060405180830381600087803b1580156200565157600080fd5b505af115801562005666573d6000803e3d6000fd5b50505050851562001744576040516372f6ad8f60e11b81526120059063e5ed5b1e906200569a9086908b9060040162009d07565b600060405180830381600087803b158015620056b557600080fd5b505af1158015620056ca573d6000803e3d6000fd5b5050505050505050505050565b620057036040518060800160405280606081526020016060815260200160608152602001606081525090565b8162005711603f8262007d41565b6200572f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620057669062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620057949062009cd1565b8015620057e55780601f10620057b957610100808354040283529160200191620057e5565b820191906000526020600020905b815481529060010190602001808311620057c757829003601f168201915b50505050508152602001600182018054620058009062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200582e9062009cd1565b80156200587f5780601f1062005853576101008083540402835291602001916200587f565b820191906000526020600020905b8154815290600101906020018083116200586157829003601f168201915b505050505081526020016002820180546200589a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620058c89062009cd1565b8015620059195780601f10620058ed5761010080835404028352916020019162005919565b820191906000526020600020905b815481529060010190602001808311620058fb57829003601f168201915b50505050508152602001600382018054620059349062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620059629062009cd1565b8015620059b35780601f106200598757610100808354040283529160200191620059b3565b820191906000526020600020905b8154815290600101906020018083116200599557829003601f168201915b505050505081525050915050919050565b60005462010000900460ff1615620059ef57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005a215760405163b1d02c3d60e01b815260040160405180910390fd5b62005a2d828262008d6d565b5050565b336110071462005a5957604051630f22c43960e41b8152611007600482015260240162001133565b62005ac66040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005b81576020811462005af85783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005b3b91858580838501838280828437600092019190915250929392505062008ed69050565b90506108fc81108062005b4f575061271081115b1562005b785784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6035556200688b565b62005bf26040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005cbc576020811462005c245783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005c6791858580838501838280828437600092019190915250929392505062008ed69050565b9050683635c9adc5dea0000081108062005c8a575069152d02c7e14af680000081115b1562005cb35784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6036556200688b565b62005d2f604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005df6576020811462005d615783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005da491858580838501838280828437600092019190915250929392505062008ed69050565b905067016345785d8a000081108062005dc45750678ac7230489e8000081115b1562005ded5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6037556200688b565b62005e67604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005f1f576020811462005e995783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005edc91858580838501838280828437600092019190915250929392505062008ed69050565b905080158062005eed57506101f481115b1562005f165784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6038556200688b565b62005f886040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562006045576020811462005fba5783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005ffd91858580838501838280828437600092019190915250929392505062008ed69050565b90506203f48081108062006013575062278d0081115b156200603c5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6039556200688b565b620060b360405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620061605760208114620060e55783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200612891858580838501838280828437600092019190915250929392505062008ed69050565b90506064811115620061575784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603a556200688b565b620061d060405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620062915760208114620062025783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200624591858580838501838280828437600092019190915250929392505062008ed69050565b9050674563918244f400008110806200625f5750603c5481115b15620062885784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603b556200688b565b620062ff6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620063c25760208114620063315783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200637491858580838501838280828437600092019190915250929392505062008ed69050565b905068056bc75e2d63100000811080620063905750603b548111155b15620063b95784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603c556200688b565b6200642f6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620064ec5760208114620064615783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f8401819004810282018101909252828152600091620064a491858580838501838280828437600092019190915250929392505062008ed69050565b90506202a300811080620064ba5750603e548110155b15620064e35784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603d556200688b565b620065576040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620066145760208114620065895783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f8401819004810282018101909252828152600091620065cc91858580838501838280828437600092019190915250929392505062008ed69050565b9050620d2f00811080620065e25750603d548111155b156200660b5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603e556200688b565b6200668e6040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b156200673a5760208114620066c05783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200670391858580838501838280828437600092019190915250929392505062008ed69050565b905080600003620067315784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b604a556200688b565b620067a86040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620068685760148114620067da5783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b600062006822601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b90506001600160a01b038116620068565784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b620068618162008edb565b506200688b565b838383836040516325ee20d560e21b81526004016200113394939291906200a46a565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051620068c294939291906200a46a565b60405180910390a150505050565b60005462010000900460ff1615620068fb57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200692d5760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b038111156200694b576200694b62009554565b60405190808252806020026020018201604052801562006975578160200160208202803683370190505b5090506000805b8381101562006a7357620069be8787838181106200699e576200699e62009e56565b9050602002016020810190620069b59190620093e3565b603f9062007d41565b620069dc5760405163056e881160e01b815260040160405180910390fd5b60416000888884818110620069f557620069f562009e56565b905060200201602081019062006a0c9190620093e3565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006a485762006a4862009e56565b6001600160a01b039092166020928302919091019091015262006a6b8162009ebb565b90506200697c565b50604051634484077560e01b815261200590634484077590620027f4908590889060040162009e6c565b606080600062006aae603f620088d1565b90508085101562006c7257831562006ac7578362006ac9565b805b935060008462006ada878462009e26565b1162006af25762006aec868362009e26565b62006af4565b845b9050806001600160401b0381111562006b115762006b1162009554565b60405190808252806020026020018201604052801562006b3b578160200160208202803683370190505b509350806001600160401b0381111562006b595762006b5962009554565b60405190808252806020026020018201604052801562006b83578160200160208202803683370190505b50925060005b8181101562006c6f5762006ba262003966828962009d6a565b85828151811062006bb75762006bb762009e56565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006bf05762006bf062009e56565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006c445762006c4462009e56565b6001600160a01b039092166020928302919091019091015262006c678162009ebb565b905062006b89565b50505b9250925092565b336110011462006ca157604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff161562006ccc57604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006cf4603f8262007d41565b62006d125760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006d3a620151804262009d47565b604a546000828152604b60205260409020549192501162006d6e5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006d8f90849062009d6a565b90915550506001600160a01b0384166000908152604460205260409020541580159062006de457506001600160a01b038416600090815260446020526040902054429062006de290620151809062009d6a565b105b1562006e03576040516330abb81d60e21b815260040160405180910390fd5b60008062006e1385600062007d64565b915091508162006e3657604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006e89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006eaf919062009d80565b905062006ebd858362007dee565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006efd9392919062009db0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b916200569a916001600160a01b0316908a9060040162009d07565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384938493849390929160808401919062006fac9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462006fda9062009cd1565b80156200702b5780601f1062006fff576101008083540402835291602001916200702b565b820191906000526020600020905b8154815290600101906020018083116200700d57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070569062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620070849062009cd1565b8015620070d55780601f10620070a957610100808354040283529160200191620070d5565b820191906000526020600020905b815481529060010190602001808311620070b757829003601f168201915b50505050508152602001600182018054620070f09062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200711e9062009cd1565b80156200716f5780601f1062007143576101008083540402835291602001916200716f565b820191906000526020600020905b8154815290600101906020018083116200715157829003601f168201915b505050505081526020016002820180546200718a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620071b89062009cd1565b8015620072095780601f10620071dd5761010080835404028352916020019162007209565b820191906000526020600020905b815481529060010190602001808311620071eb57829003601f168201915b50505050508152602001600382018054620072249062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620072529062009cd1565b8015620072a35780601f106200727757610100808354040283529160200191620072a3565b820191906000526020600020905b8154815290600101906020018083116200728557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b8154815260200190600101908083116200732f5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200739657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620073c85760405163b1d02c3d60e01b815260040160405180910390fd5b33620073d6603f8262007d41565b620073f45760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200741a90620151809062009d6a565b11156200743a57604051631f92cdbd60e11b815260040160405180910390fd5b6005810180546200744b9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620074799062009cd1565b8015620074ca5780601f106200749e57610100808354040283529160200191620074ca565b820191906000526020600020905b815481529060010190602001808311620074ac57829003601f168201915b5050508287525085916005840191508190620074e790826200a495565b5060208201516001820190620074fe90826200a495565b50604082015160028201906200751590826200a495565b50606082015160038201906200752c90826200a495565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200759a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620075cc5760405163b1d02c3d60e01b815260040160405180910390fd5b828114620075ed576040516341abc80160e01b815260040160405180910390fd5b60005b838110156200765e576200764b85858381811062007612576200761262009e56565b9050602002016020810190620076299190620093e3565b8484848181106200763e576200763e62009e56565b9050602002013562008d6d565b620076568162009ebb565b9050620075f0565b5050505050565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849390916080840191620076d09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620076fe9062009cd1565b80156200774f5780601f1062007723576101008083540402835291602001916200774f565b820191906000526020600020905b8154815290600101906020018083116200773157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200777a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620077a89062009cd1565b8015620077f95780601f10620077cd57610100808354040283529160200191620077f9565b820191906000526020600020905b815481529060010190602001808311620077db57829003601f168201915b50505050508152602001600182018054620078149062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620078429062009cd1565b8015620078935780601f10620078675761010080835404028352916020019162007893565b820191906000526020600020905b8154815290600101906020018083116200787557829003601f168201915b50505050508152602001600282018054620078ae9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620078dc9062009cd1565b80156200792d5780601f1062007901576101008083540402835291602001916200792d565b820191906000526020600020905b8154815290600101906020018083116200790f57829003601f168201915b50505050508152602001600382018054620079489062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620079769062009cd1565b8015620079c75780601f106200799b57610100808354040283529160200191620079c7565b820191906000526020600020905b815481529060010190602001808311620079a957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007a535750505091909252505050604001519392505050565b600062007a8b603f8462007d41565b62007aa95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd9060240162005000565b60005462010000900460ff161562007b1857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007b4a5760405163b1d02c3d60e01b815260040160405180910390fd5b3362007b58603f8262007d41565b62007b765760405163056e881160e01b815260040160405180910390fd5b3362007b86818787878762008a8c565b62007ba457604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007bc392919062009d21565b908152604051908190036020019020546001600160a01b031614158062007c0d57506048868660405162007bf992919062009d21565b9081526040519081900360200190205460ff165b1562007c2c576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007c5b90620151809062009d6a565b111562007c7b57604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007c9191906200a55d565b908152604051908190036020019020556004810162007cb287898362009f7f565b5042600c820155604051829060459062007cd0908a908a9062009d21565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007d30908a908a906200a250565b60405180910390a250505050505050565b6001600160a01b0381166000908152600183016020526040812054151562005044565b6000806000848460405160200162007d7e9291906200a5db565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007dbe5760008093509350505062007de7565b603e5462007dcd904262009d6a565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007e3557600080fd5b505af115801562007e4a573d6000803e3d6000fd5b505050506000600162007e5e603f620088d1565b62007e6a919062009e26565b604954108015915062007f285760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007ebe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007ee4919062009ddf565b62007f285760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007f3d57600b83018290555b600a83015460ff1662007fb057600a8301805460ff191660019081179091556049805460009062007f7090849062009d6a565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080279062008f47565b90506000805b620080388362008fba565b156200810b57806000036200806d576200805c620080568462008fe0565b62009044565b6001600160a01b03168452620080f8565b80600103620080995762008085620080568462008fe0565b6001600160a01b03166020850152620080f8565b80600203620080c557620080b1620080568462008fe0565b6001600160a01b03166040850152620080f8565b80600303620080f257620080e3620080dd8462008fe0565b6200905c565b606085015260019150620080f8565b6200810b565b620081038162009ebb565b90506200802d565b5091959194509092505050565b6000805462010000900460ff16156200814457604051631785c68160e01b815260040160405180910390fd5b6020808301516001600160a01b031660009081526001909152604090205460ff16806200817c575060208201516001600160a01b0316155b156200819b5760405163b1d02c3d60e01b815260040160405180910390fd5b8151620081ab90603f9062007d41565b620081b857506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082249062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620082529062009cd1565b8015620082a35780601f106200827757610100808354040283529160200191620082a3565b820191906000526020600020905b8154815290600101906020018083116200828557829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620082ce9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620082fc9062009cd1565b80156200834d5780601f1062008321576101008083540402835291602001916200834d565b820191906000526020600020905b8154815290600101906020018083116200832f57829003601f168201915b50505050508152602001600182018054620083689062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620083969062009cd1565b8015620083e75780601f10620083bb57610100808354040283529160200191620083e7565b820191906000526020600020905b815481529060010190602001808311620083c957829003601f168201915b50505050508152602001600282018054620084029062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620084309062009cd1565b8015620084815780601f10620084555761010080835404028352916020019162008481565b820191906000526020600020905b8154815290600101906020018083116200846357829003601f168201915b505050505081526020016003820180546200849c9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620084ca9062009cd1565b80156200851b5780601f10620084ef576101008083540402835291602001916200851b565b820191906000526020600020905b815481529060010190602001808311620084fd57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620085a75750505050508152505090508060e001518015620085f2575082600001516001600160a01b031683602001516001600160a01b031614155b15620086015750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af11580156200865d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062008684919062009d80565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b757833981519152838760600151604051620086d0929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008733929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b926200876d9290919060040162009d07565b600060405180830381600087803b1580156200878857600080fd5b505af11580156200879d573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff1615620087d5575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200884b919062009d80565b101562005a2d576200886d81603d544262008867919062009d6a565b62007dee565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b158015620088b457600080fd5b505af1158015620088c9573d6000803e3d6000fd5b505050505050565b600062005047825490565b600062005044838362009134565b60008082905060038151108062008902575060098151115b15620089115750600092915050565b60418160008151811062008929576200892962009e56565b016020015160f81c10806200895b5750605a8160008151811062008951576200895162009e56565b016020015160f81c115b156200896a5750600092915050565b60015b815181101562008a825760308282815181106200898e576200898e62009e56565b016020015160f81c1080620089bf57506039828281518110620089b557620089b562009e56565b016020015160f81c115b801562008a0f57506041828281518110620089de57620089de62009e56565b016020015160f81c108062008a0f5750605a82828151811062008a055762008a0562009e56565b016020015160f81c115b801562008a5f5750606182828151811062008a2e5762008a2e62009e56565b016020015160f81c108062008a5f5750607a82828151811062008a555762008a5562009e56565b016020015160f81c115b1562008a6f575060009392505050565b62008a7a8162009ebb565b90506200896d565b5060019392505050565b600060308414158062008aa0575060608214155b1562008aaf5750600062008bb3565b60008686864660405160200162008aca94939291906200a619565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b249594939291906200a646565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008b6e57600080fd5b5060008160008151811062008b875762008b8762009e56565b016020015160f81c90506001811462008ba95760009550505050505062008bb3565b6001955050505050505b95945050505050565b60008061200361dead60405162008bd390620093bf565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c16573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008c4a9291906200a67e565b6000604051808303818588803b15801562008c6457600080fd5b505af115801562008c79573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b600062005044836001600160a01b03841662009161565b600054610100900460ff1662008d415760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001133565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008d7b603f8262007d41565b62008d995760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008dfd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e23919062009d80565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008e6b91815260200190565b60405180910390a350505050565b60008160405160200162008e8e91906200a42d565b604051602081830303815290604052805190602001208360405160200162008eb791906200a42d565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008f7582620091b3565b62008f7f57600080fd5b600062008f908360200151620091e6565b836020015162008fa1919062009d6a565b6040805180820190915293845260208401525090919050565b8051805160208201516000929162008fd29162009d6a565b836020015110915050919050565b604080518082019091526000808252602082015262008fff8262008fba565b6200900957600080fd5b602082015160006200901b8262009275565b905062009029818362009d6a565b60209485015260408051808201909152908152928301525090565b80516000906015146200905657600080fd5b62005047825b8051600090158015906200907257508151602110155b6200907c57600080fd5b60006200908d8360200151620091e6565b90508083600001511015620090e55760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001133565b8251600090620090f790839062009e26565b90506000808386602001516200910e919062009d6a565b90508051915060208310156200912b57826020036101000a820491505b50949350505050565b60008260000182815481106200914e576200914e62009e56565b9060005260206000200154905092915050565b6000818152600183016020526040812054620091aa5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562005047565b50600062005047565b80516000908103620091c757506000919050565b6020820151805160001a9060c082101562008a82575060009392505050565b8051600090811a6080811015620092005750600092915050565b60b88110806200921d575060c081108015906200921d575060f881105b156200922c5750600192915050565b60c0811015620092675762009244600160b86200a6a4565b620092539060ff168262009e26565b6200926090600162009d6a565b9392505050565b62009244600160f86200a6a4565b80516000908190811a6080811015620092925760019150620093b8565b60b8811015620092be57620092a960808262009e26565b620092b690600162009d6a565b9150620093b8565b60c08110156200933757600060b78203600186019550806020036101000a865104915060018101820193505080831015620093305760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b50620093b8565b60f88110156200934e57620092a960c08262009e26565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620093b65760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b505b5092915050565b610e96806200a6c183390190565b6001600160a01b03811681146200174b57600080fd5b600060208284031215620093f657600080fd5b81356200926081620093cd565b60008083601f8401126200941657600080fd5b5081356001600160401b038111156200942e57600080fd5b60208301915083602082850101111562007de757600080fd5b600080602083850312156200945b57600080fd5b82356001600160401b038111156200947257600080fd5b620094808582860162009403565b90969095509350505050565b600080600060408486031215620094a257600080fd5b833560ff81168114620094b457600080fd5b925060208401356001600160401b03811115620094d057600080fd5b620094de8682870162009403565b9497909650939450505050565b60005b8381101562009508578181015183820152602001620094ee565b50506000910152565b600081518084526200952b816020860160208601620094eb565b601f01601f19169290920160200192915050565b60208152600062005044602083018462009511565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200958f576200958f62009554565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620095c057620095c062009554565b604052919050565b60006001600160401b03821115620095e457620095e462009554565b50601f01601f191660200190565b6000620096096200960384620095c8565b62009595565b90508281528383830111156200961e57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156200964857600080fd5b81356001600160401b038111156200965f57600080fd5b8201601f810184136200967157600080fd5b6200968284823560208401620095f2565b949350505050565b600080604083850312156200969e57600080fd5b8235620096ab81620093cd565b946020939093013593505050565b80151581146200174b57600080fd5b60008060008060808587031215620096df57600080fd5b8435620096ec81620093cd565b93506020850135620096fe81620093cd565b92506040850135915060608501356200971781620096b9565b939692955090935050565b6001600160401b03811681146200174b57600080fd5b6000602082840312156200974b57600080fd5b8135620092608162009722565b600080604083850312156200976c57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620097b65781516001600160a01b0316875295820195908201906001016200978f565b509495945050505050565b608081526000620097d660808301876200977b565b82810360208481019190915286518083528782019282019060005b818110156200980f57845183529383019391830191600101620097f1565b5050848103604086015286518082528282019350600581901b8201830183890160005b838110156200986457601f198584030187526200985183835162009511565b9686019692509085019060010162009832565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e08112156200989a57600080fd5b8835620098a781620093cd565b975060208901356001600160401b0380821115620098c457600080fd5b620098d28c838d0162009403565b909950975060408b0135915080821115620098ec57600080fd5b620098fa8c838d0162009403565b90975095508591506060605f19840112156200991557600080fd5b60608b01945060c08b01359250808311156200993057600080fd5b505088016080818b0312156200994557600080fd5b8091505092959891949750929550565b600080604083850312156200996957600080fd5b82356200997681620093cd565b915060208301356200998881620096b9565b809150509250929050565b602081526000825160806020840152620099b160a084018262009511565b90506020840151601f1980858403016040860152620099d1838362009511565b92506040860151915080858403016060860152620099f0838362009511565b925060608601519150808584030160808601525062008bb3828262009511565b6000806000806040858703121562009a2757600080fd5b84356001600160401b038082111562009a3f57600080fd5b62009a4d8883890162009403565b9096509450602087013591508082111562009a6757600080fd5b5062009a768782880162009403565b95989497509550505050565b60008083601f84011262009a9557600080fd5b5081356001600160401b0381111562009aad57600080fd5b6020830191508360208260051b850101111562007de757600080fd5b60008060006040848603121562009adf57600080fd5b83356001600160401b0381111562009af657600080fd5b62009b048682870162009a82565b909450925050602084013562009b1a81620093cd565b809150509250925092565b60608152600062009b3a60608301866200977b565b828103602084015262009b4e81866200977b565b915050826040830152949350505050565b600082601f83011262009b7157600080fd5b6200504483833560208501620095f2565b60006020828403121562009b9557600080fd5b81356001600160401b038082111562009bad57600080fd5b908301906080828603121562009bc257600080fd5b62009bcc6200956a565b82358281111562009bdc57600080fd5b62009bea8782860162009b5f565b82525060208301358281111562009c0057600080fd5b62009c0e8782860162009b5f565b60208301525060408301358281111562009c2757600080fd5b62009c358782860162009b5f565b60408301525060608301358281111562009c4e57600080fd5b62009c5c8782860162009b5f565b60608301525095945050505050565b6000806000806040858703121562009c8257600080fd5b84356001600160401b038082111562009c9a57600080fd5b62009ca88883890162009a82565b9096509450602087013591508082111562009cc257600080fd5b5062009a768782880162009a82565b600181811c9082168062009ce657607f821691505b6020821081036200458a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009d6557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562005047576200504762009d31565b60006020828403121562009d9357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009dd15762009dd162009d9a565b826040830152949350505050565b60006020828403121562009df257600080fd5b81516200926081620096b9565b828152604081016004831062009e195762009e1962009d9a565b8260208301529392505050565b8181038181111562005047576200504762009d31565b808202811582820484141762005047576200504762009d31565b634e487b7160e01b600052603260045260246000fd5b60408152600062009e8160408301856200977b565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620093b857620093b862009d31565b60006001820162009ed05762009ed062009d31565b5060010190565b6000808335601e1984360301811262009eef57600080fd5b8301803591506001600160401b0382111562009f0a57600080fd5b60200191503681900382131562007de757600080fd5b601f82111562007fb057600081815260208120601f850160051c8101602086101562009f495750805b601f850160051c820191505b81811015620088c95782815560010162009f55565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009f995762009f9962009554565b62009fb18362009faa835462009cd1565b8362009f20565b6000601f84116001811462009fe4576000851562009fcf5750838201355b62009fdb868262009f6a565b8455506200765e565b600083815260209020601f19861690835b828110156200a017578685013582556020948501946001909201910162009ff5565b50868210156200a0355760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a053828362009ed7565b6001600160401b038111156200a06d576200a06d62009554565b6200a085816200a07e855462009cd1565b8562009f20565b6000601f8211600181146200a0b857600083156200a0a35750838201355b6200a0af848262009f6a565b8655506200a115565b600085815260209020601f19841690835b828110156200a0eb57868501358255602094850194600190920191016200a0c9565b50848210156200a1095760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a128602083018362009ed7565b6200a13881836001860162009f7f565b50506200a149604083018362009ed7565b6200a15981836002860162009f7f565b50506200a16a606083018362009ed7565b6200a17a81836003860162009f7f565b50505050565b81356200a18d8162009722565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a1ba8162009722565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a1fa8162009722565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096826020830184866200a227565b60006001600160401b038211156200a282576200a28262009554565b5060051b60200190565b600060208083850312156200a2a057600080fd5b82516001600160401b038111156200a2b757600080fd5b8301601f810185136200a2c957600080fd5b80516200a2da62009603826200a266565b81815260059190911b820183019083810190878311156200a2fa57600080fd5b928401925b828410156200a3255783516200a31581620093cd565b825292840192908401906200a2ff565b979650505050505050565b600060208083850312156200a34457600080fd5b82516001600160401b03808211156200a35c57600080fd5b818501915085601f8301126200a37157600080fd5b81516200a38262009603826200a266565b81815260059190911b830184019084810190888311156200a3a257600080fd5b8585015b838110156200a420578051858111156200a3c05760008081fd5b8601603f81018b136200a3d35760008081fd5b8781015160406200a3e86200960383620095c8565b8281528d828486010111156200a3fe5760008081fd5b6200a40f838c8301848701620094eb565b86525050509186019186016200a3a6565b5098975050505050505050565b600082516200a441818460208701620094eb565b9190910192915050565b60ff8416815260406020820152600062008bb36040830184866200a227565b6040815260006200a4806040830186886200a227565b82810360208401526200a3258185876200a227565b81516001600160401b038111156200a4b1576200a4b162009554565b6200a4c9816200a4c2845462009cd1565b8462009f20565b602080601f8311600181146200a4fd57600084156200a4e85750858301515b6200a4f4858262009f6a565b865550620088c9565b600085815260208120601f198616915b828110156200a52e578886015182559484019460019091019084016200a50d565b50858210156200a54d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a56d8162009cd1565b600182811680156200a58857600181146200a59e576200a5cf565b60ff19841687528215158302870194506200a5cf565b8760005260208060002060005b858110156200a5c65781548a8201529084019082016200a5ab565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a605576200a60562009d9a565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a65a818460208b01620094eb565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096829083018462009511565b60ff828116828216039081111562005047576200504762009d3156fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000001284214b9b9c85549ab3d2b972df0deef66ac2c9000000000000000000000000a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0000000000000000000000000980a75ecd1309ea12fa2ed87a8744fbfc9b863d5000000000000000000000000b71b214cb885500844365e95cd9942c7276e7fd800000000000000000000000035552c16704d214347f29fa77f77da6d75d7c752000000000000000000000000f474cf03cceff28abc65c9cbae594f725c80e12d00000000000000000000000096c5d20b2a975c050e4220be276ace4892f4b41a00000000000000000000000047788386d0ed6c748e03a53160b4b30ed3748cc5000000000000000000000000bdfbc016c1bd481f5d8ca6f754f4b200a7ed66ce000000000000000000000000372e4887005ec21a5aff9ff62eda9e7713e3643700000000000000000000000055c968cf3430f3ba0534ef49ff4b3fbc9086c7ce000000000000000000000000136bd6343049c9690569db79dcd9208a57d342ad000000000000000000000000977ecef7de795cd248d77fd0d080ce3a35dec013000000000000000000000000b334ced91dff560bc9b5b3c30ae613bf335f181324d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000308e82934ca974fdcd97f3309de967d3c9c43fa711a8d673af5d75465844bf8969c8d1948d903748ac7b8b1720fa64e50c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b973c2d38487e58fd6e145491b110080fb14ac915a0411fc78f19e09a399ddee0d20c63a75d8f930f1694544ad2dc01b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003089037a9ace3b590165ea1c0c5ac72bf600b7c88c1e435f41932c1132aae1bfa0bb68e46b96ccb12c3415e4d82af717d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2750ec6dded3dcdc2f351782310b0eadc077db59abca0f0cd26776e2e7acb9f3bce40b1fa5221fd1561226c6263cc5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b742ad4855bae330426b823e742da31f816cc83bc16d69a9134be0cfb4a1d17ec34f1b5b32d5c20440b8536b1e88f0f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096c9b86c3400e529bfe184056e257c07940bb664636f689e8d2027c834681f8f878b73445261034e946bb2d901b4b87800000000000000000000000000000000a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/StakingContract b/core/systemcontracts/feynman/chapel/StakingContract new file mode 100644 index 0000000000..ebd857ba55 --- /dev/null +++ b/core/systemcontracts/feynman/chapel/StakingContract @@ -0,0 +1 @@ +6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101b565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611020565b34801561078b57600080fd5b506104f661164d565b3480156107a057600080fd5b506104f6611653565b3480156107b557600080fd5b50610654611659565b3480156107ca57600080fd5b5061042161165e565b3480156107df57600080fd5b50610421611664565b3480156107f457600080fd5b5061042161166d565b34801561080957600080fd5b5061042161180d565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611813565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b0316611819565b34801561089c57600080fd5b50610654611834565b3480156108b157600080fd5b50610654611839565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183e565b3480156108f957600080fd5b506104f6611859565b34801561090e57600080fd5b5061065461185f565b34801561092357600080fd5b506104f6611864565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186a565b3480156109bd57600080fd5b50610654611b32565b3480156109d257600080fd5b506104f6611b37565b3480156109e757600080fd5b506104f6611b3d565b3480156109fc57600080fd5b50610a05611b43565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4c565b348015610a3a57600080fd5b506104f6611b52565b348015610a4f57600080fd5b506104b3611659565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b58565b348015610b2f57600080fd5b506106546122ea565b348015610b4457600080fd5b506104216122ef565b348015610b5957600080fd5b5061042161248c565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612497565b348015610ba957600080fd5b506104216124c4565b348015610bbe57600080fd5b506104f66124ca565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d0565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f3565b348015610c9357600080fd5b506104f661271e565b348015610ca857600080fd5b506104f6612724565b348015610cbd57600080fd5b5061042161272a565b348015610cd257600080fd5b50610654612737565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273c565b348015610d2c57600080fd5b506104f6612771565b348015610d4157600080fd5b50610421612777565b348015610d5657600080fd5b506104f661277d565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614800565b610db2614800565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481e565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b6127a8565b90506000610ef0610eeb836127f2565b612840565b90506000606060ff831660041415610f1557610f0b846128f7565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad7565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff166002141561106c576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109457506402540be4008106155b6110e5576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611128576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611176576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611231573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e8576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611231576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112a9576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130491859063ffffffff612df716565b9050801561134c57600254811161134c5760405162461bcd60e51b81526004018080602001828103825260258152602001806149be6025913960400191505060405180910390fd5b6000611363846402540be40063ffffffff612e8e16565b600254909150349060009061137f90839063ffffffff612ed716565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139b5790505090506113bb33612f19565b816000815181106113c857fe5b60200260200101819052506113e5886001600160a01b0316612f19565b816001815181106113f257fe5b602002602001018190525061140684612f3c565b8160028151811061141357fe5b60200260200101819052506060611433600261142e84612f4f565b612fd9565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148442620a8c0063ffffffff61305f16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c8876402540be40063ffffffff612e8e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152657818101518382015260200161150e565b50505050905090810190601f1680156115535780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bb573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ec573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bc576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611723576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b50509050806117c6576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff166118ed576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f561481e565b611937610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b905060008060606000805b61194b866130b9565b156119b6578061196857611961610eeb876127f2565b94506119ae565b80600114156119845761197d610eeb876127f2565b93506119ae565b80600214156119a95761199e611999876127f2565b6130da565b9250600191506119ae565b6119b6565b600101611942565b816119fc576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a058361314a565b611a48576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a54610ed684612783565b95506000611a64610eeb886127f2565b9050611a6e61481e565b611a77886130b9565b15611a9a57611a93610ed6611a8e6119998b6127f2565b612783565b9050611adb565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af757611af281888861319e565b611b25565b60ff821660021415611b0e57611af2818888613555565b60ff821660031415610f2a57611af2818888613822565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611baf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bef5760405162461bcd60e51b815260040180806020018281038252602e815260200180614934602e913960400191505060405180910390fd5b611c5084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b879050565b15611db65760208114611caa576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce891858580838501838280828437600092019190915250613c6e92505050565b90506003548110611d2a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614962602e913960400191505060405180910390fd5b6002548111611d6a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614990602e913960400191505060405180910390fd5b6402540be400810615611dae5760405162461bcd60e51b815260040180806020018281038252602c815260200180614908602c913960400191505060405180910390fd5b600155612258565b611e1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b879050565b15611f7c5760208114611e74576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb291858580838501838280828437600092019190915250613c6e92505050565b905080611ef05760405162461bcd60e51b8152600401808060200182810382526022815260200180614a126022913960400191505060405180910390fd5b6001548110611f305760405162461bcd60e51b815260040180806020018281038252602e815260200180614888602e913960400191505060405180910390fd5b6402540be400810615611f745760405162461bcd60e51b815260040180806020018281038252602f815260200180614859602f913960400191505060405180910390fd5b600255612258565b611fe084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b879050565b156120c2576020811461203a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207891858580838501838280828437600092019190915250613c6e92505050565b905060015481116120ba5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b66031913960400191505060405180910390fd5b600355612258565b61212484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b879050565b1561221b576020811461217e576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bc91858580838501838280828437600092019190915250613c6e92505050565b905060008111612213576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612258565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a2576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f8576040519150601f19603f3d011682016040523d82523d6000602084013e6123fd565b606091505b5050905080612445576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125105760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16612553576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314a92505050565b6125d5576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125dd61481e565b61261f610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b9050600061262f610eeb836127f2565b905061263961481e565b612642836130b9565b1561266057612659610ed6611a8e611999866127f2565b90506126a6565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c0576126bb81613c73565b6126ea565b60ff8216600214156126d5576126bb81613e8d565b60ff821660031415610f2a576126bb81613fb7565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278b61483e565b506040805180820190915281518152602082810190820152919050565b6127b061481e565b6127b98261411c565b6127c257600080fd5b60006127d18360200151614156565b60208085015160408051808201909152868152920190820152915050919050565b6127fa61483e565b612803826130b9565b61280c57600080fd5b6020820151600061281c826141b9565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285557508151602110155b61285e57600080fd5b600061286d8360200151614156565b905080836000015110156128c8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ee57826020036101000a820491505b50949350505050565b600060606000806000805b61290b876130b9565b1561295d578261292d57612926612921886127f2565b6142ec565b9150612952565b826001141561294d57612942610eeb886127f2565b905060019350612952565b61295d565b826001019250612902565b836129a3576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b5051905080612a3c57612a2e600484846065614306565b965096505050505050612ad2565b6001600160a01b038316600090815260066020526040902054612a65908363ffffffff61305f16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aee896130b9565b15612b785784612b0b57612b046129218a6127f2565b9350612b6d565b8460011415612b2757612b206129218a6127f2565b9250612b6d565b8460021415612b4757612b3c610eeb8a6127f2565b915060019550612b6d565b8460031415612b6857612b61612b5c8a6127f2565b614402565b9050612b6d565b612b78565b846001019450612ae5565b85612bbe576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b5051905080612c5957612c49600586856065614306565b9850985050505050505050612ad2565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9d908463ffffffff61305f16565b6001600160a01b0386166000908152600860205260409020558115612d8b576001600160a01b038516600090815260046020526040902054612ce5908463ffffffff612ed716565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d27908463ffffffff612ed716565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4b578181015183820152602001612e33565b50505050905090810190601f168015612e785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614446565b9392505050565b6000612ed083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df7565b60408051600560a21b8318601482015260348101909152606090612ed0816144ab565b60606124be612f4a83614501565b6144ab565b6060815160001415612f705750604080516000815260208101909152610df1565b606082600081518110612f7f57fe5b602002602001015190506000600190505b8351811015612fc057612fb682858381518110612fa957fe5b60200260200101516145e7565b9150600101612f90565b50612ed0612fd3825160c060ff16614664565b826145e7565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff25790505090506130158460ff16612f3c565b8160008151811061302257fe5b6020026020010181905250613036836144ab565b8160018151811061304357fe5b602002602001018190525061305781612f4f565b949350505050565b600082820183811015612ed0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c361483e565b505080518051602091820151919092015191011190565b80516060906130e857600080fd5b60006130f78360200151614156565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312e576020820181803683370190505b50905060008160200190506128ee84876020015101828561475c565b8051602080830191909120600e546000908152600a909252604082205480821461317957600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b0886130b9565b1561321957836131cd576131c6612921896127f2565b925061320e565b83600114156131e9576131e2612921896127f2565b915061320e565b8360021415613209576131fe610eeb896127f2565b90506001945061320e565b613219565b8360010193506131a7565b8461325f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613276826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bc5760ff8716156132e9576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613312908263ffffffff61305f16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613354908263ffffffff61305f16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354a565b60ff881661350e576001600160a01b0384166000908152600860205260409020546133ed908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344957600080fd5b505af115801561345d573d6000803e3d6000fd5b505050506040513d602081101561347357600080fd5b50516134bc576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354a565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613567886130b9565b156135d057836135845761357d612921896127f2565b92506135c5565b83600114156135a057613599612921896127f2565b91506135c5565b83600214156135c0576135b5610eeb896127f2565b9050600194506135c5565b6135d0565b83600101935061355e565b84613616576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362d826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ac5760ff8716156136a0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136c9908263ffffffff612ed716565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370b908263ffffffff612ed716565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374442620a8c0063ffffffff61305f16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354a565b60ff881661350e576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354a565b6000806000806000805b613835896130b9565b156138ba57846138525761384b6129218a6127f2565b93506138af565b846001141561386e576138676129218a6127f2565b92506138af565b846002141561388a576138836129218a6127f2565b91506138af565b84600314156138aa5761389f610eeb8a6127f2565b9050600195506138af565b6138ba565b84600101945061382c565b85613900576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613917826402540be40063ffffffff6147a716565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aea5760ff88161561398a576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c0908263ffffffff612ed716565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fc908261305f565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3542620a8c0063ffffffff61305f16565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7842620a8c0063ffffffff61305f16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7b565b60ff891661350e576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbc5780518252601f199092019160209182019101613b9d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2a5780518252601f199092019160209182019101613c0b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c85866130b9565b15613cee5783613ca257613c9b612921876127f2565b9250613ce3565b8360011415613cbe57613cb7612921876127f2565b9150613ce3565b8360021415613cde57613cd3610eeb876127f2565b905060019450613ce3565b613cee565b836001019350613c7c565b84613d34576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4b826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d89908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de557600080fd5b505af1158015613df9573d6000803e3d6000fd5b505050506040513d6020811015613e0f57600080fd5b5051613e58576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613e9f866130b9565b15613f085783613ebc57613eb5612921876127f2565b9250613efd565b8360011415613ed857613ed1612921876127f2565b9150613efd565b8360021415613ef857613eed610eeb876127f2565b905060019450613efd565b613f08565b836001019350613e96565b84613f4e576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fca876130b9565b1561404f5784613fe757613fe0612921886127f2565b9350614044565b846001141561400357613ffc612921886127f2565b9250614044565b846002141561401f57614018612921886127f2565b9150614044565b846003141561403f57614034610eeb886127f2565b905060019550614044565b61404f565b846001019450613fc1565b85614095576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412d57506000610df1565b6020820151805160001a9060c082101561414c57600092505050610df1565b5060019392505050565b8051600090811a6080811015614170576000915050610df1565b60b881108061418b575060c0811080159061418b575060f881105b1561419a576001915050610df1565b60c08110156141ae5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d457600191506142e5565b60b88110156141e957607e19810191506142e5565b60c081101561426357600060b78203600186019550806020036101000a86510491506001810182019350508083101561425d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e5565b60f88110156142785760be19810191506142e5565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fd57600080fd5b6124be82612840565b6000606061431f846402540be40063ffffffff612e8e16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433b57905050905061435e8760ff16612f3c565b8160008151811061436b57fe5b6020026020010181905250614388866001600160a01b0316612f19565b8160018151811061439557fe5b60200260200101819052506143a985612f3c565b816002815181106143b657fe5b60200260200101819052506143d08463ffffffff16612f3c565b816003815181106143dd57fe5b602002602001018190525060606143f382612f4f565b94989497509395505050505050565b805160009060011461441357600080fd5b6020820151805160001a9081158061442b5750608082145b1561443b57600092505050610df1565b600192505050610df1565b600081836144955760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4b578181015183820152602001612e33565b5060008385816144a157fe5b0495945050505050565b6060815160011480156144dd5750607f60f81b826000815181106144cb57fe5b01602001516001600160f81b03191611155b156144e9575080610df1565b6124be6144fb8351608060ff16614664565b836145e7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661454557506018614569565b6fffffffffffffffffffffffffffffffff19841661456557506010614569565b5060005b602081101561459f5781818151811061457e57fe5b01602001516001600160f81b031916156145975761459f565b600101614569565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d4576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614618578051835260209283019201614600565b50855184518101855292509050808201602086015b8183101561464557805183526020928301920161462d565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b4576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470e5782840160f81b816000815181106146f057fe5b60200101906001600160f81b031916908160001a90535090506124be565b606061471985614501565b90508381510160370160f81b8260008151811061473257fe5b60200101906001600160f81b031916908160001a90535061475382826145e7565b95945050505050565b80614766576126ee565b5b60208110614786578251825260209283019290910190601f1901614767565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b6575060006124be565b828202828482816147c357fe5b0414612ed05760405162461bcd60e51b81526004018080602001828103825260218152602001806148e76021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483161483e565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/TimelockContract b/core/systemcontracts/feynman/chapel/TimelockContract new file mode 100644 index 0000000000..b2c6f00d50 --- /dev/null +++ b/core/systemcontracts/feynman/chapel/TimelockContract @@ -0,0 +1 @@ +6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa5565b61064a565b005b34801561022157600080fd5b50610235610230366004611b19565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258983398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254983398151915281565b6102136102aa366004611b43565b610739565b3480156102bb57600080fd5b506102356102ca366004611bae565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7c565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611bae565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611bae565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce3565b610802565b34801561039f57600080fd5b506102356103ae366004611bae565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce3565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611bae565b6108c8565b34801561042657600080fd5b50610213610435366004611bae565b6108df565b34801561044657600080fd5b5061026c610455366004611b43565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d53565b610b73565b34801561049b57600080fd5b5061026c60008051602061256983398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce3565b610cf4565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e04565b610d1f565b34801561051257600080fd5b5061026c6000805160206125a983398151915281565b34801561053457600080fd5b5061026c610543366004611e6f565b610f09565b34801561055457600080fd5b506102fa610563366004611f96565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611bae565b610f4e565b3480156105a057600080fd5b5061026c6105af366004611bae565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce3565b611011565b6102136105ef366004611e6f565b611036565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa61062436600461203f565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b600080516020612569833981519152610662816111ae565b6000610672898989898989610983565b905061067e81846111b8565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cc565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a7565b92915050565b600080516020612589833981519152610753816000610cf4565b6107615761076181336112dc565b6000610771888888888888610983565b905061077d8185611335565b610789888888886113d0565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c19493929190612109565b60405180910390a36107d2816114a3565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111ae565b61082783836114dc565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611562565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cc565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213b565b60200260200101906001600160a01b031690816001600160a01b031681525050610b2961546082836120046115c9565b508015610b70576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b600080516020612569833981519152610b8b816111ae565b888714610baa5760405162461bcd60e51b81526004016108b190612151565b888514610bc95760405162461bcd60e51b81526004016108b190612151565b6000610bdb8b8b8b8b8b8b8b8b610f09565b9050610be781846111b8565b60005b8a811015610ca55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2757610c2761213b565b9050602002016020810190610c3c9190612194565b8d8d86818110610c4e57610c4e61213b565b905060200201358c8c87818110610c6757610c6761213b565b9050602002810190610c7991906121af565b8c8b604051610c8d969594939291906120cc565b60405180910390a3610c9e8161220b565b9050610bea565b508315610ce757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cde91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4557604051630f22c43960e41b815261100760048201526024016108b1565b610da8604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116029050565b15610ea55760208114610dd65783838383604051630a5a604160e01b81526004016108b19493929190612224565b604080516020601f8401819004810282018101909252828152600091610e1791858580838501838280828437600092019190915250929392505061165b9050565b9050801580610e2857506212750081115b15610e4e5784848484604051630a5a604160e01b81526004016108b19493929190612224565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8757600080fd5b505af1158015610e9b573d6000803e3d6000fd5b5050505050610ec6565b838383836040516325ee20d560e21b81526004016108b19493929190612224565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efb9493929190612224565b60405180910390a150505050565b60008888888888888888604051602001610f2a9897969594939291906122d9565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125a9833981519152610f66816111ae565b610f6f826108c8565b610fd55760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102c816111ae565b6108278383611562565b600080516020612589833981519152611050816000610cf4565b61105e5761105e81336112dc565b87861461107d5760405162461bcd60e51b81526004016108b190612151565b87841461109c5760405162461bcd60e51b81526004016108b190612151565b60006110ae8a8a8a8a8a8a8a8a610f09565b90506110ba8185611335565b60005b898110156111985760008b8b838181106110d9576110d961213b565b90506020020160208101906110ee9190612194565b905060008a8a848181106111045761110461213b565b9050602002013590503660008a8a868181106111225761112261213b565b905060200281019061113491906121af565b91509150611144848484846113d0565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117b9493929190612109565b60405180910390a350505050806111919061220b565b90506110bd565b506111a2816114a3565b50505050505050505050565b610b7081336112dc565b6111c18261082c565b156112265760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112875760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b611291814261237a565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e68282610cf4565b6108c4576112f381611660565b6112fe836020611672565b60405160200161130f9291906123b1565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612426565b61133e826107dc565b61135a5760405162461bcd60e51b81526004016108b190612459565b80158061137557506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ed9291906124a3565b60006040518083038185875af1925050503d806000811461142a576040519150601f19603f3d011682016040523d82523d6000602084013e61142f565b606091505b505090508061149c5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ac816107dc565b6114c85760405162461bcd60e51b81526004016108b190612459565b600090815260976020526040902060019055565b6114e68282610cf4565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156c8282610cf4565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115f05760405162461bcd60e51b81526004016108b1906124b3565b6115fc8484848461180d565b50505050565b60008160405160200161161591906124fe565b604051602081830303815290604052805190602001208360405160200161163c91906124fe565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b6060600061168183600261251a565b61168c90600261237a565b6001600160401b038111156116a3576116a3611bc7565b6040519080825280601f01601f1916602001820160405280156116cd576020820181803683370190505b509050600360fc1b816000815181106116e8576116e861213b565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117175761171761213b565b60200101906001600160f81b031916908160001a905350600061173b84600261251a565b61174690600161237a565b90505b60018111156117be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177a5761177a61213b565b1a60f81b8282815181106117905761179061213b565b60200101906001600160f81b031916908160001a90535060049490941c936117b781612531565b9050611749565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118345760405162461bcd60e51b81526004016108b1906124b3565b61184c600080516020612549833981519152806119ec565b6118726000805160206125698339815191526000805160206125498339815191526119ec565b6118986000805160206125898339815191526000805160206125498339815191526119ec565b6118be6000805160206125a98339815191526000805160206125498339815191526119ec565b6118d660008051602061254983398151915230611a37565b6001600160a01b038116156118fd576118fd60008051602061254983398151915282611a37565b60005b835181101561196e5761193a60008051602061256983398151915285838151811061192d5761192d61213b565b6020026020010151611a37565b61195e6000805160206125a983398151915285838151811061192d5761192d61213b565b6119678161220b565b9050611900565b5060005b82518110156119af5761199f60008051602061258983398151915284838151811061192d5761192d61213b565b6119a88161220b565b9050611972565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efb565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114dc565b80356001600160a01b0381168114611a5857600080fd5b919050565b60008083601f840112611a6f57600080fd5b5081356001600160401b03811115611a8657600080fd5b602083019150836020828501011115611a9e57600080fd5b9250929050565b600080600080600080600060c0888a031215611ac057600080fd5b611ac988611a41565b96506020880135955060408801356001600160401b03811115611aeb57600080fd5b611af78a828b01611a5d565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2b57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5c57600080fd5b611b6587611a41565b95506020870135945060408701356001600160401b03811115611b8757600080fd5b611b9389828a01611a5d565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bc057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0557611c05611bc7565b604052919050565b600082601f830112611c1e57600080fd5b81356001600160401b03811115611c3757611c37611bc7565b611c4a601f8201601f1916602001611bdd565b818152846020838601011115611c5f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9257600080fd5b611c9b85611a41565b9350611ca960208601611a41565b92506040850135915060608501356001600160401b03811115611ccb57600080fd5b611cd787828801611c0d565b91505092959194509250565b60008060408385031215611cf657600080fd5b82359150611d0660208401611a41565b90509250929050565b60008083601f840112611d2157600080fd5b5081356001600160401b03811115611d3857600080fd5b6020830191508360208260051b8501011115611a9e57600080fd5b600080600080600080600080600060c08a8c031215611d7157600080fd5b89356001600160401b0380821115611d8857600080fd5b611d948d838e01611d0f565b909b50995060208c0135915080821115611dad57600080fd5b611db98d838e01611d0f565b909950975060408c0135915080821115611dd257600080fd5b50611ddf8c828d01611d0f565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1a57600080fd5b84356001600160401b0380821115611e3157600080fd5b611e3d88838901611a5d565b90965094506020870135915080821115611e5657600080fd5b50611e6387828801611a5d565b95989497509550505050565b60008060008060008060008060a0898b031215611e8b57600080fd5b88356001600160401b0380821115611ea257600080fd5b611eae8c838d01611d0f565b909a50985060208b0135915080821115611ec757600080fd5b611ed38c838d01611d0f565b909850965060408b0135915080821115611eec57600080fd5b50611ef98b828c01611d0f565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2857600080fd5b813560206001600160401b03821115611f4357611f43611bc7565b8160051b611f52828201611bdd565b9283528481018201928281019087851115611f6c57600080fd5b83870192505b84831015611f8b57823582529183019190830190611f72565b979650505050505050565b600080600080600060a08688031215611fae57600080fd5b611fb786611a41565b9450611fc560208701611a41565b935060408601356001600160401b0380821115611fe157600080fd5b611fed89838a01611f17565b9450606088013591508082111561200357600080fd5b61200f89838a01611f17565b9350608088013591508082111561202557600080fd5b5061203288828901611c0d565b9150509295509295909350565b600080600080600060a0868803121561205757600080fd5b61206086611a41565b945061206e60208701611a41565b9350604086013592506060860135915060808601356001600160401b0381111561209757600080fd5b61203288828901611c0d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f460a0830186886120a3565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121316060830184866120a3565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a657600080fd5b6107fb82611a41565b6000808335601e198436030181126121c657600080fd5b8301803591506001600160401b038211156121e057600080fd5b602001915036819003821315611a9e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221d5761221d6121f5565b5060010190565b6040815260006122386040830186886120a3565b8281036020840152611f8b8185876120a3565b818352600060208085019450848460051b86018460005b878110156122cc5783830389528135601e1988360301811261228357600080fd5b870185810190356001600160401b0381111561229e57600080fd5b8036038213156122ad57600080fd5b6122b88582846120a3565b9a87019a9450505090840190600101612262565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561231a576001600160a01b0361230584611a41565b168252602092830192909101906001016122ec565b5083810360208501528881526001600160fb1b0389111561233a57600080fd5b8860051b9150818a60208301370182810360209081016040850152612362908201878961224b565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f5565b60005b838110156123a8578181015183820152602001612390565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e981601785016020880161238d565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241a81602884016020880161238d565b01602801949350505050565b602081526000825180602084015261244581604085016020870161238d565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161251081846020870161238d565b9190910192915050565b8082028115828204841417610733576107336121f5565b600081612540576125406121f5565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/TokenHubContract b/core/systemcontracts/feynman/chapel/TokenHubContract new file mode 100644 index 0000000000..a6c31bfe15 --- /dev/null +++ b/core/systemcontracts/feynman/chapel/TokenHubContract @@ -0,0 +1 @@ +6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113d9565b34801561081957600080fd5b506107776113df565b34801561082e57600080fd5b506106366113e4565b34801561084357600080fd5b506104d06113ef565b34801561085857600080fd5b506104d06113f5565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fb565b34801561089757600080fd5b50610636611416565b3480156108ac57600080fd5b5061077761141f565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611424565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118f9565b348015610a0257600080fd5b506107776118ff565b348015610a1757600080fd5b50610636611904565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190a565b348015610a5657600080fd5b506104d061198b565b348015610a6b57600080fd5b50610777611991565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611996565b348015610abf57600080fd5b506104d0611c46565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4c565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d94565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efd565b348015610bd157600080fd5b50610636611f83565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f8a565b348015610c1f57600080fd5b50610777612147565b348015610c3457600080fd5b5061063661214c565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612158565b348015610c8257600080fd5b506104d0612296565b348015610c9757600080fd5b506104d061229c565b348015610cac57600080fd5b506107776122a2565b348015610cc157600080fd5b506109cd6122a7565b348015610cd657600080fd5b506107776122b0565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b5565b348015610d3257600080fd5b506104d0612335565b348015610d4757600080fd5b506104d061233b565b348015610d5c57600080fd5b506104a26122a2565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612341565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e9565b348015610e7557600080fd5b50610636612869565b348015610e8a57600080fd5b50610636612873565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612879565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288b565b348015610f0557600080fd5b506104d06128a6565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ac565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297c565b348015610fda57600080fd5b506104d0612c50565b348015610fef57600080fd5b506104d0612c56565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5c565b34801561102e57600080fd5b50610486612cfc565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9c565b34801561107657600080fd5b50610777612dae565b34801561108b57600080fd5b50610777612db3565b3480156110a057600080fd5b50610777612db8565b3480156110b557600080fd5b506104d0612dbd565b3480156110ca57600080fd5b50610636612dc3565b3480156110df57600080fd5b50610636612dc9565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd7565b34801561112757600080fd5b506104d0612efe565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0492505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b606181565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146a576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b8685146114a85760405162461bcd60e51b815260040180806020018281038252603b815260200180615357603b913960400191505060405180910390fd5b8683146114e65760405162461bcd60e51b815260040180806020018281038252603f815260200180615269603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115325760405162461bcd60e51b81526004018080602001828103825260248152602001806151e56024913960400191505060405180910390fd5b6402540be4003406156115765760405162461bcd60e51b815260040180806020018281038252604081526020018061545a6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115a9578160200160208202803683370190505b50905060005b84811015611684576402540be4008b8b838181106115c957fe5b90506020020135816115d757fe5b06156116145760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a8603c913960400191505060405180910390fd5b6116398b8b8381811061162357fe5b905060200201358561302890919063ffffffff16565b93506116656402540be4008c8c8481811061165057fe5b9050602002013561308290919063ffffffff16565b82828151811061167157fe5b60209081029190910101526001016115af565b506001546116a99061169c908663ffffffff6130c416565b849063ffffffff61302816565b3410156116e75760405162461bcd60e51b81526004018080602001828103825260568152602001806154046056913960600191505060405180910390fd5b6116f7348463ffffffff61311d16565b9150611701615023565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c58461315f565b6117da876402540be40063ffffffff61308216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611838578181015183820152602001611820565b50505050905090810190601f1680156118655780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194c5760405162461bcd60e51b815260040180806020018281038252603381526020018061513d6033913960400191505060405180910390fd5b8115611983576040516120019083156108fc029084906000818181858888f19350505050158015611981573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119db576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361300014611a1b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a625760405162461bcd60e51b81526004018080602001828103825260358152602001806152096035913960400191505060405180910390fd5b60006221272160e91b8414611bcc576000848152600460205260409020546001600160a01b031680611ad5576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c41565b6001600160a01b038116600090815260026020526040902054611af8848261341a565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4357600080fd5b505afa158015611b57573d6000803e3d6000fd5b505050506040513d6020811015611b6d57600080fd5b50511015611bb9576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc58683858861345a565b5050611c3f565b611be1826402540be40063ffffffff6130c416565b905080471015611c2f576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3d8582848761345a565b505b505b505050565b61200381565b60005460ff16611c91576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361200014611cd15760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f492505050565b611c41565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd45760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b60006221272160e91b8314611e3f57506000828152600460205260409020546001600160a01b031680611e3f576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eaa576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3d5760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b6201518081565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc457600080fd5b505afa158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50516001600160a01b0316331461204c576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b6000821161209a576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120f0576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219e576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33611005146121de5760405162461bcd60e51b815260040180806020018281038252602f815260200180615170602f913960400191505060405180910390fd5b60004783106121ed57476121ef565b825b9050670de0b6b3a764000081111561220b576000915050612290565b801561228d576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612247573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fb576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123815760405162461bcd60e51b815260040180806020018281038252602e815260200180615305602e913960400191505060405180910390fd5b602081146123d6576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124de576020820151670de0b6b3a7640000811180159061248557506402540be4008106155b6124d6576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612754565b61255287878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f64000000000000000000602082015291506135509050565b156125ee57604080516020601f87018190048102820181019092528581526000916125959188888083850183828082843760009201919091525061363792505050565b905062093a808111156125e6576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612754565b61265a87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b602082015291506135509050565b1561271757604080516020601f870181900481028201810190925285815260009161269d9188888083850183828082843760009201919091525061363792505050565b905068056bc75e2d631000008110156126e75760405162461bcd60e51b815260040180806020018281038252602281526020018061519f6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612754565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128295760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f1576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146129315760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363c92505050565b60085460ff16600214156129c8576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a40576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a99576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0c576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b505080915050612b9f565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6f57600080fd5b5087f1158015612b83573d6000803e3d6000fd5b50505050506040513d6020811015612b9a57600080fd5b505190505b80612bf1576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf4576040516120029083156108fc029084906000818181858888f19350505050158015612cea573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d54576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6757828160ff1681518110612e3b57fe5b01602001516001600160f81b03191615612e5a57816001019150612e5f565b612e67565b600101612e20565b5060608160ff166040519080825280601f01601f191660200182016040528015612e98576020820181803683370190505b50905060005b8260ff168160ff161015612ef457838160ff1681518110612ebb57fe5b602001015160f81c60f81b828260ff1681518110612ed557fe5b60200101906001600160f81b031916908160001a905350600101612e9e565b5095945050505050565b61100481565b6060612f0e61506f565b6000612f1984613733565b9150915080612f6f576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f7a83613872565b905063ffffffff81161561300e576040808401516020808601516001600160a01b03166000908152600290915291822054612fb59190613bd8565b9050612fbf6150a4565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300281613c11565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ced565b6000826130d357506000612290565b828202828482816130e057fe5b041461228d5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e46021913960400191505060405180910390fd5b600061228d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8f565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161317a575050835190915061319c90613de9565b816000815181106131a957fe5b60200260200101819052506131ca83602001516001600160a01b0316613dfc565b816001815181106131d757fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322257816020015b606081526020019060019003908161320d5790505b50905060005b8281101561326f576132508660400151828151811061324357fe5b6020026020010151613de9565b82828151811061325c57fe5b6020908102919091010152600101613228565b5061327981613e1f565b8360028151811061328657fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c757816020015b60608152602001906001900390816132b25790505b50905060005b8381101561331d576132fe876060015182815181106132e857fe5b60200260200101516001600160a01b0316613dfc565b82828151811061330a57fe5b60209081029190910101526001016132cd565b5061332781613e1f565b8460038151811061333457fe5b602002602001018190525060608360405190808252806020026020018201604052801561337557816020015b60608152602001906001900390816133605790505b50905060005b848110156133b557613396886080015182815181106132e857fe5b8282815181106133a257fe5b602090810291909101015260010161337b565b506133bf81613e1f565b856004815181106133cc57fe5b60200260200101819052506133ee8760a0015167ffffffffffffffff16613de9565b856005815181106133fb57fe5b602002602001018190525061340f85613e1f565b979650505050505050565b600060088211156134435761343c836007198401600a0a63ffffffff6130c416565b9050612290565b61228d836008849003600a0a63ffffffff61308216565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613491908463ffffffff61302816565b81554262015180016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134fc6150cb565b600061350783613ea9565b91509150806135475760405162461bcd60e51b81526004018080602001828103825260248152602001806153336024913960400191505060405180910390fd5b611c4182614074565b6000816040516020018082805190602001908083835b602083106135855780518252601f199092019160209182019101613566565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f35780518252601f1990920191602091820191016135d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613644615023565b600061364f836144f8565b915091508061368f5760405162461bcd60e51b81526004018080602001828103825260248152602001806151c16024913960400191505060405180910390fd5b6136976150cb565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613718576136f5856040015182815181106136e757fe5b60200260200101518361341a565b8560400151828151811061370557fe5b60209081029190910101526001016136c7565b506080840151604083015260056060830152611c3d82614074565b61373b61506f565b600061374561506f565b61374d615102565b61375e6137598661475c565b614781565b90506000805b61376d836147cb565b15613865578061378f57613788613783846147ec565b61483a565b845261385d565b80600114156137bc576137a96137a4846147ec565b6148f1565b6001600160a01b0316602085015261385d565b80600214156137db576137d1613783846147ec565b604085015261385d565b8060031415613803576137f06137a4846147ec565b6001600160a01b0316606085015261385d565b806004141561382b576138186137a4846147ec565b6001600160a01b0316608085015261385d565b806005141561385857613840613783846147ec565b67ffffffffffffffff1660a08501526001915061385d565b613865565b600101613764565b5091935090915050915091565b60208101516000906001600160a01b03166139b6578160a0015167ffffffffffffffff164211156138a5575060016113b2565b81604001514710156138b9575060036113b2565b6138c28261490b565b61393757606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391d576040519150601f19603f3d011682016040523d82523d6000602084013e613922565b606091505b50509050806139355750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d4575060016113b2565b81516020808401516001600160a01b031660009081526003909152604090205414613a01575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a5157600080fd5b5086fa158015613a65573d6000803e3d6000fd5b50505050506040513d6020811015613a7c57600080fd5b50516040840151909150811015613a975750600390506113b2565b613aa08361490b565b613b5757600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1557600080fd5b5087f1158015613b29573d6000803e3d6000fd5b50505050506040513d6020811015613b4057600080fd5b5051905080613b555750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bfa5761343c836007198401600a0a63ffffffff61308216565b61228d836008849003600a0a63ffffffff6130c416565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c2c5750508351909150613c4e90613de9565b81600081518110613c5b57fe5b6020026020010181905250613c738360200151613de9565b81600181518110613c8057fe5b6020026020010181905250613ca183604001516001600160a01b0316613dfc565b81600281518110613cae57fe5b6020026020010181905250613ccc836060015163ffffffff16613de9565b81600381518110613cd957fe5b602002602001018190525061126281613e1f565b60008183613d795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3e578181015183820152602001613d26565b50505050905090810190601f168015613d6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8557fe5b0495945050505050565b60008184841115613de15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3e578181015183820152602001613d26565b505050900390565b6060612290613df783614a79565b614b5f565b60408051600560a21b831860148201526034810190915260609061126281614b5f565b6060815160001415613e4057506040805160008152602081019091526113b2565b606082600081518110613e4f57fe5b602002602001015190506000600190505b8351811015613e9057613e8682858381518110613e7957fe5b6020026020010151614bb1565b9150600101613e60565b50611262613ea3825160c060ff16614c2e565b82614bb1565b613eb16150cb565b6000613ebb6150cb565b613ec3615102565b613ecf6137598661475c565b90506000805b613ede836147cb565b156138655780613f0457613ef46137a4846147ec565b6001600160a01b0316845261406c565b8060011415613fa5576060613f20613f1b856147ec565b614d26565b90508051604051908082528060200260200182016040528015613f4d578160200160208202803683370190505b50602086015260005b8151811015613f9e57613f7b828281518110613f6e57fe5b602002602001015161483a565b86602001518281518110613f8b57fe5b6020908102919091010152600101613f56565b505061406c565b8060021415614047576060613fbc613f1b856147ec565b90508051604051908082528060200260200182016040528015613fe9578160200160208202803683370190505b50604086015260005b8151811015613f9e5761401782828151811061400a57fe5b60200260200101516148f1565b8660400151828151811061402757fe5b6001600160a01b0390921660209283029190910190910152600101613ff2565b80600314156138585761405c613783846147ec565b63ffffffff166060850152600191505b600101613ed5565b80516001600160a01b031661429e5760005b816020015151811015614298576000826040015182815181106140a557fe5b60200260200101516001600160a01b0316612710846020015184815181106140c957fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614111576040519150601f19603f3d011682016040523d82523d6000602084013e614116565b606091505b50509050806141d9577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415557fe5b60200260200101518560200151858151811061416d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428f565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420f57fe5b60200260200101518560200151858151811061422757fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614086565b506144f5565b60005b8160200151518110156144f357600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d657fe5b6020026020010151866020015186815181106142ee57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434557600080fd5b5087f1158015614359573d6000803e3d6000fd5b50505050506040513d602081101561437057600080fd5b505190508015614434577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b057fe5b6020026020010151856020015185815181106143c857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144ea565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446a57fe5b60200260200101518560200151858151811061448257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a1565b505b50565b614500615023565b600061450a615023565b614512615102565b61451e6137598661475c565b90506000805b61452d836147cb565b15613865578061454a57614543613783846147ec565b8452614754565b80600114156145725761455f6137a4846147ec565b6001600160a01b03166020850152614754565b8060021415614601576060614589613f1b856147ec565b905080516040519080825280602002602001820160405280156145b6578160200160208202803683370190505b50604086015260005b81518110156145fa576145d7828281518110613f6e57fe5b866040015182815181106145e757fe5b60209081029190910101526001016145bf565b5050614754565b8060031415614696576060614618613f1b856147ec565b90508051604051908082528060200260200182016040528015614645578160200160208202803683370190505b50606086015260005b81518110156145fa5761466682828151811061400a57fe5b8660600151828151811061467657fe5b6001600160a01b039092166020928302919091019091015260010161464e565b806004141561472b5760606146ad613f1b856147ec565b905080516040519080825280602002602001820160405280156146da578160200160208202803683370190505b50608086015260005b81518110156145fa576146fb82828151811061400a57fe5b8660800151828151811061470b57fe5b6001600160a01b03909216602092830291909101909101526001016146e3565b806005141561385857614740613783846147ec565b67ffffffffffffffff1660a0850152600191505b600101614524565b614764615122565b506040805180820190915281518152602082810190820152919050565b614789615102565b61479282614df7565b61479b57600080fd5b60006147aa8360200151614e31565b60208085015160408051808201909152868152920190820152915050919050565b60006147d5615122565b505080518051602091820151919092015191011190565b6147f4615122565b6147fd826147cb565b61480657600080fd5b6020820151600061481682614e94565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484f57508151602110155b61485857600080fd5b60006148678360200151614e31565b905080836000015110156148c2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e857826020036101000a820491505b50949350505050565b805160009060151461490257600080fd5b6122908261483a565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149445750600554155b156149865760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b45750808360400151105b156149c35760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a099163ffffffff61302816565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614abd57506018614ae1565b6fffffffffffffffffffffffffffffffff198416614add57506010614ae1565b5060005b6020811015614b1757818181518110614af657fe5b01602001516001600160f81b03191615614b0f57614b17565b600101614ae1565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b4c576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b915750607f60f81b82600081518110614b7f57fe5b01602001516001600160f81b03191611155b15614b9d5750806113b2565b612290614baf8351608060ff16614c2e565b835b6060806040519050835180825260208201818101602087015b81831015614be2578051835260209283019201614bca565b50855184518101855292509050808201602086015b81831015614c0f578051835260209283019201614bf7565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd85782840160f81b81600081518110614cba57fe5b60200101906001600160f81b031916908160001a9053509050612290565b6060614ce385614a79565b90508381510160370160f81b82600081518110614cfc57fe5b60200101906001600160f81b031916908160001a905350614d1d8282614bb1565b95945050505050565b6060614d3182614df7565b614d3a57600080fd5b6000614d4583614fc7565b9050606081604051908082528060200260200182016040528015614d8357816020015b614d70615122565b815260200190600190039081614d685790505b5090506000614d958560200151614e31565b60208601510190506000805b84811015614dec57614db283614e94565b9150604051806040016040528083815260200184815250848281518110614dd557fe5b602090810291909101015291810191600101614da1565b509195945050505050565b8051600090614e08575060006113b2565b6020820151805160001a9060c0821015614e27576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e4b5760009150506113b2565b60b8811080614e66575060c08110801590614e66575060f881105b15614e755760019150506113b2565b60c0811015614e895760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eaf5760019150614fc0565b60b8811015614ec457607e1981019150614fc0565b60c0811015614f3e57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f38576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fc0565b60f8811015614f535760be1981019150614fc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbe576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd8575060006113b2565b60008090506000614fec8460200151614e31565b602085015185519181019250015b8082101561501a5761500b82614e94565b82019150826001019250614ffa565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280615115615122565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/TokenRecoverPortalContract b/core/systemcontracts/feynman/chapel/TokenRecoverPortalContract new file mode 100644 index 0000000000..07ba29a12e --- /dev/null +++ b/core/systemcontracts/feynman/chapel/TokenRecoverPortalContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b6101186101443660046116a8565b610328565b61016c6101573660046116a8565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a3660046116a8565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116c3565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b81525081565b60405161012d919061173f565b6101186104b3565b610118610625565b60695461016c9060ff1681565b61011861022736600461179b565b6106b1565b60335460ff1661016c565b61011861024536600461184c565b610ad0565b61016c610258366004611926565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e30565b6105dc7330151da466ec8ab345bef3d6983023e050fb0673610e5d565b8015610622576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610655576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561067957604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106d757604051630f22c43960e41b8152611007600482015260240161054c565b6107416040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b1561080b576014811461076f5783838383604051630a5a604160e01b815260040161054c9493929190611968565b60006107b5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b0381166107e65784848484604051630a5a604160e01b815260040161054c9493929190611968565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a8d565b6108706040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b156109405760695460ff1615610899576040516379b3306f60e11b815260040160405180910390fd5b602081146108c25783838383604051630a5a604160e01b815260040161054c9493929190611968565b604080516020601f8401819004810282018101909252828152600091610903918585808385018382808284376000920191909152509293925050610f069050565b90508061092b5784848484604051630a5a604160e01b815260040161054c9493929190611968565b6068556069805460ff19166001179055610a8d565b6109b86040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b15610a6c57601481146109e65783838383604051630a5a604160e01b815260040161054c9493929190611968565b6000610a2c601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b038116610a5d5784848484604051630a5a604160e01b815260040161054c9493929190611968565b610a6681610f0b565b50610a8d565b838383836040516325ee20d560e21b815260040161054c9493929190611968565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ac29493929190611968565b60405180910390a150505050565b60695460ff16610af35760405163678f619760e11b815260040160405180910390fd5b606854610b135760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b3c57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b6057604051631785c68160e01b815260040160405180910390fd5b610b68610f72565b6000610bf689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bf18e8e33610fcb565b6110ec565b90506000818c8c604051602001610c0f9392919061199a565b604051602081830303815290604052805190602001209050610c40816000908152606a602052604090205460ff1690565b15610c5d57604051623e493160e81b815260040160405180910390fd5b610d053389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111c492505050565b610d468484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112cf565b610d63576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610e1194939291906119c1565b60405180910390a15050610e2460018055565b50505050505050505050565b600054610100900460ff16610e575760405162461bcd60e51b815260040161054c906119f9565b60018055565b600054610100900460ff16610e845760405162461bcd60e51b815260040161054c906119f9565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ebf9190611a44565b6040516020818303038152906040528051906020012083604051602001610ee69190611a44565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fc45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152506110288560405160200161101291815260200190565b60405160208183030381529060405260006112e5565b6040516bffffffffffffffffffffffff19606087901b1660208201526110619060340160405160208183030381529060405260016112e5565b6110778860405160200161101291815260200190565b60405160200161108a9493929190611a60565b60408051601f19818403018152908290526110a491611a44565b602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110e49190611b8f565b949350505050565b6060835160211461111057604051638152ea1b60e01b815260040160405180910390fd5b825160401461113257604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161117093929190611bbe565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111b957600080fd5b509695505050505050565b606060005b825181101561122257818382815181106111e5576111e5611c01565b60200260200101516040516020016111fe929190611c17565b6040516020818303038152906040529150808061121a90611c4f565b9150506111c9565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152508787866068548660405160200161126e96959493929190611c68565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661129f86836114b7565b6001600160a01b0316146112c6576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112dc8584611551565b14949350505050565b60606000835160026112f79190611cd9565b67ffffffffffffffff81111561130f5761130f611ba8565b6040519080825280601f01601f191660200182016040528015611339576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561147f5781825187838151811061138557611385611c01565b0160200151611397919060f81c611d06565b815181106113a7576113a7611c01565b01602001516001600160f81b031916836113c2836002611cd9565b815181106113d2576113d2611c01565b60200101906001600160f81b031916908160001a9053508182518783815181106113fe576113fe611c01565b0160200151611410919060f81c611d1a565b8151811061142057611420611c01565b01602001516001600160f81b0319168361143b836002611cd9565b611446906001611d2e565b8151811061145657611456611c01565b60200101906001600160f81b031916908160001a9053508061147781611c4f565b915050611367565b5083156114af57816040516020016114979190611d41565b60405160208183030381529060405292505050610f00565b509392505050565b600082516041146114db576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b81101561150457611501601b82611d6b565b90505b601b8160ff1610806115195750601c8160ff16115b15611537576040516356b00a4f60e11b815260040160405180910390fd5b600061154586838686611596565b50979650505050505050565b600081815b84518110156114af576115828286838151811061157557611575611c01565b602002602001015161165a565b91508061158e81611c4f565b915050611556565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115cd5750600090506003611651565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661164a57600060019250925050611651565b9150600090505b94509492505050565b6000818310611676576000828152602084905260409020611685565b60008381526020839052604090205b9392505050565b80356001600160a01b03811681146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b6116858261168c565b600080604083850312156116d657600080fd5b823591506116e66020840161168c565b90509250929050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6020815260006116856020830184611713565b60008083601f84011261176457600080fd5b50813567ffffffffffffffff81111561177c57600080fd5b60208301915083602082850101111561179457600080fd5b9250929050565b600080600080604085870312156117b157600080fd5b843567ffffffffffffffff808211156117c957600080fd5b6117d588838901611752565b909650945060208701359150808211156117ee57600080fd5b506117fb87828801611752565b95989497509550505050565b60008083601f84011261181957600080fd5b50813567ffffffffffffffff81111561183157600080fd5b6020830191508360208260051b850101111561179457600080fd5b60008060008060008060008060008060c08b8d03121561186b57600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561189157600080fd5b61189d8e838f01611752565b909a50985060608d01359150808211156118b657600080fd5b6118c28e838f01611752565b909850965060808d01359150808211156118db57600080fd5b6118e78e838f01611752565b909650945060a08d013591508082111561190057600080fd5b5061190d8d828e01611807565b915080935050809150509295989b9194979a5092959850565b60006020828403121561193857600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061197c60408301868861193f565b828103602084015261198f81858761193f565b979650505050505050565b600084516119ac8184602089016116ef565b91909101928352506020820152604001919050565b6080815260006119d46080830187611713565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a568184602087016116ef565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611aa3816022850160208a016116ef565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611af481604d840160208a016116ef565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b2481605c8401602089016116ef565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b5781606e8401602088016116ef565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611ba157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bd08184602089016116ef565b845190830190611be48183602089016116ef565b8451910190611bf78183602088016116ef565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c298184602088016116ef565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c6157611c61611c39565b5060010190565b60008751611c7a818460208c016116ef565b606088901b6bffffffffffffffffffffffff19169083019081528651611ca7816014840160208b016116ef565b0160148101869052603481018590528351611cc98160548401602088016116ef565b0160540198975050505050505050565b8082028115828204841417610f0057610f00611c39565b634e487b7160e01b600052601260045260246000fd5b600082611d1557611d15611cf0565b500490565b600082611d2957611d29611cf0565b500690565b80820180821115610f0057610f00611c39565b61060f60f31b815260008251611d5e8160028501602087016116ef565b9190910160020192915050565b60ff8181168382160190811115610f0057610f00611c3956fea164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/chapel/ValidatorContract b/core/systemcontracts/feynman/chapel/ValidatorContract new file mode 100644 index 0000000000..10f26bf99f --- /dev/null +++ b/core/systemcontracts/feynman/chapel/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ee4565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f0e565b34801561057757600080fd5b50610580610e42565b60405161054091906181f7565b34801561059957600080fd5b506105ad6105a83660046180dd565b610e48565b604051610540919061838a565b3480156105c657600080fd5b506105cf611165565b604051610540919061837f565b3480156105e857600080fd5b5061051c6105f7366004617eeb565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e4b565b611855565b34801561066757600080fd5b5061051c610676366004617e83565b611902565b34801561068757600080fd5b506105cf61069636600461808a565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461808a565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e4b565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618295565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f1f565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ed5565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e4b565b6123c5565b34801561080157600080fd5b50610533610810366004617e4b565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461808a565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461808a565b612507565b60405161054096959493929190618224565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180dd565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e4b565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b3836600461802e565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e4b565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618282565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461808a565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fef565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e4b565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e4b565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461808a565b6139e4565b60405161054093929190618eed565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618af0565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185b1565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618cf1565b600b54610f4c57610e9d6179f7565b60015460005b81811015610f4857600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff1916911515919091179055604086015180518794610f24936000805160206191bc833981519152909101920190617a26565b506060820151610f3a9060038301906013617aa0565b505050806001019050610ea3565b5050505b610f54617acd565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7d92505050565b9150915080610fb157610fa86064613f39565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f9a565b905061112a565b825160ff16600114156111265782602001515160011461101b5760008051602061917c83398151915260405161100b906189a9565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc836001840361515c565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f39565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d40565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a2f565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617af1565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be9061100090600890600401618266565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fcf565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b26565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a26565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a26565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ee4565b60405180910390a150505050610e32565b60608061163e838661551f565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181f7565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ee4565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd8282615a06565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e9e565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d40565b60105443116119425760405162461bcd60e51b8152600401610e1290618744565b3a156119605760405162461bcd60e51b8152600401610e1290618a2f565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185b1565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161f516565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e7903090869060040161820b565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906180a2565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e4b565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ee4565b60405180910390a2611be9565b600354611b88908663ffffffff61623716565b6003908155810154611ba0908663ffffffff61623716565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ee4565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ee4565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179f7565b60015460005b81811015611e8557600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff1916911515919091179055604086015180518794611e61936000805160206191bc833981519152909101920190617a26565b506060820151611e779060038301906013617aa0565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185e8565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f12838361515c565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b905060606122608261625c565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163ca565b6122bd8383838888038989038a8b8b8b5103016163ca565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618cf1565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f2d565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c79565b6000190192915050565b600b5461271d5761266e6179f7565b60015460005b8181101561271957600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff19169115159190911790556040860151805187946126f5936000805160206191bc833981519152909101920190617a26565b50606082015161270b9060038301906013617aa0565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e1290618966565b611f2d3382616521565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618fd16101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185b1565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a5d565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165b99050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c33565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061661292505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e1290618856565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165b99050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183cf565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061661292505050565b90506127106129f2600f548361623790919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e1290618406565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165b99050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e129061846e565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061661292505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187ae565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165b99050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e1290618537565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061661292505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dd1565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165b99050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184eb565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061661292505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188cc565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165b99050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618aab565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061661292505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165b99050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e129061857c565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061661292505050565b905060008111612ef55760405162461bcd60e51b8152600401610e1290618656565b6064811115612f165760405162461bcd60e51b8152600401610e129061869e565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165b99050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d8d565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061661292505050565b90506127106130036006548361623790919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b94565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e2e565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051613076949392919061839d565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b5d565b613235617acd565b600061325b604051806101e001604052806101ab8152602001618fd16101ab9139613d7d565b915091508061327c5760405162461bcd60e51b8152600401610e1290618cb0565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b5050505050616617565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e55565b600b54613624576135756179f7565b60015460005b8181101561362057600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff19169115159190911790556040860151805187946135fc936000805160206191bc833981519152909101920190617a26565b5060608201516136129060038301906013617aa0565b50505080600101905061357b565b5050505b600061362f8261667b565b905061363a81611c4b565b156118fe576118fe8282616521565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d40565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185b1565b600034116136b45760405162461bcd60e51b8152600401610e129061889d565b3a156136d25760405162461bcd60e51b8152600401610e1290618a2f565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167fe90919063ffffffff16565b9063ffffffff61683816565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ee4565b60405180910390a16137d1838263ffffffff6161f516565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167fe90919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ee4565b60405180910390a1613889838263ffffffff6161f516565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ee4565b60405180910390a2613986565b600354613925908463ffffffff61623716565b600390815581015461393d908463ffffffff61623716565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ee4565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ee4565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b60096000815460019003919050819055506000613b20600a5461374685613746600b8981548110613b0257fe5b6000918252602090912060169091020154439063ffffffff6161f516565b90506000600b8581548110613b3157fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9657600080fd5b505afa158015613baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bce91906180ba565b9150915060009350808310613d2d57613be7878761515c565b5060405163436aa28360e11b8152600090612002906386d5450690613c10908b906004016181f7565b60206040518083038186803b158015613c2857600080fd5b505afa158015613c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c609190617e67565b6001600160a01b031614613ccc576040516313d13bdb60e31b815261100190639e89ded890613c95908a90879060040161820b565b600060405180830381600087803b158015613caf57600080fd5b505af1158015613cc3573d6000803e3d6000fd5b50505050613d24565b6040516305bfb49960e41b815261100190635bfb499090613cf1908a906004016181f7565b600060405180830381600087803b158015613d0b57600080fd5b505af1158015613d1f573d6000803e3d6000fd5b505050505b60019350613d3f565b818310613d3f57613d3d8761667b565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b613d85617acd565b6000613d8f617acd565b613d97617b6a565b613da8613da38661687a565b61689f565b90506000805b613db7836168e9565b15613f2b5780613ddc57613dd2613dcd8461690a565b616958565b60ff168452613f23565b8060011415613f1e576060613df8613df38561690a565b6169d8565b90508051604051908082528060200260200182016040528015613e3557816020015b613e22617af1565b815260200190600190039081613e1a5790505b5085602001819052508051604051908082528060200260200182016040528015613e7357816020015b6060815260200190600190039081613e5e5790505b50604086015260005b8151811015613f1357613e8d617af1565b60606000613ead858581518110613ea057fe5b6020026020010151616aa9565b92509250925080613ecd578860009a509a50505050505050505050613f34565b8289602001518581518110613ede57fe5b60200260200101819052508189604001518581518110613efa57fe5b6020026020010181905250505050806001019050613e7c565b506001925050613f23565b613f2b565b600101613dae565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f53579050509050613f798363ffffffff16616bc3565b81600081518110613f8657fe5b602002602001018190525061115e81616bd6565b6000606483511115613fd15760008051602061917c833981519152604051613fc1906186fb565b60405180910390a1506066611dc5565b60005b835181101561406f5760005b8181101561406657848181518110613ff457fe5b6020026020010151600001516001600160a01b031685838151811061401557fe5b6020026020010151600001516001600160a01b0316141561405e5760008051602061917c83398151915260405161404b9061880b565b60405180910390a1606692505050611dc5565b600101613fe0565b50600101613fd4565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141215760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a08301529083529092019101614097565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141f65760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e25780601f106141b7576101008083540402835291602001916141e2565b820191906000526020600020905b8154815290600101906020018083116141c557829003601f168201915b50505050508152602001906001019061414b565b50505050905060005b82518110156142535782818151811061421457fe5b60200260200101516060015160030283828151811061422f57fe5b60209081029190910101516001600160401b039091166060909101526001016141ff565b5060608061426389898686616c60565b91509150614271828261551f565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b0578160200160208202803683370190505b50905060005b828110156144415760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142e757fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614322926001600160a01b0390921691016181f7565b60206040518083038186803b15801561433a57600080fd5b505afa15801561434e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143729190617e67565b6001600160a01b0316146143d457600182828151811061438e57fe5b602002602001019060ff16908160ff1681525050600181815481106143af57fe5b9060005260206000209060040201600301546000146143cf578360010193505b614439565b67016345785d8a0000600182815481106143ea57fe5b9060005260206000209060040201600301541061440c57846001019450614439565b6001818154811061441957fe5b906000526020600020906004020160030154600014614439578360010193505b6001016142b6565b5060608460405190808252806020026020018201604052801561446e578160200160208202803683370190505b50905060608560405190808252806020026020018201604052801561449d578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144cc578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144fb578160200160208202803683370190505b509050600060608860405190808252806020026020018201604052801561452c578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561455b578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a357600080fd5b505afa1580156145b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145db91906180a2565b905067016345785d8a00008111156146275760008051602061917c83398151915260405161460890618b1c565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149bb5789818151811061463e57fe5b602002602001015160ff1660011415614734576001818154811061465e57fe5b90600052602060002090600402016003015460001461472f576001818154811061468457fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146af57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146dc57fe5b906000526020600020906004020160030154838d815181106146fa57fe5b60200260200101818152505060018a8d8151811061471457fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b3565b67016345785d8a00006001828154811061474a57fe5b906000526020600020906004020160030154106148cf576001818154811061476e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147d457fe5b906000526020600020906004020160030154816147ed57fe5b06600183815481106147fb57fe5b90600052602060002090600402016003015403905061482383826161f590919063ffffffff16565b898f8151811061482f57fe5b6020026020010181815250506001828154811061484857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148a657fe5b60209081029190910101526148c1868263ffffffff61623716565b95508d6001019d50506149b3565b600181815481106148dc57fe5b9060005260206000209060040201600301546000146149b3576001818154811061490257fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496057fe5b906000526020600020906004020160030154838d8151811061497e57fe5b60200260200101818152505060008a8d8151811061499857fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161462a565b5060008415614c31576002546040516303702b2960e51b815261100491636e0565209188916149f5918e918e918d91420190600401618305565b6020604051808303818588803b158015614a0e57600080fd5b505af193505050508015614a3f575060408051601f3d908101601f19168201909252614a3c91810190617fcf565b60015b614bb6576040516000815260443d1015614a5b57506000614af6565b60046000803e60005160e01c6308c379a08114614a7c576000915050614af6565b60043d036004833e81513d60248201116001600160401b0382111715614aa757600092505050614af6565b80830180516001600160401b03811115614ac8576000945050505050614af6565b8060208301013d8601811115614ae657600095505050505050614af6565b601f01601f191660405250925050505b80614b015750614b43565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b35919061838a565b60405180910390a250614bb1565b3d808015614b6d576040519150601f19603f3d011682016040523d82523d6000602084013e614b72565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614ba7919061838a565b60405180910390a2505b614c31565b8015614bf8577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614beb9190618ee4565b60405180910390a1614c2f565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c26906184b4565b60405180910390a25b505b8015614de75760005b8751811015614de5576000888281518110614c5157fe5b60200260200101519050600060018281548110614c6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c9b57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d575760018281548110614cdc57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d2b57fe5b906000526020600020906004020160030154604051614d4a9190618ee4565b60405180910390a2614ddb565b60018281548110614d6457fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db357fe5b906000526020600020906004020160030154604051614dd29190618ee4565b60405180910390a25b5050600101614c3a565b505b835115614fdd5760005b8451811015614fdb578a8181518110614e0657fe5b602002602001015160ff1660011415614ea5576120026001600160a01b031663092193ab858381518110614e3657fe5b6020026020010151878481518110614e4a57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6e91906181f7565b6000604051808303818588803b158015614e8757600080fd5b505af1158015614e9b573d6000803e3d6000fd5b5050505050614fd3565b6000858281518110614eb357fe5b60200260200101516001600160a01b03166108fc868481518110614ed357fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6957858281518110614f0957fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4757fe5b6020026020010151604051614f5c9190618ee4565b60405180910390a2614fd1565b858281518110614f7557fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb357fe5b6020026020010151604051614fc89190618ee4565b60405180910390a25b505b600101614df1565b505b5050505050505050505050505060005b60015481101561504a576001818154811061500457fe5b9060005260206000209060040201600301546000146150425760006001828154811061502c57fe5b9060005260206000209060040201600301819055505b600101614fed565b5047156150b8577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150809190618ee4565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150b6573d6000803e3d6000fd5b505b600060038190556005558151156150d3576150d38282615a06565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511057600080fd5b505af1158015615124573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516c57fe5b906000526020600020906004020160030154905060006001808054905003905060016151966130a3565b51116151cb576000600185815481106151ab57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516152049190618ee4565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f1576001816001018154811061524557fe5b90600052602060002090600402016001828154811061526057fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532157fe5b9060005260206000209060160201600b828154811061533c57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615393938386019390821615610100026000190190911604617b8a565b506153a660038281019084016013617bff565b509050508060010160046000600184815481106153bf57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101615227565b5060018054806153fd57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545057fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154826002830182617b26565b615490600383016000617c29565b50509055600081838161549f57fe5b04905080156155135760015460005b81811015615510576154e783600183815481106154c757fe5b90600052602060002090600402016003015461623790919063ffffffff16565b600182815481106154f457fe5b60009182526020909120600360049092020101556001016154ae565b50505b50600195945050505050565b6060806000808080806155306131ad565b6001549091505b801561575f57600181039250600b838154811061555057fe5b600091825260209091206001601690920201015460ff1661557057615756565b6001838154811061557d57fe5b60009182526020909120600490910201546001600160a01b031694506155a4858484613aac565b9350836155b057615756565b60405163436aa28360e11b81526000908190612002906386d54506906155da908a906004016181f7565b60206040518083038186803b1580156155f257600080fd5b505afa158015615606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061562a9190617e67565b90506001600160a01b038116156156b3576040516302ceee9160e11b81526120029063059ddd22906156609084906004016181f7565b60206040518083038186803b15801561567857600080fd5b505afa15801561568c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b09190617e67565b91505b60005b8c5181101561575257876001600160a01b03168d82815181106156d557fe5b6020026020010151600001516001600160a01b0316148061571e5750826001600160a01b03168d828151811061570757fe5b6020026020010151600001516001600160a01b0316145b1561574a5760018d828151811061573157fe5b6020908102919091010151901515608090910152615752565b6001016156b6565b5050505b60001901615537565b5060005b89518110156157cc5789818151811061577857fe5b602002602001015160800151806157b8575060006001600160a01b03168a82815181106157a157fe5b6020026020010151600001516001600160a01b0316145b156157c4578560010195505b600101615763565b50885185106158b45760408051600180825281830190925290816020015b6157f2617af1565b8152602001906001900390816157ea575050604080516001808252818301909252919850602082015b606081526020019060019003908161581b5790505095508860008151811061583f57fe5b60200260200101518760008151811061585457fe5b60200260200101819052508760008151811061586c57fe5b60200260200101518660008151811061588157fe5b602002602001018190525060008760008151811061589b57fe5b60209081029190910101519015156080909101526159f9565b848951036040519080825280602002602001820160405280156158f157816020015b6158de617af1565b8152602001906001900390816158d65790505b5096508489510360405190808252806020026020018201604052801561592b57816020015b60608152602001906001900390816159165790505b5095506000915060005b89518110156159f75789818151811061594a57fe5b60200260200101516080015115801561598d575060006001600160a01b03168a828151811061597557fe5b6020026020010151600001516001600160a01b031614155b156159ef5789818151811061599e57fe5b60200260200101518884815181106159b257fe5b60200260200101819052508881815181106159c957fe5b60200260200101518784815181106159dd57fe5b60200260200101819052508260010192505b600101615935565b505b50505050505b9250929050565b600154825160005b82811015615b23576001615a20617af1565b60018381548110615a2d57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615af757878181518110615abd57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615aef5760009250615af7565b600101615aa9565b508115615b195780516001600160a01b03166000908152600460205260408120555b5050600101615a0e565b5080821115615be257805b82811015615be0576001805480615b4157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9457fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bc66002830182617b26565b615bd4600383016000617c29565b50509055600101615b2e565b505b6000818310615bf15781615bf3565b825b905060005b81811015615f9757615ca5868281518110615c0f57fe5b602002602001015160018381548110615c2457fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261702c565b615e59578060010160046000888481518110615cbd57fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615cf957fe5b602002602001015160018281548110615d0e57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dc957fe5b6020026020010151600b8281548110615dde57fe5b90600052602060002090601602016002019080519060200190615e02929190617a26565b506000600b8281548110615e1257fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4357fe5b6000918252602090912060169091020155615f8f565b858181518110615e6557fe5b60200260200101516060015160018281548110615e7e57fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f44858281518110615ec257fe5b6020026020010151600b8381548110615ed757fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8f57848181518110615f5457fe5b6020026020010151600b8281548110615f6957fe5b90600052602060002090601602016002019080519060200190615f8d929190617a26565b505b600101615bf8565b508282111561616f57615fa86179f7565b835b8381101561616c57858181518110615fbe57fe5b602002602001015182604001819052506001878281518110615fdc57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061919c8339815191528101918255858301516000805160206191dc8339815191528201805491151560ff1990921691909117905592850151805186949293616112936000805160206191bc83398151915201920190617a26565b5060608201516161289060038301906013617aa0565b505050806001016004600089848151811061613f57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615faa565b50505b616177617088565b61617f617270565b6000600981905560015493505b838110156161ed576000600b82815481106161a357fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161d457fe5b600091825260209091206016909102015560010161618c565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061745e565b60008282018381101561115e5760405162461bcd60e51b8152600401610e129061861f565b60015481516040805182815260208084028201019091526060929190839082801561629b57816020015b60608152602001906001900390816162865790505b50600b5490915083146162b2579250611d15915050565b60005b828110156163c157600b6001600460008985815181106162d157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561639d5780601f106163725761010080835404028352916020019161639d565b820191906000526020600020905b81548152906001019060200180831161638057829003601f168201915b50505050508282815181106163ae57fe5b60209081029190910101526001016162b5565b50949350505050565b60005b8281101561651757600082878388016040516020016163ed9291906181e9565b6040516020818303038152906040528051906020012060001c8161640d57fe5b0690508085018287011461650e576000898388018151811061642b57fe5b602002602001015190506060898489018151811061644557fe5b602002602001015190508a8388018151811061645d57fe5b60200260200101518b858a018151811061647357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164a257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d057fe5b60200260200101518a858a01815181106164e657fe5b6020026020010181905250808a8489018151811061650057fe5b602002602001018190525050505b506001016163cd565b5050505050505050565b600980546001908101909155600b80548390811061653b57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657157fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165cc91906181cd565b60405160208183030381529060405280519060200120836040516020016165f391906181cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166335760009250616671565b600160208701838101602088015b60028483851001141561666c5780518351146166605760009650600093505b60209283019201616641565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166a457506000199050611d15565b6001810390506000600182815481106166b957fe5b90600052602060002090600402016003015490506000600183815481106166dc57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616735908590618ee4565b60405180910390a28061674d57829350505050611d15565b600081838161675857fe5b04905080156167f45760005b848110156167a65761677d82600183815481106154c757fe5b6001828154811061678a57fe5b6000918252602090912060036004909202010155600101616764565b50600180549085015b818110156167f1576167c883600183815481106154c757fe5b600182815481106167d557fe5b60009182526020909120600360049092020101556001016167af565b50505b5091949350505050565b60008261680d57506000611dc5565b8282028284828161681a57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189ee565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061748a565b616882617c38565b506040805180820190915281518152602082810190820152919050565b6168a7617b6a565b6168b0826174c1565b6168b957600080fd5b60006168c883602001516174fb565b60208085015160408051808201909152868152920190820152915050919050565b60006168f3617c38565b505080518051602091820151919092015191011190565b616912617c38565b61691b826168e9565b61692457600080fd5b602082015160006169348261755e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696d57508151602110155b61697657600080fd5b600061698583602001516174fb565b905080836000015110156169ab5760405162461bcd60e51b8152600401610e1290618bfc565b8251602080850151830180519284900392918310156163c157506020919091036101000a90049392505050565b60606169e3826174c1565b6169ec57600080fd5b60006169f78361763f565b9050606081604051908082528060200260200182016040528015616a3557816020015b616a22617c38565b815260200190600190039081616a1a5790505b5090506000616a4785602001516174fb565b60208601510190506000805b84811015616a9e57616a648361755e565b9150604051806040016040528083815260200184815250848281518110616a8757fe5b602090810291909101015291810191600101616a53565b509195945050505050565b616ab1617af1565b60606000616abd617af1565b6060616ac7617b6a565b616ad08761689f565b90506000805b616adf836168e9565b15616bb45780616b0a57616afa616af58461690a565b61769b565b6001600160a01b03168552616bac565b8060011415616b3257616b1f616af58461690a565b6001600160a01b03166020860152616bac565b8060021415616b5a57616b47616af58461690a565b6001600160a01b03166040860152616bac565b8060031415616b8657616b6f613dcd8461690a565b6001600160401b0316606086015260019150616bac565b8060041415616ba757616ba0616b9b8461690a565b6176b5565b9350616bac565b616bb4565b600101616ad6565b50929791965091945092505050565b6060611dc5616bd183617725565b61780b565b6060815160001415616bf75750604080516000815260208101909152611d15565b606082600081518110616c0657fe5b602002602001015190506000600190505b8351811015616c4757616c3d82858381518110616c3057fe5b602002602001015161785d565b9150600101616c17565b5061115e616c5a825160c060ff166178da565b8261785d565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca057600080fd5b505afa158015616cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616cd891906180a2565b90508085518851011015616ced575083518651015b606081604051908082528060200260200182016040528015616d2957816020015b616d16617af1565b815260200190600190039081616d0e5790505b509050606082604051908082528060200260200182016040528015616d6257816020015b6060815260200190600190039081616d4d5790505b50905060008060005b8b51831080616d7a5750895182105b8015616d8557508581105b1561701a578b51831415616df557898281518110616d9f57fe5b6020026020010151858281518110616db357fe5b6020026020010181905250888281518110616dca57fe5b6020026020010151848281518110616dde57fe5b602090810291909101015260019182019101616d6b565b8951821415616e60578b8381518110616e0a57fe5b6020026020010151858281518110616e1e57fe5b60200260200101819052508a8381518110616e3557fe5b6020026020010151848281518110616e4957fe5b602090810291909101015260019283019201616d6b565b898281518110616e6c57fe5b6020026020010151606001516001600160401b03168c8481518110616e8d57fe5b6020026020010151606001516001600160401b03161115616f09578b8381518110616eb457fe5b6020026020010151858281518110616ec857fe5b60200260200101819052508a8381518110616edf57fe5b6020026020010151848281518110616ef357fe5b6020026020010181905250826001019250617012565b898281518110616f1557fe5b6020026020010151606001516001600160401b03168c8481518110616f3657fe5b6020026020010151606001516001600160401b03161015616fb257898281518110616f5d57fe5b6020026020010151858281518110616f7157fe5b6020026020010181905250888281518110616f8857fe5b6020026020010151848281518110616f9c57fe5b6020026020010181905250816001019150617012565b898281518110616fbe57fe5b6020026020010151600001516001600160a01b03168c8481518110616fdf57fe5b6020026020010151600001516001600160a01b03161015617006578b8381518110616eb457fe5b898281518110616d9f57fe5b600101616d6b565b50929a91995090975050505050505050565b805182516000916001600160a01b039182169116148015617066575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170d357805b828110156170d15760128054806170ab57fe5b6001900381819060005260206000200160006170c79190617b26565b9055600101617098565b505b60008183106170e257816170e4565b825b905060005b818110156171fc576171a16012828154811061710157fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561718f5780601f106171645761010080835404028352916020019161718f565b820191906000526020600020905b81548152906001019060200180831161717257829003601f168201915b50505050506013838154811061341857fe5b6171f457601381815481106171b257fe5b90600052602060002001601282815481106171c957fe5b9060005260206000200190805460018160011615610100020316600290046171f2929190617b8a565b505b6001016170e9565b5082821115610e3257825b8281101561726a5760126013828154811061721e57fe5b6000918252602080832084546001818101875595855291909320929091018054617261949390920192909160026101009282161592909202600019011604617b8a565b50600101617207565b50505050565b601354600b54808211156172bb57805b828110156172b957601380548061729357fe5b6001900381819060005260206000200160006172af9190617b26565b9055600101617280565b505b60008183106172ca57816172cc565b825b905060005b818110156173eb57617389601382815481106172e957fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173775780601f1061734c57610100808354040283529160200191617377565b820191906000526020600020905b81548152906001019060200180831161735a57829003601f168201915b5050505050600b8381548110615ed757fe5b6173e357600b818154811061739a57fe5b9060005260206000209060160201600201601382815481106173b857fe5b9060005260206000200190805460018160011615610100020316600290046173e1929190617b8a565b505b6001016172d1565b5082821115610e3257825b8281101561726a576013600b828154811061740d57fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745595939094019390926000199082161561010002011604617b8a565b506001016173f6565b600081848411156174825760405162461bcd60e51b8152600401610e12919061838a565b505050900390565b600081836174ab5760405162461bcd60e51b8152600401610e12919061838a565b5060008385816174b757fe5b0495945050505050565b80516000906174d257506000611d15565b6020820151805160001a9060c08210156174f157600092505050611d15565b5060019392505050565b8051600090811a6080811015617515576000915050611d15565b60b8811080617530575060c08110801590617530575060f881105b1561753f576001915050611d15565b60c08110156175535760b519019050611d15565b60f519019050611d15565b80516000908190811a60808110156175795760019150617638565b60b881101561758e57607e1981019150617638565b60c08110156175df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156175d95760405162461bcd60e51b8152600401610e129061893b565b50617638565b60f88110156175f45760be1981019150617638565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156176365760405162461bcd60e51b8152600401610e129061893b565b505b5092915050565b805160009061765057506000611d15565b6000809050600061766484602001516174fb565b602085015185519181019250015b80821015617692576176838261755e565b82019150826001019250617672565b50909392505050565b80516000906015146176ac57600080fd5b611dc582616958565b80516060906176c357600080fd5b60006176d283602001516174fb565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617709576020820181803683370190505b50905060008160200190506163c18487602001510182856179ac565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166177695750601861778d565b6fffffffffffffffffffffffffffffffff1984166177895750601061778d565b5060005b60208110156177c3578181815181106177a257fe5b01602001516001600160f81b031916156177bb576177c3565b60010161778d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177f8576020820181803683370190505b5080830196909652508452509192915050565b60608151600114801561783d5750607f60f81b8260008151811061782b57fe5b01602001516001600160f81b03191611155b15617849575080611d15565b611dc561785b8351608060ff166178da565b835b6060806040519050835180825260208201818101602087015b8183101561788e578051835260209283019201617876565b50855184518101855292509050808201602086015b818310156178bb5780518352602092830192016178a3565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106179045760405162461bcd60e51b8152600401610e1290618786565b6040805160018082528183019092526060916020820181803683370190505090506037841161795e5782840160f81b8160008151811061794057fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061796985617725565b90508381510160370160f81b8260008151811061798257fe5b60200101906001600160f81b031916908160001a9053506179a3828261785d565b95945050505050565b806179b657610e32565b5b602081106179d6578251825260209283019290910190601f19016179b7565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a21617c52565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a6757805160ff1916838001178555617a94565b82800160010185558215617a94579182015b82811115617a94578251825591602001919060010190617a79565b506131e8929150617c71565b8260138101928215617a945791602002820182811115617a94578251825591602001919060010190617a79565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b4c5750611f2d565b601f016020900490600052602060002090810190611f2d9190617c71565b6040518060400160405280617b7d617c38565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bc35780548555617a94565b82800160010185558215617a9457600052602060002091601f016020900482015b82811115617a94578254825591600101919060010190617be4565b8260138101928215617a945791820182811115617a94578254825591600101919060010190617be4565b50611f2d906013810190617c71565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c77565b8035611dc581618fbb565b60008083601f840112617ca7578182fd5b5081356001600160401b03811115617cbd578182fd5b60208301915083602080830285010111156159ff57600080fd5b6000601f8381840112617ce8578182fd5b8235617cfb617cf682618f70565b618f4a565b818152925060208084019085810160005b84811015617d8d578135880189603f820112617d2757600080fd5b838101356001600160401b03811115617d3f57600080fd5b617d50818901601f19168601618f4a565b81815260408c81848601011115617d6657600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d0c565b50505050505092915050565b600082601f830112617da9578081fd5b8135617db7617cf682618f70565b818152915060208083019084810181840286018201871015617dd857600080fd5b6000805b85811015617d8d5782356001600160401b0381168114617dfa578283fd5b85529383019391830191600101617ddc565b60008083601f840112617e1d578182fd5b5081356001600160401b03811115617e33578182fd5b6020830191508360208285010111156159ff57600080fd5b600060208284031215617e5c578081fd5b813561115e81618fbb565b600060208284031215617e78578081fd5b815161115e81618fbb565b60008060008060408587031215617e98578283fd5b84356001600160401b0380821115617eae578485fd5b617eba88838901617c96565b90965094506020870135915080821115617ed2578384fd5b50617edf87828801617c96565b95989497509550505050565b600080600060608486031215617eff578283fd5b83356001600160401b0380821115617f15578485fd5b81860187601f820112617f26578586fd5b80359250617f36617cf684618f70565b80848252602080830192508084018b828389028701011115617f5657898afd5b8994505b86851015617f8057617f6c8c82617c8b565b845260019490940193928101928101617f5a565b509097508801359350505080821115617f97578384fd5b617fa387838801617d99565b93506040860135915080821115617fb8578283fd5b50617fc586828701617cd7565b9150509250925092565b600060208284031215617fe0578081fd5b8151801515811461115e578182fd5b60008060208385031215618001578182fd5b82356001600160401b03811115618016578283fd5b61802285828601617e0c565b90969095509350505050565b60008060008060408587031215618043578384fd5b84356001600160401b0380821115618059578586fd5b61806588838901617e0c565b9096509450602087013591508082111561807d578384fd5b50617edf87828801617e0c565b60006020828403121561809b578081fd5b5035919050565b6000602082840312156180b3578081fd5b5051919050565b600080604083850312156180cc578182fd5b505080516020909101519092909150565b6000806000604084860312156180f1578081fd5b833560ff81168114618101578182fd5b925060208401356001600160401b0381111561811b578182fd5b61812786828701617e0c565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561816c5781516001600160a01b031687529582019590820190600101618147565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181b9816020860160208601618f8f565b601f01601f19169290920160200192915050565b600082516181df818460208701618f8f565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618134565b6000604082526182a86040830185618134565b602083820381850152818551808452828401915082838202850101838801865b838110156182f657601f198784030185526182e48383516181a1565b948601949250908501906001016182c8565b50909998505050505050505050565b6000608082526183186080830187618134565b828103602084810191909152865180835287820192820190845b8181101561834e57845183529383019391830191600101618332565b505084810360408601526183628188618134565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e60208301846181a1565b6000604082526183b1604083018688618177565b82810360208401526183c4818587618177565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179a360608301846181a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179a3604083018486618177565b6040518181016001600160401b0381118282101715618f6857600080fd5b604052919050565b60006001600160401b03821115618f85578081fd5b5060209081020190565b60005b83811015618faa578181015183820152602001618f92565b8381111561726a5750506000910152565b6001600160a01b0381168114611f2d57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/CrossChainContract b/core/systemcontracts/feynman/mainnet/CrossChainContract new file mode 100644 index 0000000000..67ed7d5e7e --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611442565b610432611447565b61043261144d565b610456611453565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611483565b6104566116e3565b61061561170b565b6108896004803603602081101561088257600080fd5b5035611710565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b61045661173f565b610432600480360360208110156108d257600080fd5b503560ff16611766565b610432611781565b6103f361170b565b6103f3611787565b61061561141d565b61045661178c565b610432611792565b6103f3611798565b61043261179d565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a3565b610456612a5d565b6103f3612a65565b610432612a6a565b610432612a70565b610470612a76565b610432612a7f565b610432612a85565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8b565b61069260048036036020811015610b0b57600080fd5b503560ff1661354f565b61045661356a565b61043261358e565b6105e6613594565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e8565b610761613808565b610456613827565b61043261382d565b610432613833565b6105e6613839565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf0565b6105e6613c0b565b6103f3613e2a565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e2f565b610432613f72565b6103f3613f78565b610432613f7d565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f83565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcb565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcb565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c8565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614146565b50905061141181838851614150565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150b57600080fd5b505afa15801561151f573d6000803e3d6000fd5b505050506040513d602081101561153557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157657600080fd5b505afa15801561158a573d6000803e3d6000fd5b505050506040513d60208110156115a057600080fd5b50519050806115ad575060155b6000821180156115bd5750808211155b6115fc576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906116699083614191565b905080156116db5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d602081101561185157600080fd5b50516118a4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611914576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198957600080fd5b505afa15801561199d573d6000803e3d6000fd5b505050506040513d60208110156119b357600080fd5b50516119f05760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5a576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac3576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b155760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b59576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b505160408051808201909152600381526269626360e81b6020820152611c968e8e613f83565b8585613fcb565b611ce5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3157600080fd5b505afa158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b505190508b8b600080806060611d7089614476565b935093509350935083611e32578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dea578181015183820152602001611dd2565b50505050905090810190601f168015611e175780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611eff578181015183820152602001611ee7565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4c57600080fd5b505af192505050801561203057506040513d6000823e601f3d908101601f191682016040526020811015611f7f57600080fd5b8101908080516040519392919084600160201b821115611f9e57600080fd5b908301906020820185811115611fb357600080fd5b8251600160201b811182820188101715611fcc57600080fd5b82525081516020918201929091019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b5060405250505060015b612342576040516000815260443d101561204c575060006120e7565b60046000803e60005160e01c6308c379a0811461206d5760009150506120e7565b60043d036004833e81513d60248201116001600160401b0382111715612098576000925050506120e7565b80830180516001600160401b038111156120b95760009450505050506120e7565b8060208301013d86018111156120d7576000955050505050506120e7565b601f01601f191660405250925050505b806120f25750612204565b60ff8716600090815260076020526040812054612129916001600160401b0390911690899061212490600290886113a7565b614526565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c45781810151838201526020016121ac565b50505050905090810190601f1680156121f15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233d565b3d80801561222e576040519150601f19603f3d011682016040523d82523d6000602084013e612233565b606091505b5060ff8716600090815260076020526040812054612266916001600160401b0390911690899061212490600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123015781810151838201526020016122e9565b50505050905090810190601f16801561232e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b1565b8051156123af5760ff871660009081526007602052604081205461237b916001600160401b0390911690899061212490600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612985565b60ff83166001141561265b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015612441578181015183820152602001612429565b50505050905090810190601f16801561246e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248e57600080fd5b505af192505050801561249f575060015b6123b1576040516000815260443d10156124bb57506000612556565b60046000803e60005160e01c6308c379a081146124dc576000915050612556565b60043d036004833e81513d60248201116001600160401b038211171561250757600092505050612556565b80830180516001600160401b03811115612528576000945050505050612556565b8060208301013d860181111561254657600095505050505050612556565b601f01601f191660405250925050505b8061256157506125c6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c45781810151838201526020016121ac565b3d8080156125f0576040519150601f19603f3d011682016040523d82523d6000602084013e6125f5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123015781810151838201526020016122e9565b60ff8316600214156129855760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e55781810151838201526020016126cd565b50505050905090810190601f1680156127125780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273257600080fd5b505af1925050508015612743575060015b612983576040516000815260443d101561275f575060006127fa565b60046000803e60005160e01c6308c379a081146127805760009150506127fa565b60043d036004833e81513d60248201116001600160401b03821117156127ab576000925050506127fa565b80830180516001600160401b038111156127cc5760009450505050506127fa565b8060208301013d86018111156127ea576000955050505050506127fa565b601f01601f191660405250925050505b8061280557506128ae565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286e578181015183820152602001612856565b50505050905090810190601f16801561289b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612983565b3d8080156128d8576040519150601f19603f3d011682016040523d82523d6000602084013e6128dd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561294757818101518382015260200161292f565b50505050905090810190601f1680156129745780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b505050506040513d6020811015612a4157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b6602e913960400191505060405180910390fd5b600b5460ff1615612b0f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c09050565b15612c1357604080516020601f8401819004810282018101909252828152600091612bbb918585808385018382808284376000920191909152506147a792505050565b90506127108111158015612bd05750600a8110155b612c0b5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a2e6032913960400191505060405180910390fd5b6001556134bd565b612c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c09050565b15612e0457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612cff5760405162461bcd60e51b815260040180806020018281038252605a8152602001806148cf605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1d816147ac565b612d6e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134bd565b612e7184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c09050565b15612fa257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef45760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e4604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f98576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134bd565b61300684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c09050565b1561313b576002811461304a5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495d602d913960400191505060405180910390fd5b600061308d600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156130a7575060648161ffff16105b6130f1576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61319e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c09050565b156132d157600281146131e25760405162461bcd60e51b815260040180806020018281038252602c81526020018061498a602c913960400191505060405180910390fd5b6000613225600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff1611801561323f575060648161ffff16105b613288576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61333c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c09050565b1561348057600281146133805760405162461bcd60e51b81526004018080602001828103825260348152602001806149296034913960400191505060405180910390fd5b60006133c3600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156133dd575060648161ffff16105b61342e576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135d9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d602081101561364657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368757600080fd5b505afa15801561369b573d6000803e3d6000fd5b505050506040513d60208110156136b157600080fd5b50519050806136be575060155b6000821180156136ce5750808211155b61370d576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613754576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a5907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e357600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613891576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c50576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d6020811015613cbd57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cfe57600080fd5b505afa158015613d12573d6000803e3d6000fd5b505050506040513d6020811015613d2857600080fd5b5051905080613d35575060155b600082118015613d455750808211155b613d84576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc8576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1a907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e3576137e36140c8565b601181565b60005460ff16613e74576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed15760405162461bcd60e51b815260040180806020018281038252603181526020018061489e6031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f369284928a9261212492909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fda575060006140bf565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614011576020820181803683370190505b509050600061401f826147b2565b60208089015182520190508660008061403789614146565b8086526020909501949092509050614050828583614150565b9283019261405d88614146565b8086526020909501949092509050614076828583614150565b9283018a81526020019261408987614146565b9092509050614099828583614150565b5083516020016140a76147b8565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614170578251825260209283019290910190601f1901614151565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425a57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428b575082816001015414155b1561435e576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614300916002840191906147d6565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614412565b60005b60028201548110156143e957336001600160a01b031682600201828154811061438657fe5b6000918252602090912001546001600160a01b031614156143e1576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614361565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446c576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614460600283018261483b565b50506001915050613fc5565b5060009392505050565b600080600060606021855110156144a657505060408051600080825260208201909252909250829150819061451f565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f1576020820181803683370190505b50905060006144ff82614146565b509050614511858260218d5103614150565b506001975091955093509150505b9193509193565b600b5460ff161561456a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145a9576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ea565b600380546001908101918290555410156145ea576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614680578181015183820152602001614668565b50505050905090810190601f1680156146ad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f55780518252601f1990920191602091820191016146d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147635780518252601f199092019160209182019101614744565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482b579160200282015b8281111561482b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f6565b5061483792915061485c565b5090565b50805460008255906000526020600020908101906148599190614883565b50565b61488091905b808211156148375780546001600160a01b0319168155600101614862565b90565b61488091905b80821115614837576000815560010161488956fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/GovHubContract b/core/systemcontracts/feynman/mainnet/GovHubContract new file mode 100644 index 0000000000..bd6967d7e7 --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/GovHubContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a610737565b61022961073d565b61036b610742565b6040805160ff9092168252519081900360200190f35b61024a610747565b61036b61074d565b610399610752565b6040805161ffff9092168252519081900360200190f35b61036b610757565b61024a61075c565b61024a610762565b61024a610768565b61036b61076e565b61036b610773565b61024a610778565b61036b61077e565b61024a610783565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b509092509050610789565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b031661081b565b61036b610906565b61022961090b565b61024a610910565b61024a610916565b61056161091c565b604080519115158252519081900360200190f35b61024a610925565b61024a61092b565b61022961074d565b61024a610931565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b509092509050610937565b61024a6109ae565b61024a6109b4565b61036b6109ba565b61024a6109bf565b61036b6109c5565b61024a6109ca565b606481565b61200181565b6060336120001461068a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b610692611638565b60006106d385858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109d092505050565b91509150806106ef576106e66064610a96565b92505050610730565b60006106fa83610b00565b905063ffffffff811661072157505060408051600081526020810190915291506107309050565b61072a81610a96565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b603881565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b33612000146107c95760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461085b5760405162461bcd60e51b81526004018080602001828103825260318152602001806116cc6031913960400191505060405180910390fd5b610863611638565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108fd81610b00565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116fd6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109d8611638565b60006109e2611638565b6109ea611662565b6109fb6109f686610ea1565b610ec6565b90506000805b610a0a83610f10565b15610a895780610a2c57610a25610a2084610f31565b610f7f565b8452610a81565b8060011415610a4b57610a41610a2084610f31565b6020850152610a81565b8060021415610a7c57610a65610a6084610f31565b610ff8565b6001600160a01b0316604085015260019150610a81565b610a89565b600101610a01565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610ab0579050509050610ad68363ffffffff16611018565b81600081518110610ae357fe5b6020026020010181905250610af78161102b565b9150505b919050565b6000610b0f82604001516110b5565b610b7b57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610afb565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610be8578181015183820152602001610bd0565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c48578181015183820152602001610c30565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c9657600080fd5b505af1925050508015610ca7575060015b610e99576040516000815260443d1015610cc357506000610d60565b60046000803e60005160e01c6308c379a08114610ce4576000915050610d60565b60043d036004833e81513d602482011167ffffffffffffffff82111715610d1057600092505050610d60565b808301805167ffffffffffffffff811115610d32576000945050505050610d60565b8060208301013d8601811115610d5057600095505050505050610d60565b601f01601f191660405250925050505b80610d6b5750610e0e565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578181015183820152602001610db2565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610afb565b3d808015610e38576040519150601f19603f3d011682016040523d82523d6000602084013e610e3d565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610dca578181015183820152602001610db2565b506000919050565b610ea9611682565b506040805180820190915281518152602082810190820152919050565b610ece611662565b610ed7826110bb565b610ee057600080fd5b6000610eef83602001516110f5565b60208085015160408051808201909152868152920190820152915050919050565b6000610f1a611682565b505080518051602091820151919092015191011190565b610f39611682565b610f4282610f10565b610f4b57600080fd5b60208201516000610f5b82611158565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f8d57600080fd5b6000610f9c83602001516110f5565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610fd3576020820181803683370190505b5090506000816020019050610fef84876020015101828561128b565b50949350505050565b805160009060151461100957600080fd5b611012826112d6565b92915050565b60606110126110268361138b565b611471565b606081516000141561104c5750604080516000815260208101909152610afb565b60608260008151811061105b57fe5b602002602001015190506000600190505b835181101561109c576110928285838151811061108557fe5b60200260200101516114c3565b915060010161106c565b50610af76110af825160c060ff16611540565b826114c3565b3b151590565b80516000906110cc57506000610afb565b6020820151805160001a9060c08210156110eb57600092505050610afb565b5060019392505050565b8051600090811a608081101561110f576000915050610afb565b60b881108061112a575060c0811080159061112a575060f881105b15611139576001915050610afb565b60c081101561114d5760b519019050610afb565b60f519019050610afb565b80516000908190811a60808110156111735760019150611284565b60b881101561118857607e1981019150611284565b60c081101561120257600060b78203600186019550806020036101000a8651049150600181018201935050808310156111fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611284565b60f88110156112175760be1981019150611284565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611282576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8061129557610816565b5b602081106112b5578251825260209283019290910190601f1901611296565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112eb57508151602110155b6112f457600080fd5b600061130383602001516110f5565b9050808360000151101561135e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fef57506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166113cf575060186113f3565b6fffffffffffffffffffffffffffffffff1984166113ef575060106113f3565b5060005b60208110156114295781818151811061140857fe5b01602001516001600160f81b0319161561142157611429565b6001016113f3565b60008160200390506060816040519080825280601f01601f19166020018201604052801561145e576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114a35750607f60f81b8260008151811061149157fe5b01602001516001600160f81b03191611155b156114af575080610afb565b6110126114c18351608060ff16611540565b835b6060806040519050835180825260208201818101602087015b818310156114f45780518352602092830192016114dc565b50855184518101855292509050808201602086015b81831015611521578051835260209283019201611509565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611590576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ea5782840160f81b816000815181106115cc57fe5b60200101906001600160f81b031916908160001a9053509050611012565b60606115f58561138b565b90508381510160370160f81b8260008151811061160e57fe5b60200101906001600160f81b031916908160001a90535061162f82826114c3565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611675611682565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/GovTokenContract b/core/systemcontracts/feynman/mainnet/GovTokenContract new file mode 100644 index 0000000000..2fb7c60d84 --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/GovTokenContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/GovernorContract b/core/systemcontracts/feynman/mainnet/GovernorContract new file mode 100644 index 0000000000..254b8f5df8 --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/GovernorContract @@ -0,0 +1 @@ +6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c8b565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca4565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615dea565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c8b565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615ee0565b3480156105b157600080fd5b506105e36105c0366004615c8b565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f08565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160df565b611267565b34801561066b57600080fd5b5061052061067a36600461616e565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160df565b611378565b3480156106c157600080fd5b506105206106d0366004615c8b565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c8b565b61146b565b6040516104d59493929190616254565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa3660046162a1565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c8b565b611773565b6040516104d59190616305565b3480156107e857600080fd5b5061045c6107f7366004615c8b565b61177e565b34801561080857600080fd5b5061045c61081736600461616e565b6117a9565b34801561082857600080fd5b506104fe61083736600461632d565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160df565b61182a565b34801561089357600080fd5b506104fe6108a236600461616e565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616e565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616e565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b5061052061098936600461635d565b611960565b34801561099a57600080fd5b506105206109a9366004616389565b611989565b3480156109ba57600080fd5b506105206109c9366004615c8b565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c8b565b611a88565b3480156109fa57600080fd5b50610520610a0936600461640c565b611b10565b348015610a1a57600080fd5b50610520610a29366004616465565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eaf565b348015610a6457600080fd5b50610a6d611f45565b6040516104d59796959493929190616505565b348015610a8c57600080fd5b50610a95611fe3565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616567565b612057565b348015610aec57600080fd5b5061052061206e565b348015610b0157600080fd5b5061045c610b1036600461616e565b61209b565b348015610b2157600080fd5b50610520610b30366004615c8b565b612123565b348015610b4157600080fd5b5061045c610b503660046165bf565b6121bf565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612904565b348015610b9457600080fd5b50610626610ba336600461661e565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c8b565b612910565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166b1565b61291b565b348015610c0e57600080fd5b50610520610c1d3660046160df565b612a2b565b348015610c2e57600080fd5b5061045c610c3d3660046166f4565b612a65565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c36600461671d565b612aed565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c8b565b612b74565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d3636600461632d565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c8b565b612b97565b348015610e1257600080fd5b50610520610e213660046167be565b612c1f565b348015610e3257600080fd5b5061045c610e41366004615c8b565b612c40565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167ea565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c8b565b612cc8565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c8b565b612d57565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a612123565b60008c815261016360205260409020549098506001600160401b03169650610f308b612910565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162ef565b1493506007816007811115610f9e57610f9e6162ef565b14925050509193959799509193959799565b6000610fbb82612d7a565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd929190616852565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9f565b868686612dcc565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612dea915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b815260040161045390616862565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa929190616852565b604051809103902090505b806111c1610164612e53565b036111b557505b6111d181612ed2565b50565b606061016280546111e490616899565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616899565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168d3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168ff565b9150506112c6565b5061134985858585613043565b95945050505050565b6000610ef06001611361611fe3565b61136b9190616918565b65ffffffffffff16612cc8565b60008061138786868686612a2b565b9050600061139482611773565b905060048160078111156113aa576113aa6162ef565b14806113c7575060058160078111156113c5576113c56162ef565b145b6113e35760405162461bcd60e51b81526004016104539061693e565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613248565b61145482888888886132e9565b61146182888888886133cb565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616899565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616899565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616899565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616899565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613406565b979650505050505050565b6000610fbb82613429565b60008060008061178d85613576565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613807565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697f565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613406565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612dea915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169ec565b81548110611a0c57611a0c6168d3565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138d2565b61025e9061393b565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b815260040161045390616862565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae9929190616852565b604051809103902090505b80611b00610164612e53565b03611af457505b6111d1816139ee565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340692505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a31565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162ef565b1480611c1b57506000816007811115611c1957611c196162ef565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a2b565b3360009081526102c3602052604090208190559050611c7188888888613adc565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b44565b611dd4611db760036000616a15565b611dc5600362093a80616a15565b680ad78ebc5ac6200000613b9b565b611ddc613bd2565b611de7612005613bf9565b611df2612006613c29565b611dfc600a613c59565b611e12611e0d600362015180616a15565b613c89565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e677308e68ec70fa3b629784fdb28887e206ce8561e08613cb9565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611ee1576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0b57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f655750609954155b611fa95760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fb1613d0c565b611fb9613d1b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa92505050801561204a575060408051601f3d908101601f1916820190925261204791810190616a37565b60015b61195b57610ef043613d2a565b6000612064848484613d91565b90505b9392505050565b61025e54600090156120935761208561025e613e08565b6001600160e01b0316905090565b5061025d5490565b6120a3610edb565b6001600160a01b0316336001600160a01b0316146120d35760405162461bcd60e51b815260040161045390616862565b306120dc610edb565b6001600160a01b03161461211a57600080366040516120fc929190616852565b604051809103902090505b80612113610164612e53565b0361210757505b6111d181613e38565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015612182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a69190616a5f565b9050806001146121b65780612067565b60009392505050565b33611007146121e557604051630f22c43960e41b81526110076004820152602401610453565b61224b6040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561230057602081146122795783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916122ba918585808385018382808284376000920191909152509293925050613efc9050565b90508015806122cb57506201518081115b156122f15784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa816139ee565b506128c1565b6123676040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561241657602081146123955783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916123d6918585808385018382808284376000920191909152509293925050613efc9050565b90508015806123e7575062278d0081115b1561240d5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613f01565b612482604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561253857602081146124b05783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916124f1918585808385018382808284376000920191909152509293925050613efc9050565b9050801580612509575069021e19e0c9bab240000081115b1561252f5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613fa4565b6125a26040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561265157602081146125d05783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f8401819004810282018101909252828152600091612611918585808385018382808284376000920191909152509293925050613efc9050565b905060058110806126225750601481115b156126485784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81612ed2565b6126c0604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561278657600881146126ee5783838383604051630a5a604160e01b81526004016104539493929190616aa1565b6000612734600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efc9050565b90506001600160401b038116158061275757506202a300816001600160401b0316115b1561277d5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613fe7565b6127f26040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b156128a057601481146128205783838383604051630a5a604160e01b81526004016104539493929190616aa1565b6000612866601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efc9050565b90506001600160a01b0381166128975784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81614053565b838383836040516325ee20d560e21b81526004016104539493929190616aa1565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f69493929190616aa1565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140bf565b612923610edb565b6001600160a01b0316336001600160a01b0316146129535760405162461bcd60e51b815260040161045390616862565b3061295c610edb565b6001600160a01b03161461299a576000803660405161297c929190616852565b604051809103902090505b80612993610164612e53565b0361298757505b600080856001600160a01b03168585856040516129b8929190616852565b60006040518083038185875af1925050503d80600081146129f5576040519150601f19603f3d011682016040523d82523d6000602084013e6129fa565b606091505b5091509150612a228282604051806060016040528060288152602001616efe602891396140fd565b50505050505050565b600084848484604051602001612a449493929190616ac8565b60408051601f19818403018152919052805160209091012095945050505050565b612a6d610edb565b6001600160a01b0316336001600160a01b031614612a9d5760405162461bcd60e51b815260040161045390616862565b30612aa6610edb565b6001600160a01b031614612ae45760008036604051612ac6929190616852565b604051809103902090505b80612add610164612e53565b03612ad157505b6111d181613fe7565b60008251845114612b515760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5f338787878787614116565b611b588686612b6e87876141d4565b85611b62565b600080600080612b8385613576565b93509350935093506117a184848484611267565b612b9f610edb565b6001600160a01b0316336001600160a01b031614612bcf5760405162461bcd60e51b815260040161045390616862565b30612bd8610edb565b6001600160a01b031614612c165760008036604051612bf8929190616852565b604051809103902090505b80612c0f610164612e53565b03612c0357505b6111d181613f01565b60006120678383612c3b60408051602081019091526000815290565b613d91565b612c48610edb565b6001600160a01b0316336001600160a01b031614612c785760405162461bcd60e51b815260040161045390616862565b30612c81610edb565b6001600160a01b031614612cbf5760008036604051612ca1929190616852565b604051809103902090505b80612cb8610164612e53565b03612cac57505b6111d181613fa4565b60006064612cd5836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d439190616a5f565b612d4d9190616b13565b610fbb9190616a15565b600080600080612d6685613576565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614306565b6000610fbb612dac6143a2565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612ddd878787876143ac565b9150915061146181614470565b6000805462010000900460ff1615612e1557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e465760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145ba565b6000612e6e8254600f81810b600160801b909204900b131590565b15612e8c57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f555760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5f61206e565b90508015801590612f71575061025e54155b15612fd657604080518082019091526000815261025e9060208101612f95846146bd565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613004612ff1612fe4611fe3565b65ffffffffffff166138d2565b612ffa846146bd565b61025e9190614726565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061305286868686612a2b565b9050600461305f82611773565b6007811115613070576130706162ef565b1461308d5760405162461bcd60e51b81526004016104539061693e565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fc9190616a5f565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613137908a908a908a906000908b90600401616b2a565b602060405180830381865afa158015613154573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131789190616a5f565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c5918b918b918b91908b908990600401616b78565b600060405180830381600087803b1580156131df57600080fd5b505af11580156131f3573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132259190616bd0565b604080519283526020830191909152015b60405180910390a15095945050505050565b30613251610edb565b6001600160a01b0316146132e25760005b84518110156117a157306001600160a01b0316858281518110613287576132876168d3565b60200260200101516001600160a01b0316036132d2576132d28382815181106132b2576132b26168d3565b60200260200101518051906020012061016461474190919063ffffffff16565b6132db816168ff565b9050613262565b5050505050565b60005462010000900460ff161561331357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133445760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133bd576102c16000868381518110613367576133676168d3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133ab57604051630b094f2760e31b815260040160405180910390fd5b806133b5816168ff565b915050613347565b506132e2858585858561477d565b306133d4610edb565b6001600160a01b0316146132e25761016454600f81810b600160801b909204900b13156132e2576000610164556132e2565b60006113498585858561342460408051602081019091526000815290565b612dea565b600080613435836147f2565b9050600481600781111561344b5761344b6162ef565b146134565792915050565b600083815261022c602052604090205480613472575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e09190616be3565b156134ef575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355d9190616be3565b1561356c575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374883600301805480602002602001604051908101604052809291908181526020016000905b8282101561366f5783829060005260206000200180546135e290616899565b80601f016020809104026020016040519081016040528092919081815260200182805461360e90616899565b801561365b5780601f106136305761010080835404028352916020019161365b565b820191906000526020600020905b81548152906001019060200180831161363e57829003601f168201915b5050505050815260200190600101906135c3565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373f5783829060005260206000200180546136b290616899565b80601f01602080910402602001604051908101604052809291908181526020018280546136de90616899565b801561372b5780601f106137005761010080835404028352916020019161372b565b820191906000526020600020905b81548152906001019060200180831161370e57829003601f168201915b505050505081526020019060010190613693565b505050506141d4565b600984015483546040805160208084028201810190925282815291869183018282801561379e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613780575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137f057602002820191906000526020600020905b8154815260200190600101908083116137dc575b505050505092509450945094509450509193509193565b60008061381686868686612a2b565b60008181526101c660205260409020549091506001600160a01b03163381148061386a5750613843612904565b613868826001613851611fe3565b61385b9190616918565b65ffffffffffff16612c1f565b105b6138c65760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b6117688787878761492a565b600063ffffffff8211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399857600061395684614938565b61396090856169ec565b60008881526020902090915081015463ffffffff908116908716101561398857809150613996565b613993816001616bd0565b92505b505b60006139a687878585614a20565b905080156139e1576139cb876139bd6001846169ec565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ada576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aac9190616a5f565b1015613acb576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3833868686516001600160401b03811115613afd57613afd615d27565b604051908082528060200260200182016040528015613b3057816020015b6060815260200190600190039081613b1b5790505b508787614116565b61134985858585614a76565b600054610100900460ff16613b6b5760405162461bcd60e51b815260040161045390616c05565b613b9281613b8d6040805180820190915260018152603160f81b602082015290565b614e55565b6111d181614ea4565b600054610100900460ff16613bc25760405162461bcd60e51b815260040161045390616c05565b613bcd838383614edc565b505050565b600054610100900460ff16613ada5760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff16613c205760405162461bcd60e51b815260040161045390616c05565b6111d181614f1e565b600054610100900460ff16613c505760405162461bcd60e51b815260040161045390616c05565b6111d181614f68565b600054610100900460ff16613c805760405162461bcd60e51b815260040161045390616c05565b6111d181614f8f565b600054610100900460ff16613cb05760405162461bcd60e51b815260040161045390616c05565b6111d181614fb6565b600054610100900460ff16613ce05760405162461bcd60e51b815260040161045390616c05565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616899565b6060609b80546111e490616899565b600065ffffffffffff8211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120649190616a5f565b805460009080156121b657613e22836139bd6001846169ec565b54600160201b90046001600160e01b0316612067565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb69190616c50565b6040516020818303038152906040528051906020012083604051602001613edd9190616c50565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f615760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fdd565b6060831561410c575081612067565b6120678383614ff3565b805160208201206000614134878761412e88886141d4565b85612a2b565b60008181526101c6602052604090206009810154919250906141c95780546001600160a01b0319166001600160a01b038a16178155875161417e90600183019060208b0190615ac2565b50865161419490600283019060208a0190615b23565b5085516141aa9060038301906020890190615b5e565b5084516141c09060048301906020880190615bb0565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141f1576141f1615d27565b60405190808252806020026020018201604052801561422457816020015b606081526020019060019003908161420f5790505b50905060005b81518110156142fe57848181518110614245576142456168d3565b6020026020010151516000146142b557848181518110614267576142676168d3565b602002602001015180519060200120848281518110614288576142886168d3565b60200260200101516040516020016142a1929190616c6c565b6040516020818303038152906040526142d0565b8381815181106142c7576142c76168d3565b60200260200101515b8282815181106142e2576142e26168d3565b6020026020010181905250806142f7906168ff565b905061422a565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434c57506001600160e01b0319868116908216145b8061436357506001600160e01b0319868116908516145b8061437e57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef061501d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143e35750600090506003614467565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614437573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661446057600060019250925050614467565b9150600090505b94509492505050565b6000816004811115614484576144846162ef565b0361448c5750565b60018160048111156144a0576144a06162ef565b036144ed5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b6002816004811115614501576145016162ef565b0361454e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b6003816004811115614562576145626162ef565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145ca8787878787615091565b600088815261029060205260409020549091506001600160401b03161580156145f757506145f7876151e7565b15611b5857600061461161028f546001600160401b031690565b614619611fe3565b65ffffffffffff1661462b9190616c9d565b905061463688612910565b816001600160401b03161115614685576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139375760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614734858585615227565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b9908890889088906000908990600401616b2a565b6000604051808303818588803b1580156147d257600080fd5b505af11580156147e6573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148175750600792915050565b6002810154610100900460ff16156148325750600292915050565b600083815261016360205260408120546001600160401b03169081900361489b5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a5611fe3565b65ffffffffffff1690508082106148c157506000949350505050565b60006148cc86612910565b90508181106148e15750600195945050505050565b6148ea866151e7565b801561490d575060008681526101c6602052604090206006810154600590910154115b1561491e5750600495945050505050565b50600395945050505050565b6000611349858585856153c6565b60008160000361494a57506000919050565b600060016149578461547c565b901c6001901b90506001818481614970576149706169ff565b048201901c90506001818481614988576149886169ff565b048201901c905060018184816149a0576149a06169ff565b048201901c905060018184816149b8576149b86169ff565b048201901c905060018184816149d0576149d06169ff565b048201901c905060018184816149e8576149e86169ff565b048201901c90506001818481614a0057614a006169ff565b048201901c905061206781828581614a1a57614a1a6169ff565b04615510565b60005b818310156142fe576000614a37848461551f565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a6257809250614a70565b614a6d816001616bd0565b93505b50614a23565b600033614a83818461553a565b614acf5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad9611fe3565b65ffffffffffff169050614aeb612904565b614afa83610e216001856169ec565b1015614b625760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b778888888880519060200120612a2b565b90508651885114614b9a5760405162461bcd60e51b815260040161045390616cbd565b8551885114614bbb5760405162461bcd60e51b815260040161045390616cbd565b6000885111614c0c5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c7c5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c886101945490565b614c929084616bd0565b90506000614ca06101955490565b614caa9083616bd0565b90506040518060e00160405280614cc08461562b565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614ced8361562b565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614df257614df2615d27565b604051908082528060200260200182016040528015614e2557816020015b6060815260200190600190039081614e105790505b508d88888f604051614e3f99989796959493929190616cfe565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e7c5760405162461bcd60e51b815260040161045390616c05565b609a614e888382616ddc565b50609b614e958282616ddc565b50506000609881905560995550565b600054610100900460ff16614ecb5760405162461bcd60e51b815260040161045390616c05565b610162614ed88282616ddc565b5050565b600054610100900460ff16614f035760405162461bcd60e51b815260040161045390616c05565b614f0c836139ee565b614f1582613f01565b613bcd81613fa4565b600054610100900460ff16614f455760405162461bcd60e51b815260040161045390616c05565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661211a5760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff16612ae45760405162461bcd60e51b815260040161045390616c05565b6000818311614fec5781612067565b5090919050565b8151156150035781518083602001fd5b8060405162461bcd60e51b81526004016104539190615ee0565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f615048615693565b6150506156ec565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150ab88611773565b60078111156150bc576150bc6162ef565b146151155760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512f9088906001600160401b031686613d91565b905061513e888888848861571d565b835160000361519357866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151869493929190616e9b565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d4959493929190616ec3565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521e610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b82546000908190801561536d576000615245876139bd6001856169ec565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c65760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530e57846152e7886139bd6001866169ec565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561535d565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147399050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614739565b6000806153d5868686866158bb565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916154319160040190815260200190565b600060405180830381600087803b15801561544b57600080fd5b505af115801561545f573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561549157608092831c92015b604083901c156154a357604092831c92015b602083901c156154b557602092831c92015b601083901c156154c757601092831c92015b600883901c156154d957600892831c92015b600483901c156154eb57600492831c92015b600283901c156154fd57600292831c92015b600183901c15610fbb5760010192915050565b6000818310614fec5781612067565b600061552e6002848418616a15565b61206790848416616bd0565b80516000906034811015615552576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558557600192505050610fbb565b6000806155936028856169ec565b90505b8381101561560a576000806155ca8884815181106155b6576155b66168d3565b01602001516001600160f81b0319166159c8565b91509150816155e25760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b179350505080615603906168ff565b9050615596565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569e613d0c565b8051909150156156b5578051602090910120919050565b60985480156156c45792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f7613d1b565b80519091501561570e578051602090910120919050565b60995480156156c45792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157ad5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157cd84615a5a565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff851661581d57838260060160008282546158129190616bd0565b90915550612a229050565b60001960ff86160161583d57838260050160008282546158129190616bd0565b60011960ff86160161585d57838260070160008282546158129190616bd0565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158ca86868686612a2b565b905060006158d782611773565b905060028160078111156158ed576158ed6162ef565b1415801561590d5750600681600781111561590a5761590a6162ef565b14155b801561592b57506007816007811115615928576159286162ef565b14155b6159775760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132369084815260200190565b60008060f883901c602f811180156159e35750603a8160ff16105b156159f857600194602f199091019350915050565b8060ff166040108015615a0e575060478160ff16105b15615a23576001946036199091019350915050565b8060ff166060108015615a39575060678160ff16105b15615a4e576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b17579160200282015b82811115615b1757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ae2565b50613937929150615c02565b828054828255906000526020600020908101928215615b17579160200282015b82811115615b17578251825591602001919060010190615b43565b828054828255906000526020600020908101928215615ba4579160200282015b82811115615ba45782518290615b949082616ddc565b5091602001919060010190615b7e565b50613937929150615c17565b828054828255906000526020600020908101928215615bf6579160200282015b82811115615bf65782518290615be69082616ddc565b5091602001919060010190615bd0565b50613937929150615c34565b5b808211156139375760008155600101615c03565b80821115613937576000615c2b8282615c51565b50600101615c17565b80821115613937576000615c488282615c51565b50600101615c34565b508054615c5d90616899565b6000825580601f10615c6d575050565b601f0160209004906000526020600020908101906111d19190615c02565b600060208284031215615c9d57600080fd5b5035919050565b600060208284031215615cb657600080fd5b81356001600160e01b03198116811461206757600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615cf157600080fd5b5081356001600160401b03811115615d0857600080fd5b602083019150836020828501011115615d2057600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6557615d65615d27565b604052919050565b60006001600160401b03821115615d8657615d86615d27565b50601f01601f191660200190565b600082601f830112615da557600080fd5b8135615db8615db382615d6d565b615d3d565b818152846020838601011115615dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0657600080fd5b88359750615e1660208a01615cce565b965060408901356001600160401b0380821115615e3257600080fd5b615e3e8c838d01615cdf565b909850965060608b0135915080821115615e5757600080fd5b50615e648b828c01615d94565b945050615e7360808a01615cce565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615eab578181015183820152602001615e93565b50506000910152565b60008151808452615ecc816020860160208601615e90565b601f01601f19169290920160200192915050565b6020815260006120676020830184615eb4565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1e57600080fd5b8435615f2981615ef3565b93506020850135615f3981615ef3565b92506040850135915060608501356001600160401b03811115615f5b57600080fd5b615f6787828801615d94565b91505092959194509250565b60006001600160401b03821115615f8c57615f8c615d27565b5060051b60200190565b600082601f830112615fa757600080fd5b81356020615fb7615db383615f73565b82815260059290921b84018101918181019086841115615fd657600080fd5b8286015b84811015615ffa578035615fed81615ef3565b8352918301918301615fda565b509695505050505050565b600082601f83011261601657600080fd5b81356020616026615db383615f73565b82815260059290921b8401810191818101908684111561604557600080fd5b8286015b84811015615ffa5780358352918301918301616049565b600082601f83011261607157600080fd5b81356020616081615db383615f73565b82815260059290921b840181019181810190868411156160a057600080fd5b8286015b84811015615ffa5780356001600160401b038111156160c35760008081fd5b6160d18986838b0101615d94565b8452509183019183016160a4565b600080600080608085870312156160f557600080fd5b84356001600160401b038082111561610c57600080fd5b61611888838901615f96565b9550602087013591508082111561612e57600080fd5b61613a88838901616005565b9450604087013591508082111561615057600080fd5b5061615d87828801616060565b949793965093946060013593505050565b60006020828403121561618057600080fd5b813561206781615ef3565b600081518084526020808501945080840160005b838110156161c45781516001600160a01b03168752958201959082019060010161619f565b509495945050505050565b600081518084526020808501945080840160005b838110156161c4578151875295820195908201906001016161e3565b600081518084526020808501808196508360051b8101915082860160005b85811015616247578284038952616235848351615eb4565b9885019893509084019060010161621d565b5091979650505050505050565b608081526000616267608083018761618b565b828103602084015261627981876161cf565b9050828103604084015261628d81866161ff565b9050828103606084015261176881856161ff565b600080600080600060a086880312156162b957600080fd5b853594506162c960208701615cce565b93506162d760408701615cce565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632757634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561634057600080fd5b82359150602083013561635281615ef3565b809150509250929050565b6000806040838503121561637057600080fd5b8235915061638060208401615cce565b90509250929050565b6000806000806000608086880312156163a157600080fd5b853594506163b160208701615cce565b935060408601356001600160401b03808211156163cd57600080fd5b6163d989838a01615cdf565b909550935060608801359150808211156163f257600080fd5b506163ff88828901615d94565b9150509295509295909350565b6000806000806060858703121561642257600080fd5b8435935061643260208601615cce565b925060408501356001600160401b0381111561644d57600080fd5b61645987828801615cdf565b95989497509550505050565b6000806000806080858703121561647b57600080fd5b84356001600160401b038082111561649257600080fd5b61649e88838901615f96565b955060208701359150808211156164b457600080fd5b6164c088838901616005565b945060408701359150808211156164d657600080fd5b6164e288838901616060565b935060608701359150808211156164f857600080fd5b50615f6787828801615d94565b60ff60f81b8816815260e06020820152600061652460e0830189615eb4565b82810360408401526165368189615eb4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161cf565b60008060006060848603121561657c57600080fd5b833561658781615ef3565b92506020840135915060408401356001600160401b038111156165a957600080fd5b6165b586828701615d94565b9150509250925092565b600080600080604085870312156165d557600080fd5b84356001600160401b03808211156165ec57600080fd5b6165f888838901615cdf565b9096509450602087013591508082111561661157600080fd5b5061645987828801615cdf565b600080600080600060a0868803121561663657600080fd5b853561664181615ef3565b9450602086013561665181615ef3565b935060408601356001600160401b038082111561666d57600080fd5b61667989838a01616005565b9450606088013591508082111561668f57600080fd5b61669b89838a01616005565b935060808801359150808211156163f257600080fd5b600080600080606085870312156166c757600080fd5b84356166d281615ef3565b93506020850135925060408501356001600160401b0381111561644d57600080fd5b60006020828403121561670657600080fd5b81356001600160401b038116811461206757600080fd5b600080600080600060a0868803121561673557600080fd5b85356001600160401b038082111561674c57600080fd5b61675889838a01615f96565b9650602088013591508082111561676e57600080fd5b61677a89838a01616005565b9550604088013591508082111561679057600080fd5b61679c89838a01616060565b945060608801359150808211156167b257600080fd5b61669b89838a01616060565b600080604083850312156167d157600080fd5b82356167dc81615ef3565b946020939093013593505050565b600080600080600060a0868803121561680257600080fd5b853561680d81615ef3565b9450602086013561681d81615ef3565b9350604086013592506060860135915060808601356001600160401b0381111561684657600080fd5b6163ff88828901615d94565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168ad57607f821691505b6020821081036168cd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201616911576169116168e9565b5060010190565b65ffffffffffff828116828216039080821115616937576169376168e9565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561699157600080fd5b81516001600160401b038111156169a757600080fd5b8201601f810184136169b857600080fd5b80516169c6615db382615d6d565b8181528560208385010111156169db57600080fd5b611349826020830160208601615e90565b81810381811115610fbb57610fbb6168e9565b634e487b7160e01b600052601260045260246000fd5b600082616a3257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4957600080fd5b815165ffffffffffff8116811461206757600080fd5b600060208284031215616a7157600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab5604083018688616a78565b8281036020840152611768818587616a78565b608081526000616adb608083018761618b565b8281036020840152616aed81876161cf565b90508281036040840152616b0181866161ff565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e9565b60a081526000616b3d60a083018861618b565b8281036020840152616b4f81886161cf565b90508281036040840152616b6381876161ff565b60608401959095525050608001529392505050565b60c081526000616b8b60c083018961618b565b8281036020840152616b9d81896161cf565b90508281036040840152616bb181886161ff565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e9565b600060208284031215616bf557600080fd5b8151801515811461206757600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c62818460208701615e90565b9190910192915050565b6001600160e01b0319831681528151600090616c8f816004850160208701615e90565b919091016004019392505050565b6001600160401b03818116838216019080821115616937576169376168e9565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d298382018b61618b565b90508281036060840152616d3d818a6161cf565b90508281036080840152616d5181896161ff565b905082810360a0840152616d6581886161ff565b90508560c08401528460e0840152828103610100840152616d868185615eb4565b9c9b505050505050505050505050565b601f821115613bcd57600081815260208120601f850160051c81016020861015616dbd5750805b601f850160051c820191505b818110156117a157828155600101616dc9565b81516001600160401b03811115616df557616df5615d27565b616e0981616e038454616899565b84616d96565b602080601f831160018114616e3e5760008415616e265750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6d57888601518255948401946001909101908401616e4e565b5085821015616e8b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb4565b85815260ff8516602082015283604082015260a060608201526000616eeb60a0830185615eb4565b8281036080840152611c718185615eb456fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/SlashContract b/core/systemcontracts/feynman/mainnet/SlashContract new file mode 100644 index 0000000000..a14c04b364 --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d56565b60405180910390f35b610388610626565b6040516103779190613534565b6103a86103a336600461346a565b61062c565b604051610377919061356c565b6103bd610692565b6040516103779190613561565b6103dd6103d8366004613181565b61069b565b60405161037793929190613d3e565b6103ff6103fa3660046132c7565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d27565b61038861042c36600461343a565b610a1f565b61044461043f366004613181565b610a46565b604051610377929190613d30565b610411610a9d565b610462610aa3565b6040516103779190613d67565b610388610aa8565b61047f610aae565b6040516103779190613d18565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613181565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461346a565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131b9565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461331e565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461346a565b611332565b6103ff6105c1366004613181565b6113a3565b6103ff6105d4366004613387565b611812565b610388611df1565b610411611df7565b610388611dfc565b6103ff611e02565b610462611e3e565b610388611e43565b610462611e49565b6103ff611e4e565b610388612297565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bbb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613661565b60405162461bcd60e51b815260040161064f90613cac565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613661565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b19565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f579050509050610760603861229d565b8160008151811061076d57fe5b6020026020010181905250610781836122b8565b8160018151811061078e57fe5b60200260200101819052506107a2826122b8565b816002815181106107af57fe5b602002602001018190525060606107c58261230e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613534565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610889919061319d565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613631565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135d2565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613534565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613534565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613548565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613452565b505050505050505050565b61200581565b61708081565b60018181548110610a2c57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a51612f68565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138a4565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613661565b61200063f7a251d7600b610b268461239f565b60006040518463ffffffff1660e01b8152600401610b4693929190613d75565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e52833981519152600083604051610bcf92919061357f565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bbb565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613661565b610c5d612f8b565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246892505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d56565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d56565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138a4565b610d5c82826124e8565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613661565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a08565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b6020820152915061269b9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613830565b604080516020601f8401819004810282018101909252828152600091610e9c918585808385018382808284376000920191909152506126f592505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b76565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b6020820152915061269b9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a56565b604080516020601f8401819004810282018101909252828152600091610f9d918585808385018382808284376000920191909152506126f592505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061371a565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b6020820152915061269b9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f90613990565b604080516020601f84018190048102820181019092528281526000916110a6918585808385018382808284376000920191909152506126f592505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613a98565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c61736800000000000000006020820152915061269b9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f9061374f565b604080516020601f84018190048102820181019092528281526111b291908484808385018382808284376000920191909152506126fa92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b6020820152915061269b9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f9061391f565b604080516020601f8401819004810282018101909252828152600091611292918585808385018382808284376000920191909152506126f592505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f90613698565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c57565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135a0565b60405180910390a150505050565b609681565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bbb565b60005460ff166113755760405162461bcd60e51b815260040161064f90613661565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c0a565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613661565b60035443116114055760405162461bcd60e51b815260040161064f90613ce3565b3a156114235760405162461bcd60e51b815260040161064f90613962565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613534565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132a7565b6114a15761180b565b6114a9612f68565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613534565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613534565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a919061319d565b6001600160a01b03161461166b576116668282602001516124e8565b611734565b61200063f7a251d7600b61167e8561239f565b60006040518463ffffffff1660e01b815260040161169e93929190613d75565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e5283398151915283602001518360405161172a92919061357f565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613534565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613661565b60075460ff166118565760405162461bcd60e51b815260040161064f906135fc565b6006546118635760146006555b600854611871576170806008555b60085481516040015143910111801561189557504360085482602001516040015101115b6118b15760405162461bcd60e51b815260040161064f90613c7e565b8060200151602001518160000151602001511480156118df5750806020015160600151816000015160600151145b156118fc5760405162461bcd60e51b815260040161064f90613877565b80516040810151905110801561191b5750602081015160408101519051105b6119375760405162461bcd60e51b815260040161064f906137f9565b60208101515181515110801561195c5750806000015160400151816020015160400151105b8061198757508051516020820151511080156119875750806020015160400151816000015160400151105b806119a15750806020015160400151816000015160400151145b6119bd5760405162461bcd60e51b815260040161064f906136e3565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e6919060040161356c565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906132a7565b611a525760405162461bcd60e51b815260040161064f906139d9565b611a6481600001518260400151612722565b8015611a7d5750611a7d81602001518260400151612722565b611a995760405162461bcd60e51b815260040161064f9061379a565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1391908101906131e4565b9150915060005b8151811015611c5057611b44828281518110611b3257fe5b602002602001015185604001516128fa565b15611c48576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7c9033908590600401613548565b602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190613452565b506110006001600160a01b03166335409f7f858481518110611bec57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c109190613534565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b5050505050611c50565b600101611b1a565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7c9160040161356c565b60206040518083038186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061319d565b6001600160a01b031614611d3a576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d03919060040161356c565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d5a866040015161295e565b60006040518463ffffffff1660e01b8152600401611d7a93929190613d75565b600060405180830381600087803b158015611d9457600080fd5b505af1158015611da8573d6000803e3d6000fd5b505050506000611dbd84604001516000612999565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e255760405162461bcd60e51b815260040161064f90613ae2565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e6f5760405162461bcd60e51b815260040161064f906138a4565b60005460ff16611e915760405162461bcd60e51b815260040161064f90613661565b600154611e9d57612295565b600154600090600019015b808211612269576000805b82841015611fcc57611ec3612f68565b6002600060018781548110611ed457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb657600460055481611f4157fe5b04816020015103816020018181525050806002600060018881548110611f6357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc0565b6001925050611fcc565b50836001019350611eb3565b82841161216357611fdb612f68565b6002600060018681548110611fec57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d45760046005548161205957fe5b0481602001510381602001818152505080600260006001878154811061207b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121639050565b60026000600186815481106120e557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121565750612163565b5060001990920191611fcc565b81801561216d5750805b1561224c57600260006001868154811061218357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121ca57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612258575050612269565b505060019091019060001901611ea8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b06122ab836129b5565b6122b8565b90505b919050565b6060815160011480156122ea5750607f60f81b826000815181106122d857fe5b01602001516001600160f81b03191611155b156122f65750806122b3565b6122b06123088351608060ff16612a9b565b83612b6d565b606081516000141561232f57506040805160008152602081019091526122b3565b60608260008151811061233e57fe5b602002602001015190506000600190505b835181101561237f576123758285838151811061236857fe5b6020026020010151612b6d565b915060010161234f565b50612398612392825160c060ff16612a9b565b82612b6d565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ba5790505090506123e3836001600160a01b0316612bea565b816000815181106123f057fe5b60200260200101819052506124044361229d565b8160018151811061241157fe5b6020908102919091010152612426603861229d565b8160028151811061243357fe5b60200260200101819052506124474261229d565b8160038151811061245457fe5b60200260200101819052506123988161230e565b612470612f8b565b600061247a612f8b565b612482612f9d565b61249361248e86612c0d565b612c32565b90506000805b6124a283612c7c565b156124db57806124ce576124bd6124b884612c9d565b612ceb565b63ffffffff168452600191506124d3565b6124db565b600101612499565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061250d908590600401613534565b600060405180830381600087803b15801561252757600080fd5b505af1925050508015612538575060015b610d5c576040516000815260443d1015612554575060006125f1565b60046000803e60005160e01c6308c379a081146125755760009150506125f1565b60043d036004833e81513d602482011167ffffffffffffffff821117156125a1576000925050506125f1565b808301805167ffffffffffffffff8111156125c35760009450505050506125f1565b8060208301013d86018111156125e1576000955050505050506125f1565b601f01601f191660405250925050505b806125fc5750612633565b826001600160a01b0316600080516020613e52833981519152838360405161262592919061357f565b60405180910390a250612696565b3d80801561265d576040519150601f19603f3d011682016040523d82523d6000602084013e612662565b606091505b50826001600160a01b0316600080516020613e52833981519152838360405161268c92919061357f565b60405180910390a2505b610d5c565b6000816040516020016126ae9190613518565b60405160208183030381529060405280519060200120836040516020016126d59190613518565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561271457600191508161271a565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161273e575050604080516020808252818301909252919250606091908082018180368337019050509050612783856000015161229d565b8260008151811061279057fe5b60200260200101819052506127ab6020866020015183612d6d565b6127b4816122b8565b826001815181106127c157fe5b60200260200101819052506127d9856040015161229d565b826002815181106127e657fe5b60200260200101819052506128016020866060015183612d6d565b61280a816122b8565b8260038151811061281757fe5b602002602001018190525061283d60206128308461230e565b8051906020012083612d6d565b6040805160b080825260e0820190925260609160208201818036833701905050905061286d818360006020612d7d565b61287f81876080015160206060612d7d565b61288d818660806030612d7d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128ca57600080fd5b5060016128d8826000612dd0565b60ff16146128ed5760009450505050506126ef565b5060019695505050505050565b8151815160009160019181148083146129165760009250612954565b600160208701838101602088015b60028483851001141561294f5780518351146129435760009650600093505b60209283019201612924565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129795790505090506123e3836122b8565b600081602001835110156129ac57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166129f957506018612a1d565b6fffffffffffffffffffffffffffffffff198416612a1957506010612a1d565b5060005b6020811015612a5357818181518110612a3257fe5b01602001516001600160f81b03191615612a4b57612a53565b600101612a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ac55760405162461bcd60e51b815260040161064f906137d1565b60408051600180825281830190925260609160208201818036833701905050905060378411612b1f5782840160f81b81600081518110612b0157fe5b60200101906001600160f81b031916908160001a90535090506126ef565b6060612b2a856129b5565b90508381510160370160f81b82600081518110612b4357fe5b60200101906001600160f81b031916908160001a905350612b648282612b6d565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612b9e578051835260209283019201612b86565b50855184518101855292509050808201602086015b81831015612bcb578051835260209283019201612bb3565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b8318601482015260348101909152606090612398816122b8565b612c15612fbd565b506040805180820190915281518152602082810190820152919050565b612c3a612f9d565b612c4382612dec565b612c4c57600080fd5b6000612c5b8360200151612e26565b60208085015160408051808201909152868152920190820152915050919050565b6000612c86612fbd565b505080518051602091820151919092015191011190565b612ca5612fbd565b612cae82612c7c565b612cb757600080fd5b60208201516000612cc782612e89565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d0057508151602110155b612d0957600080fd5b6000612d188360200151612e26565b90508083600001511015612d3e5760405162461bcd60e51b815260040161064f90613b3f565b825160208085015183018051928490039291831015612d6457826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612d9457fe5b602001015160f81c60f81b858480600101955081518110612db157fe5b60200101906001600160f81b031916908160001a905350600101612d80565b60008160010183511015612de357600080fd5b50016001015190565b8051600090612dfd575060006122b3565b6020820151805160001a9060c0821015612e1c576000925050506122b3565b5060019392505050565b8051600090811a6080811015612e405760009150506122b3565b60b8811080612e5b575060c08110801590612e5b575060f881105b15612e6a5760019150506122b3565b60c0811015612e7e5760b5190190506122b3565b60f5190190506122b3565b80516000908190811a6080811015612ea45760019150612f61565b60b8811015612eb957607e1981019150612f61565b60c0811015612f0a57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f045760405162461bcd60e51b815260040161064f906138f4565b50612f61565b60f8811015612f1f5760be1981019150612f61565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561271a5760405162461bcd60e51b815260040161064f906138f4565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fb0612fbd565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612fe7578081fd5b8151612ffa612ff582613dc8565b613da1565b818152915060208083019084810160005b84811015613070578151870188603f82011261302657600080fd5b83810151613036612ff582613de8565b81815260408b8184860101111561304c57600080fd5b61305b83888401838701613e0c565b5086525050928201929082019060010161300b565b505050505092915050565b60008083601f84011261308c578182fd5b50813567ffffffffffffffff8111156130a3578182fd5b6020830191508360208285010111156130bb57600080fd5b9250929050565b600082601f8301126130d2578081fd5b81356130e0612ff582613de8565b91508082528360208285010111156130f757600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613121578081fd5b61312b60a0613da1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561316957600080fd5b613175848285016130c2565b60808301525092915050565b600060208284031215613192578081fd5b813561239881613e3c565b6000602082840312156131ae578081fd5b815161239881613e3c565b600080604083850312156131cb578081fd5b82356131d681613e3c565b946020939093013593505050565b600080604083850312156131f6578182fd5b825167ffffffffffffffff8082111561320d578384fd5b81850186601f82011261321e578485fd5b8051925061322e612ff584613dc8565b80848252602080830192508084018a82838902870101111561324e578889fd5b8894505b8685101561327957805161326581613e3c565b845260019490940193928101928101613252565b508801519096509350505080821115613290578283fd5b5061329d85828601612fd7565b9150509250929050565b6000602082840312156132b8578081fd5b81518015158114612398578182fd5b600080604083850312156132d9578182fd5b823567ffffffffffffffff808211156132f0578384fd5b6132fc868387016130c2565b93506020850135915080821115613311578283fd5b5061329d858286016130c2565b60008060008060408587031215613333578182fd5b843567ffffffffffffffff8082111561334a578384fd5b6133568883890161307b565b9096509450602087013591508082111561336e578384fd5b5061337b8782880161307b565b95989497509550505050565b600060208284031215613398578081fd5b813567ffffffffffffffff808211156133af578283fd5b818401606081870312156133c1578384fd5b6133cb6060613da1565b92508035828111156133db578485fd5b6133e787828401613110565b8452506020810135828111156133fb578485fd5b61340787828401613110565b60208501525060408101358281111561341e578485fd5b61342a878284016130c2565b6040850152509195945050505050565b60006020828403121561344b578081fd5b5035919050565b600060208284031215613463578081fd5b5051919050565b60008060006040848603121561347e578081fd5b833560ff8116811461348e578182fd5b9250602084013567ffffffffffffffff8111156134a9578182fd5b6134b58682870161307b565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613504816020860160208601613e0c565b601f01601f19169290920160200192915050565b6000825161352a818460208701613e0c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239860208301846134ec565b60008382526040602083015261359860408301846134ec565b949350505050565b6000604082526135b46040830186886134c2565b82810360208401526135c78185876134c2565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613d9160608301856134ec565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dc057600080fd5b604052919050565b600067ffffffffffffffff821115613dde578081fd5b5060209081020190565b600067ffffffffffffffff821115613dfe578081fd5b50601f01601f191660200190565b60005b83811015613e27578181015183820152602001613e0f565b83811115613e36576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/StakeCreditContract b/core/systemcontracts/feynman/mainnet/StakeCreditContract new file mode 100644 index 0000000000..259403b1ed --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/StakeCreditContract @@ -0,0 +1 @@ +6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/StakeHubContract b/core/systemcontracts/feynman/mainnet/StakeHubContract new file mode 100644 index 0000000000..0e58fbcf79 --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/StakeHubContract @@ -0,0 +1 @@ +608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bf0578063fb50b31f1462000c15578063fc0c5ff11462000c3a578063ff69ab611462000c5257600080fd5b8063e992aaf51462000b6d578063efdbf0e11462000b85578063f1f74d841462000bc1578063f1fad1041462000bd957600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000b00578063daacdb661462000b18578063dbda7fb31462000b30578063e8f67c3b1462000b5557600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab6578063d7c2dfc81462000adb57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c6a565b3480156200042057600080fd5b50620004386200043236600462009442565b62000cfc565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009442565b62001111565b348015620004a057600080fd5b50620003f4620004b2366004620094a6565b6200174f565b348015620004c557600080fd5b50620004dd620004d7366004620094eb565b62001a7b565b6040516200044c91906200959e565b348015620004f957600080fd5b50620004386200050b36600462009694565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f46200058136600462009442565b62001dee565b3480156200059457600080fd5b50620003f4620005a636600462009442565b62001e70565b348015620005b957600080fd5b50620003f4620005cb36600462009442565b62002055565b348015620005de57600080fd5b5062000605620005f036600462009442565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f46200063536600462009442565b62002232565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f462000684366004620096e9565b620022ae565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c136600462009727565b620028cb565b348015620006d457600080fd5b50620003f4620006e636600462009797565b6200369e565b348015620006f957600080fd5b50620007116200070b366004620097b7565b620038a6565b6040516200044c949392919062009820565b620003f462000734366004620098dc565b62003f38565b3480156200074757600080fd5b506200046d6200075936600462009442565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a36600462009442565b62004582565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e236600462009442565b6200462c565b348015620007f557600080fd5b50620003f46200080736600462009442565b62004a45565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004c17565b3480156200084a57600080fd5b50620003f46200085c366004620094eb565b62004f2e565b3480156200086f57600080fd5b50620003f462004f98565b3480156200088757600080fd5b50620004386200089936600462009442565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f1366004620096e9565b62005030565b620003f462000908366004620099b4565b620050e9565b3480156200091b57600080fd5b50620009336200092d36600462009442565b62005773565b6040516200044c9190620099f2565b3480156200094f57600080fd5b50620003f462000961366004620096e9565b62005a60565b3480156200097457600080fd5b50620003f46200098636600462009a6f565b62005acd565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009b28565b6200696c565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a08366004620097b7565b62006b39565b6040516200044c9392919062009b84565b34801562000a2c57600080fd5b50620003f462000a3e36600462009442565b62006d15565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b36600462009442565b62006fd7565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d620186a081565b34801562000ac357600080fd5b50620003f462000ad536600462009be1565b62007407565b34801562000ae857600080fd5b50620003f462000afa36600462009cca565b6200760b565b34801562000b0d57600080fd5b506200046d603b5481565b34801562000b2557600080fd5b506200046d60495481565b34801562000b3d57600080fd5b506200043862000b4f36600462009442565b62007701565b34801562000b6257600080fd5b506200046d60355481565b34801562000b7a57600080fd5b506200046d603a5481565b34801562000b9257600080fd5b506200046d62000ba436600462009694565b805160208183018101805160468252928201919093012091525481565b34801562000bce57600080fd5b506200046d603e5481565b34801562000be657600080fd5b5062000652601181565b34801562000bfd57600080fd5b506200046d62000c0f366004620096e9565b62007b18565b34801562000c2257600080fd5b50620003f462000c3436600462009a6f565b62007b89565b34801562000c4757600080fd5b506200046d60395481565b34801562000c5f57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9d576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc757604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d679062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000d959062009d30565b801562000de65780601f1062000dba5761010080835404028352916020019162000de6565b820191906000526020600020905b81548152906001019060200180831162000dc857829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e119062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3f9062009d30565b801562000e905780601f1062000e645761010080835404028352916020019162000e90565b820191906000526020600020905b81548152906001019060200180831162000e7257829003601f168201915b5050505050815260200160018201805462000eab9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed99062009d30565b801562000f2a5780601f1062000efe5761010080835404028352916020019162000f2a565b820191906000526020600020905b81548152906001019060200180831162000f0c57829003601f168201915b5050505050815260200160028201805462000f459062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000f739062009d30565b801562000fc45780601f1062000f985761010080835404028352916020019162000fc4565b820191906000526020600020905b81548152906001019060200180831162000fa657829003601f168201915b5050505050815260200160038201805462000fdf9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200100d9062009d30565b80156200105e5780601f1062001032576101008083540402835291602001916200105e565b820191906000526020600020905b8154815290600101906020018083116200104057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010ea575050509190925250509051949350505050565b33611000146200113d57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b69062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e49062009d30565b8015620012355780601f10620012095761010080835404028352916020019162001235565b820191906000526020600020905b8154815290600101906020018083116200121757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620012609062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200128e9062009d30565b8015620012df5780601f10620012b357610100808354040283529160200191620012df565b820191906000526020600020905b815481529060010190602001808311620012c157829003601f168201915b50505050508152602001600182018054620012fa9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620013289062009d30565b8015620013795780601f106200134d5761010080835404028352916020019162001379565b820191906000526020600020905b8154815290600101906020018083116200135b57829003601f168201915b50505050508152602001600282018054620013949062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c29062009d30565b8015620014135780601f10620013e75761010080835404028352916020019162001413565b820191906000526020600020905b815481529060010190602001808311620013f557829003601f168201915b505050505081526020016003820180546200142e9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200145c9062009d30565b8015620014ad5780601f106200148157610100808354040283529160200191620014ad565b820191906000526020600020905b8154815290600101906020018083116200148f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001539575050509190925250505060408101519091506001600160a01b031615806200157657508060e001515b156200163357604051611002903490600081818185875af1925050503d8060008114620015c0576040519150601f19603f3d011682016040523d82523d6000602084013e620015c5565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016269060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168a57600080fd5b505af11580156200169f573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016e091815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017159190869060040162009d66565b600060405180830381600087803b1580156200173057600080fd5b505af115801562001745573d6000803e3d6000fd5b5050505050505b50565b33611001146200177757604051630f22c43960e41b8152611001600482015260240162001134565b60005462010000900460ff1615620017a257604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b892919062009d80565b908152604051908190036020019020546001600160a01b03169050620017e0603f8262007ddd565b620017fe5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001826620151804262009da6565b604a546000828152604b6020526040902054919250116200185a5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187b90849062009dc9565b909155505060405160469062001895908790879062009d80565b908152602001604051809103902054600014158015620018e65750426201518060468787604051620018c992919062009d80565b908152602001604051809103902054620018e4919062009dc9565b105b156200190557604051631898eb6b60e01b815260040160405180910390fd5b6000806200191585600262007e00565b91509150816200193857604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b1919062009ddf565b9050620019bf858362007e8a565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019ff9392919062009e0f565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3d916001600160a01b0316908a9060040162009d66565b600060405180830381600087803b15801562001a5857600080fd5b505af115801562001a6d573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa557604051630f22c43960e41b8152612000600482015260240162001134565b60005462010000900460ff161562001ad057604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b219187908790819084018382808284376000920191909152506200805192505050565b915091508062001b445760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b6a575050604080516000815260208101909152905062001ddd565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b9a9160040190815260200190565b6020604051808303816000875af115801562001bba573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001be0919062009e3e565b90508062001c875782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3c92919062009e5e565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001ddd95505050505050565b600062001c9484620081b4565b9050600081600481111562001cad5762001cad62009df9565b0362001ccf575050604080516000815260208101909152925062001ddd915050565b6040516000906110049047908381818185875af1925050503d806000811462001d15576040519150601f19603f3d011682016040523d82523d6000602084013e62001d1a565b606091505b505090508062001d3d576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d9092919062009e5e565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001ddd975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e21576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ecd5760405163b1d02c3d60e01b815260040160405180910390fd5b8062001edb603f8262007ddd565b62001ef95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3757604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f87573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fad919062009ddf565b101562001fcd576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001ff35760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201790849062009e85565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200208057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020b25760405163b1d02c3d60e01b815260040160405180910390fd5b33620020c0603f8262007ddd565b620020de5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200210657604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214757506001600160a01b03821660009081526047602052604090205460ff165b156200216657604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218c90620151809062009dc9565b1115620021ac57604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b0316331462002265576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200230b5760405163b1d02c3d60e01b815260040160405180910390fd5b8162002319603f8262007ddd565b620023375760405163056e881160e01b815260040160405180910390fd5b816000036200235957604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023c19062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620023ef9062009d30565b8015620024405780601f10620024145761010080835404028352916020019162002440565b820191906000526020600020905b8154815290600101906020018083116200242257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200246b9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620024999062009d30565b8015620024ea5780601f10620024be57610100808354040283529160200191620024ea565b820191906000526020600020905b815481529060010190602001808311620024cc57829003601f168201915b50505050508152602001600182018054620025059062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620025339062009d30565b8015620025845780601f10620025585761010080835404028352916020019162002584565b820191906000526020600020905b8154815290600101906020018083116200256657829003601f168201915b505050505081526020016002820180546200259f9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cd9062009d30565b80156200261e5780601f10620025f2576101008083540402835291602001916200261e565b820191906000526020600020905b8154815290600101906020018083116200260057829003601f168201915b50505050508152602001600382018054620026399062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620026679062009d30565b8015620026b85780601f106200268c57610100808354040283529160200191620026b8565b820191906000526020600020905b8154815290600101906020018083116200269a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002744575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e4919062009ddf565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002835929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b031603620028625762002862866200880a565b6040808301519051633041949b60e01b815261200591633041949b916200288f9190879060040162009d66565b600060405180830381600087803b158015620028aa57600080fd5b505af1158015620028bf573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028f657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620029285760405163b1d02c3d60e01b815260040160405180910390fd5b8362002936603f8262007ddd565b620029545760405163056e881160e01b815260040160405180910390fd5b8362002962603f8262007ddd565b620029805760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029b057604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029e35760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a4b9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002a799062009d30565b801562002aca5780601f1062002a9e5761010080835404028352916020019162002aca565b820191906000526020600020905b81548152906001019060200180831162002aac57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002af59062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002b239062009d30565b801562002b745780601f1062002b485761010080835404028352916020019162002b74565b820191906000526020600020905b81548152906001019060200180831162002b5657829003601f168201915b5050505050815260200160018201805462002b8f9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbd9062009d30565b801562002c0e5780601f1062002be25761010080835404028352916020019162002c0e565b820191906000526020600020905b81548152906001019060200180831162002bf057829003601f168201915b5050505050815260200160028201805462002c299062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002c579062009d30565b801562002ca85780601f1062002c7c5761010080835404028352916020019162002ca8565b820191906000526020600020905b81548152906001019060200180831162002c8a57829003601f168201915b5050505050815260200160038201805462002cc39062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002cf19062009d30565b801562002d425780601f1062002d165761010080835404028352916020019162002d42565b820191906000526020600020905b81548152906001019060200180831162002d2457829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dce57505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e599062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002e879062009d30565b801562002ed85780601f1062002eac5761010080835404028352916020019162002ed8565b820191906000526020600020905b81548152906001019060200180831162002eba57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002f039062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002f319062009d30565b801562002f825780601f1062002f565761010080835404028352916020019162002f82565b820191906000526020600020905b81548152906001019060200180831162002f6457829003601f168201915b5050505050815260200160018201805462002f9d9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002fcb9062009d30565b80156200301c5780601f1062002ff0576101008083540402835291602001916200301c565b820191906000526020600020905b81548152906001019060200180831162002ffe57829003601f168201915b50505050508152602001600282018054620030379062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620030659062009d30565b8015620030b65780601f106200308a57610100808354040283529160200191620030b6565b820191906000526020600020905b8154815290600101906020018083116200309857829003601f168201915b50505050508152602001600382018054620030d19062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620030ff9062009d30565b8015620031505780601f10620031245761010080835404028352916020019162003150565b820191906000526020600020905b8154815290600101906020018083116200313257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031dc5750505050508152505090508060e0015180156200321f5750876001600160a01b0316836001600160a01b031614155b156200323e57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af115801562003295573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032bb919062009ddf565b9050603754811015620032e15760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200337657506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa1580156200334e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003374919062009ddf565b105b1562003395576040516317b204bf60e11b815260040160405180910390fd5b6000620186a0603a5483620033ab919062009e9b565b620033b7919062009da6565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200340c576040519150601f19603f3d011682016040523d82523d6000602084013e62003411565b606091505b505090508062003434576040516312171d8360e31b815260040160405180910390fd5b62003440828462009e85565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af115801562003496573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034bd919062009ddf565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003522939291909283526020830191909152604082015260600190565b60405180910390a460408051600280825260608201835260009260208301908036833701905050905086604001518160008151811062003566576200356662009eb5565b60200260200101906001600160a01b031690816001600160a01b031681525050856040015181600181518110620035a157620035a162009eb5565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035e29084908c9060040162009ecb565b600060405180830381600087803b158015620035fd57600080fd5b505af115801562003612573d6000803e3d6000fd5b505050508a1562003684576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364f92919062009d66565b600060405180830381600087803b1580156200366a57600080fd5b505af11580156200367f573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036c957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036fb5760405163b1d02c3d60e01b815260040160405180910390fd5b3362003709603f8262007ddd565b620037275760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374d90620151809062009dc9565b11156200376d57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b90910481169085161115620037a75760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037e5576009820154620037df9086906001600160401b031662009ef7565b620037ff565b6009820154620037ff906001600160401b03168662009ef7565b60098301546001600160401b039182169250600160801b9004168111156200383a5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038b9603f62008930565b90508086101562003f2f578415620038d25784620038d4565b805b9450600085620038e5888462009e85565b11620038fd57620038f7878362009e85565b620038ff565b855b9050806001600160401b038111156200391c576200391c620095b3565b60405190808252806020026020018201604052801562003946578160200160208202803683370190505b509450806001600160401b03811115620039645762003964620095b3565b6040519080825280602002602001820160405280156200398e578160200160208202803683370190505b509350806001600160401b03811115620039ac57620039ac620095b3565b604051908082528060200260200182016040528015620039e157816020015b6060815260200190600190039081620039cb5790505b50925060005b8181101562003f2c57600062003a0b62003a02838b62009dc9565b603f906200893b565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a789062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003aa69062009d30565b801562003af75780601f1062003acb5761010080835404028352916020019162003af7565b820191906000526020600020905b81548152906001019060200180831162003ad957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b229062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003b509062009d30565b801562003ba15780601f1062003b755761010080835404028352916020019162003ba1565b820191906000526020600020905b81548152906001019060200180831162003b8357829003601f168201915b5050505050815260200160018201805462003bbc9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003bea9062009d30565b801562003c3b5780601f1062003c0f5761010080835404028352916020019162003c3b565b820191906000526020600020905b81548152906001019060200180831162003c1d57829003601f168201915b5050505050815260200160028201805462003c569062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003c849062009d30565b801562003cd55780601f1062003ca95761010080835404028352916020019162003cd5565b820191906000526020600020905b81548152906001019060200180831162003cb757829003601f168201915b5050505050815260200160038201805462003cf09062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003d1e9062009d30565b801562003d6f5780601f1062003d435761010080835404028352916020019162003d6f565b820191906000526020600020905b81548152906001019060200180831162003d5157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003dfb575050505050815250509050806000015188848151811062003e345762003e3462009eb5565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ecd5780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003ea1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ec7919062009ddf565b62003ed0565b60005b87848151811062003ee55762003ee562009eb5565b602002602001018181525050806080015186848151811062003f0b5762003f0b62009eb5565b602002602001018190525050508062003f249062009f1a565b9050620039e7565b50505b92959194509250565b60005462010000900460ff161562003f6357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f955760405163b1d02c3d60e01b815260040160405180910390fd5b3362003fa3603f8262007ddd565b1562003fc257604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b03888116600090815260436020526040902054161515806200400357506001600160a01b03881660009081526047602052604090205460ff165b156200402257604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200404192919062009d80565b908152604051908190036020019020546001600160a01b03161415806200408b5750604887876040516200407792919062009d80565b9081526040519081900360200190205460ff165b15620040aa576040516311fdb94760e01b815260040160405180910390fd5b6000620040b8838062009f36565b604051602001620040cb92919062009d80565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041155760405163c0bf414360e01b815260040160405180910390fd5b60006200412b670de0b6b3a76400003462009e85565b905060365481101562004151576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200417957604051636520611b60e11b815260040160405180910390fd5b6113886200418e604087016020880162009797565b6001600160401b03161180620041d45750620041b1604086016020870162009797565b6001600160401b0316620041c9602087018762009797565b6001600160401b0316115b80620042135750620041ed604086016020870162009797565b6001600160401b031662004208606087016040880162009797565b6001600160401b0316115b15620042325760405163dc81db8560e01b815260040160405180910390fd5b6200427d62004242858062009f36565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200894992505050565b6200429b57604051635dba5ad760e01b815260040160405180910390fd5b620042aa838a8a8a8a62008aeb565b620042c857604051631647e3cb60e11b815260040160405180910390fd5b60006200431684620042db878062009f36565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c1b92505050565b905062004325603f8562008d1c565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043a58b8d8362009fde565b508560058201620043b782826200a0a6565b5087905060098201620043cb82826200a1df565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b0319169288169290921790915551859060459062004419908e908e9062009d80565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200449c9291906200a2af565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b5b6833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b5b6833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b9062004540908590899060040162009d66565b600060405180830381600087803b1580156200455b57600080fd5b505af115801562004570573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045ad603f8262007ddd565b620045cb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620046999062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620046c79062009d30565b8015620047185780601f10620046ec5761010080835404028352916020019162004718565b820191906000526020600020905b815481529060010190602001808311620046fa57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047439062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620047719062009d30565b8015620047c25780601f106200479657610100808354040283529160200191620047c2565b820191906000526020600020905b815481529060010190602001808311620047a457829003601f168201915b50505050508152602001600182018054620047dd9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200480b9062009d30565b80156200485c5780601f1062004830576101008083540402835291602001916200485c565b820191906000526020600020905b8154815290600101906020018083116200483e57829003601f168201915b50505050508152602001600282018054620048779062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a59062009d30565b8015620048f65780601f10620048ca57610100808354040283529160200191620048f6565b820191906000526020600020905b815481529060010190602001808311620048d857829003601f168201915b50505050508152602001600382018054620049119062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200493f9062009d30565b8015620049905780601f10620049645761010080835404028352916020019162004990565b820191906000526020600020905b8154815290600101906020018083116200497257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a1c5750505091909252505050608001519392505050565b336110011462004a6d57604051630f22c43960e41b8152611001600482015260240162001134565b6001600160a01b038082166000908152604360205260409020541662004a95603f8262007ddd565b62004ab35760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b16573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b3c919062009ddf565b90506000603d544262004b50919062009dc9565b905062004b5e838262007e8a565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b9e9392919062009e0f565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bdc916001600160a01b031690889060040162009d66565b600060405180830381600087803b15801562004bf757600080fd5b505af115801562004c0c573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c385750600054600160ff909116105b8062004c545750303b15801562004c54575060005460ff166001145b62004cb95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001134565b6000805460ff19166001179055801562004cdd576000805461ff0019166101001790555b33411462004cfe5760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d1e576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755602d60385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562278d00603e55604a5560408051610760810190915261074080825260609182916200b5d6602083013980602001905181019062004daf91906200a2eb565b915060405180611160016040528061114081526020016200bd16611140913980602001905181019062004de391906200a38f565b905060005b825181101562004e525760016047600085848151811062004e0d5762004e0d62009eb5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e4a8162009f1a565b905062004de8565b5060005b815181101562004ec3576001604883838151811062004e795762004e7962009eb5565b602002602001015160405162004e9091906200a48c565b908152604051908190036020019020805491151560ff1990921691909117905562004ebb8162009f1a565b905062004e56565b5062004ee37308e68ec70fa3b629784fdb28887e206ce8561e0862008d33565b505080156200174c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f5657604051630f22c43960e41b8152612000600482015260240162001134565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f8b939291906200a4aa565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fcb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004ff657604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200503f603f8462007ddd565b6200505d5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050e0919062009ddf565b90505b92915050565b60005462010000900460ff16156200511457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051465760405163b1d02c3d60e01b815260040160405180910390fd5b8162005154603f8262007ddd565b620051725760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051985760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620052009062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200522e9062009d30565b80156200527f5780601f1062005253576101008083540402835291602001916200527f565b820191906000526020600020905b8154815290600101906020018083116200526157829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052aa9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d89062009d30565b8015620053295780601f10620052fd5761010080835404028352916020019162005329565b820191906000526020600020905b8154815290600101906020018083116200530b57829003601f168201915b50505050508152602001600182018054620053449062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620053729062009d30565b8015620053c35780601f106200539757610100808354040283529160200191620053c3565b820191906000526020600020905b815481529060010190602001808311620053a557829003601f168201915b50505050508152602001600282018054620053de9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200540c9062009d30565b80156200545d5780601f1062005431576101008083540402835291602001916200545d565b820191906000526020600020905b8154815290600101906020018083116200543f57829003601f168201915b50505050508152602001600382018054620054789062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620054a69062009d30565b8015620054f75780601f10620054cb57610100808354040283529160200191620054f7565b820191906000526020600020905b815481529060010190602001808311620054d957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055835750505050508152505090508060e001518015620055c65750856001600160a01b0316826001600160a01b031614155b15620055e557604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005636573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200565d919062009ddf565b9050826001600160a01b0316876001600160a01b03166000805160206200b5b683398151915283876040516200569d929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056d29190879060040162009d66565b600060405180830381600087803b158015620056ed57600080fd5b505af115801562005702573d6000803e3d6000fd5b50505050851562001745576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057369086908b9060040162009d66565b600060405180830381600087803b1580156200575157600080fd5b505af115801562005766573d6000803e3d6000fd5b5050505050505050505050565b6200579f6040518060800160405280606081526020016060815260200160608152602001606081525090565b81620057ad603f8262007ddd565b620057cb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620058029062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620058309062009d30565b8015620058815780601f10620058555761010080835404028352916020019162005881565b820191906000526020600020905b8154815290600101906020018083116200586357829003601f168201915b505050505081526020016001820180546200589c9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620058ca9062009d30565b80156200591b5780601f10620058ef576101008083540402835291602001916200591b565b820191906000526020600020905b815481529060010190602001808311620058fd57829003601f168201915b50505050508152602001600282018054620059369062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620059649062009d30565b8015620059b55780601f106200598957610100808354040283529160200191620059b5565b820191906000526020600020905b8154815290600101906020018083116200599757829003601f168201915b50505050508152602001600382018054620059d09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620059fe9062009d30565b801562005a4f5780601f1062005a235761010080835404028352916020019162005a4f565b820191906000526020600020905b81548152906001019060200180831162005a3157829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a8b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005abd5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ac9828262008dcc565b5050565b336110071462005af557604051630f22c43960e41b8152611007600482015260240162001134565b62005b626040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005c1d576020811462005b945783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005bd791858580838501838280828437600092019190915250929392505062008f359050565b90506108fc81108062005beb575061271081115b1562005c145784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60355562006927565b62005c8e6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005d58576020811462005cc05783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005d0391858580838501838280828437600092019190915250929392505062008f359050565b9050683635c9adc5dea0000081108062005d26575069152d02c7e14af680000081115b1562005d4f5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60365562006927565b62005dcb604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005e92576020811462005dfd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005e4091858580838501838280828437600092019190915250929392505062008f359050565b905067016345785d8a000081108062005e605750678ac7230489e8000081115b1562005e895784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60375562006927565b62005f03604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005fbb576020811462005f355783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005f7891858580838501838280828437600092019190915250929392505062008f359050565b905080158062005f8957506101f481115b1562005fb25784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60385562006927565b620060246040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620060e15760208114620060565783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200609991858580838501838280828437600092019190915250929392505062008f359050565b90506203f480811080620060af575062278d0081115b15620060d85784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60395562006927565b6200614f60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620061fc5760208114620061815783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f8401819004810282018101909252828152600091620061c491858580838501838280828437600092019190915250929392505062008f359050565b90506064811115620061f35784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603a5562006927565b6200626c60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b156200632d57602081146200629e5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f8401819004810282018101909252828152600091620062e191858580838501838280828437600092019190915250929392505062008f359050565b9050674563918244f40000811080620062fb5750603c5481115b15620063245784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603b5562006927565b6200639b6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b156200645e5760208114620063cd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200641091858580838501838280828437600092019190915250929392505062008f359050565b905068056bc75e2d631000008110806200642c5750603b548111155b15620064555784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603c5562006927565b620064cb6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620065885760208114620064fd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200654091858580838501838280828437600092019190915250929392505062008f359050565b90506202a300811080620065565750603e548110155b156200657f5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603d5562006927565b620065f36040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620066b05760208114620066255783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200666891858580838501838280828437600092019190915250929392505062008f359050565b9050620d2f008110806200667e5750603d548111155b15620066a75784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603e5562006927565b6200672a6040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620067d657602081146200675c5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200679f91858580838501838280828437600092019190915250929392505062008f359050565b905080600003620067cd5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b604a5562006927565b620068446040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620069045760148114620068765783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b6000620068be601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f359050565b90506001600160a01b038116620068f25784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b620068fd8162008f3a565b5062006927565b838383836040516325ee20d560e21b81526004016200113494939291906200a4c9565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200695e94939291906200a4c9565b60405180910390a150505050565b60005462010000900460ff16156200699757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069c95760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069e757620069e7620095b3565b60405190808252806020026020018201604052801562006a11578160200160208202803683370190505b5090506000805b8381101562006b0f5762006a5a87878381811062006a3a5762006a3a62009eb5565b905060200201602081019062006a51919062009442565b603f9062007ddd565b62006a785760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a915762006a9162009eb5565b905060200201602081019062006aa8919062009442565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ae45762006ae462009eb5565b6001600160a01b039092166020928302919091019091015262006b078162009f1a565b905062006a18565b50604051634484077560e01b8152612005906344840775906200288f908590889060040162009ecb565b606080600062006b4a603f62008930565b90508085101562006d0e57831562006b63578362006b65565b805b935060008462006b76878462009e85565b1162006b8e5762006b88868362009e85565b62006b90565b845b9050806001600160401b0381111562006bad5762006bad620095b3565b60405190808252806020026020018201604052801562006bd7578160200160208202803683370190505b509350806001600160401b0381111562006bf55762006bf5620095b3565b60405190808252806020026020018201604052801562006c1f578160200160208202803683370190505b50925060005b8181101562006d0b5762006c3e62003a02828962009dc9565b85828151811062006c535762006c5362009eb5565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c8c5762006c8c62009eb5565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006ce05762006ce062009eb5565b6001600160a01b039092166020928302919091019091015262006d038162009f1a565b905062006c25565b50505b9250925092565b336110011462006d3d57604051630f22c43960e41b8152611001600482015260240162001134565b60005462010000900460ff161562006d6857604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d90603f8262007ddd565b62006dae5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dd6620151804262009da6565b604a546000828152604b60205260409020549192501162006e0a5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e2b90849062009dc9565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e8057506001600160a01b038416600090815260446020526040902054429062006e7e90620151809062009dc9565b105b1562006e9f576040516330abb81d60e21b815260040160405180910390fd5b60008062006eaf85600062007e00565b915091508162006ed257604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f4b919062009ddf565b905062006f59858362007e8a565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f999392919062009e0f565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005736916001600160a01b0316908a9060040162009d66565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070489062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620070769062009d30565b8015620070c75780601f106200709b57610100808354040283529160200191620070c7565b820191906000526020600020905b815481529060010190602001808311620070a957829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070f29062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620071209062009d30565b8015620071715780601f10620071455761010080835404028352916020019162007171565b820191906000526020600020905b8154815290600101906020018083116200715357829003601f168201915b505050505081526020016001820180546200718c9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620071ba9062009d30565b80156200720b5780601f10620071df576101008083540402835291602001916200720b565b820191906000526020600020905b815481529060010190602001808311620071ed57829003601f168201915b50505050508152602001600282018054620072269062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620072549062009d30565b8015620072a55780601f106200727957610100808354040283529160200191620072a5565b820191906000526020600020905b8154815290600101906020018083116200728757829003601f168201915b50505050508152602001600382018054620072c09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620072ee9062009d30565b80156200733f5780601f1062007313576101008083540402835291602001916200733f565b820191906000526020600020905b8154815290600101906020018083116200732157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073cb5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200743257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620074645760405163b1d02c3d60e01b815260040160405180910390fd5b3362007472603f8262007ddd565b620074905760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620074b690620151809062009dc9565b1115620074d657604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074e79062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620075159062009d30565b8015620075665780601f106200753a5761010080835404028352916020019162007566565b820191906000526020600020905b8154815290600101906020018083116200754857829003601f168201915b50505082875250859160058401915081906200758390826200a4f4565b50602082015160018201906200759a90826200a4f4565b5060408201516002820190620075b190826200a4f4565b5060608201516003820190620075c890826200a4f4565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200763657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076685760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007689576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076fa57620076e7858583818110620076ae57620076ae62009eb5565b9050602002016020810190620076c5919062009442565b848484818110620076da57620076da62009eb5565b9050602002013562008dcc565b620076f28162009f1a565b90506200768c565b5050505050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492938493909160808401916200776c9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200779a9062009d30565b8015620077eb5780601f10620077bf57610100808354040283529160200191620077eb565b820191906000526020600020905b815481529060010190602001808311620077cd57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620078169062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620078449062009d30565b8015620078955780601f10620078695761010080835404028352916020019162007895565b820191906000526020600020905b8154815290600101906020018083116200787757829003601f168201915b50505050508152602001600182018054620078b09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620078de9062009d30565b80156200792f5780601f1062007903576101008083540402835291602001916200792f565b820191906000526020600020905b8154815290600101906020018083116200791157829003601f168201915b505050505081526020016002820180546200794a9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620079789062009d30565b8015620079c95780601f106200799d57610100808354040283529160200191620079c9565b820191906000526020600020905b815481529060010190602001808311620079ab57829003601f168201915b50505050508152602001600382018054620079e49062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462007a129062009d30565b801562007a635780601f1062007a375761010080835404028352916020019162007a63565b820191906000526020600020905b81548152906001019060200180831162007a4557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007aef5750505091909252505050604001519392505050565b600062007b27603f8462007ddd565b62007b455760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200509c565b60005462010000900460ff161562007bb457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007be65760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bf4603f8262007ddd565b62007c125760405163056e881160e01b815260040160405180910390fd5b3362007c22818787878762008aeb565b62007c4057604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c5f92919062009d80565b908152604051908190036020019020546001600160a01b031614158062007ca957506048868660405162007c9592919062009d80565b9081526040519081900360200190205460ff165b1562007cc8576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cf790620151809062009dc9565b111562007d1757604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d2d91906200a5bc565b908152604051908190036020019020556004810162007d4e87898362009fde565b5042600c820155604051829060459062007d6c908a908a9062009d80565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007dcc908a908a906200a2af565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050e0565b6000806000848460405160200162007e1a9291906200a63a565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e5a5760008093509350505062007e83565b603e5462007e69904262009dc9565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007ed157600080fd5b505af115801562007ee6573d6000803e3d6000fd5b505050506000600162007efa603f62008930565b62007f06919062009e85565b604954108015915062007fc45760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f80919062009e3e565b62007fc45760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fd957600b83018290555b600a83015460ff166200804c57600a8301805460ff19166001908117909155604980546000906200800c90849062009dc9565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080c39062008fa6565b90506000805b620080d48362009019565b15620081a757806000036200810957620080f8620080f2846200903f565b620090a3565b6001600160a01b0316845262008194565b80600103620081355762008121620080f2846200903f565b6001600160a01b0316602085015262008194565b8060020362008161576200814d620080f2846200903f565b6001600160a01b0316604085015262008194565b806003036200818e576200817f62008179846200903f565b620090bb565b60608501526001915062008194565b620081a7565b6200819f8162009f1a565b9050620080c9565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081ec575060208201516001600160a01b0316155b15620081fa57506004919050565b81516200820a90603f9062007ddd565b6200821757506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082839062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620082b19062009d30565b8015620083025780601f10620082d65761010080835404028352916020019162008302565b820191906000526020600020905b815481529060010190602001808311620082e457829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200832d9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200835b9062009d30565b8015620083ac5780601f106200838057610100808354040283529160200191620083ac565b820191906000526020600020905b8154815290600101906020018083116200838e57829003601f168201915b50505050508152602001600182018054620083c79062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620083f59062009d30565b8015620084465780601f106200841a5761010080835404028352916020019162008446565b820191906000526020600020905b8154815290600101906020018083116200842857829003601f168201915b50505050508152602001600282018054620084619062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200848f9062009d30565b8015620084e05780601f10620084b457610100808354040283529160200191620084e0565b820191906000526020600020905b815481529060010190602001808311620084c257829003601f168201915b50505050508152602001600382018054620084fb9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620085299062009d30565b80156200857a5780601f106200854e576101008083540402835291602001916200857a565b820191906000526020600020905b8154815290600101906020018083116200855c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620086065750505050508152505090508060e00151801562008651575082600001516001600160a01b031683602001516001600160a01b031614155b15620086605750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086bc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086e3919062009ddf565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b5b68339815191528387606001516040516200872f929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008792929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087cc9290919060040162009d66565b600060405180830381600087803b158015620087e757600080fd5b505af1158015620087fc573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008834575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008884573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620088aa919062009ddf565b101562005ac957620088cc81603d5442620088c6919062009dc9565b62007e8a565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b1580156200891357600080fd5b505af115801562008928573d6000803e3d6000fd5b505050505050565b6000620050e3825490565b6000620050e0838362009193565b60008082905060038151108062008961575060098151115b15620089705750600092915050565b60418160008151811062008988576200898862009eb5565b016020015160f81c1080620089ba5750605a81600081518110620089b057620089b062009eb5565b016020015160f81c115b15620089c95750600092915050565b60015b815181101562008ae1576030828281518110620089ed57620089ed62009eb5565b016020015160f81c108062008a1e5750603982828151811062008a145762008a1462009eb5565b016020015160f81c115b801562008a6e5750604182828151811062008a3d5762008a3d62009eb5565b016020015160f81c108062008a6e5750605a82828151811062008a645762008a6462009eb5565b016020015160f81c115b801562008abe5750606182828151811062008a8d5762008a8d62009eb5565b016020015160f81c108062008abe5750607a82828151811062008ab45762008ab462009eb5565b016020015160f81c115b1562008ace575060009392505050565b62008ad98162009f1a565b9050620089cc565b5060019392505050565b600060308414158062008aff575060608214155b1562008b0e5750600062008c12565b60008686864660405160200162008b2994939291906200a678565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b839594939291906200a6a5565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bcd57600080fd5b5060008160008151811062008be65762008be662009eb5565b016020015160f81c90506001811462008c085760009550505050505062008c12565b6001955050505050505b95945050505050565b60008061200361dead60405162008c32906200941e565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c75573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008ca99291906200a6dd565b6000604051808303818588803b15801562008cc357600080fd5b505af115801562008cd8573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050e0836001600160a01b038416620091c0565b600054610100900460ff1662008da05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001134565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dda603f8262007ddd565b62008df85760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e5c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e82919062009ddf565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008eca91815260200190565b60405180910390a350505050565b60008160405160200162008eed91906200a48c565b604051602081830303815290604052805190602001208360405160200162008f1691906200a48c565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fd48262009212565b62008fde57600080fd5b600062008fef836020015162009245565b836020015162009000919062009dc9565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620090319162009dc9565b836020015110915050919050565b60408051808201909152600080825260208201526200905e8262009019565b6200906857600080fd5b602082015160006200907a82620092d4565b905062009088818362009dc9565b60209485015260408051808201909152908152928301525090565b8051600090601514620090b557600080fd5b620050e3825b805160009015801590620090d157508151602110155b620090db57600080fd5b6000620090ec836020015162009245565b90508083600001511015620091445760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001134565b82516000906200915690839062009e85565b90506000808386602001516200916d919062009dc9565b90508051915060208310156200918a57826020036101000a820491505b50949350505050565b6000826000018281548110620091ad57620091ad62009eb5565b9060005260206000200154905092915050565b60008181526001830160205260408120546200920957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050e3565b506000620050e3565b805160009081036200922657506000919050565b6020820151805160001a9060c082101562008ae1575060009392505050565b8051600090811a60808110156200925f5750600092915050565b60b88110806200927c575060c081108015906200927c575060f881105b156200928b5750600192915050565b60c0811015620092c657620092a3600160b86200a703565b620092b29060ff168262009e85565b620092bf90600162009dc9565b9392505050565b620092a3600160f86200a703565b80516000908190811a6080811015620092f1576001915062009417565b60b88110156200931d576200930860808262009e85565b6200931590600162009dc9565b915062009417565b60c08110156200939657600060b78203600186019550806020036101000a8651049150600181018201935050808310156200938f5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001134565b5062009417565b60f8811015620093ad576200930860c08262009e85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620094155760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001134565b505b5092915050565b610e96806200a72083390190565b6001600160a01b03811681146200174c57600080fd5b6000602082840312156200945557600080fd5b8135620092bf816200942c565b60008083601f8401126200947557600080fd5b5081356001600160401b038111156200948d57600080fd5b60208301915083602082850101111562007e8357600080fd5b60008060208385031215620094ba57600080fd5b82356001600160401b03811115620094d157600080fd5b620094df8582860162009462565b90969095509350505050565b6000806000604084860312156200950157600080fd5b833560ff811681146200951357600080fd5b925060208401356001600160401b038111156200952f57600080fd5b6200953d8682870162009462565b9497909650939450505050565b60005b83811015620095675781810151838201526020016200954d565b50506000910152565b600081518084526200958a8160208601602086016200954a565b601f01601f19169290920160200192915050565b602081526000620050e0602083018462009570565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095ee57620095ee620095b3565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200961f576200961f620095b3565b604052919050565b60006001600160401b03821115620096435762009643620095b3565b50601f01601f191660200190565b600062009668620096628462009627565b620095f4565b90508281528383830111156200967d57600080fd5b828260208301376000602084830101529392505050565b600060208284031215620096a757600080fd5b81356001600160401b03811115620096be57600080fd5b8201601f81018413620096d057600080fd5b620096e18482356020840162009651565b949350505050565b60008060408385031215620096fd57600080fd5b82356200970a816200942c565b946020939093013593505050565b80151581146200174c57600080fd5b600080600080608085870312156200973e57600080fd5b84356200974b816200942c565b935060208501356200975d816200942c565b9250604085013591506060850135620097768162009718565b939692955090935050565b6001600160401b03811681146200174c57600080fd5b600060208284031215620097aa57600080fd5b8135620092bf8162009781565b60008060408385031215620097cb57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620098155781516001600160a01b031687529582019590820190600101620097ee565b509495945050505050565b608081526000620098356080830187620097da565b82810360208481019190915286518083528782019282019060005b818110156200986e5784518352938301939183019160010162009850565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098c357601f19858403018752620098b083835162009570565b9686019692509085019060010162009891565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098f957600080fd5b883562009906816200942c565b975060208901356001600160401b03808211156200992357600080fd5b620099318c838d0162009462565b909950975060408b01359150808211156200994b57600080fd5b620099598c838d0162009462565b90975095508591506060605f19840112156200997457600080fd5b60608b01945060c08b01359250808311156200998f57600080fd5b505088016080818b031215620099a457600080fd5b8091505092959891949750929550565b60008060408385031215620099c857600080fd5b8235620099d5816200942c565b91506020830135620099e78162009718565b809150509250929050565b60208152600082516080602084015262009a1060a084018262009570565b90506020840151601f198085840301604086015262009a30838362009570565b9250604086015191508085840301606086015262009a4f838362009570565b925060608601519150808584030160808601525062008c12828262009570565b6000806000806040858703121562009a8657600080fd5b84356001600160401b038082111562009a9e57600080fd5b62009aac8883890162009462565b9096509450602087013591508082111562009ac657600080fd5b5062009ad58782880162009462565b95989497509550505050565b60008083601f84011262009af457600080fd5b5081356001600160401b0381111562009b0c57600080fd5b6020830191508360208260051b850101111562007e8357600080fd5b60008060006040848603121562009b3e57600080fd5b83356001600160401b0381111562009b5557600080fd5b62009b638682870162009ae1565b909450925050602084013562009b79816200942c565b809150509250925092565b60608152600062009b996060830186620097da565b828103602084015262009bad8186620097da565b915050826040830152949350505050565b600082601f83011262009bd057600080fd5b620050e08383356020850162009651565b60006020828403121562009bf457600080fd5b81356001600160401b038082111562009c0c57600080fd5b908301906080828603121562009c2157600080fd5b62009c2b620095c9565b82358281111562009c3b57600080fd5b62009c498782860162009bbe565b82525060208301358281111562009c5f57600080fd5b62009c6d8782860162009bbe565b60208301525060408301358281111562009c8657600080fd5b62009c948782860162009bbe565b60408301525060608301358281111562009cad57600080fd5b62009cbb8782860162009bbe565b60608301525095945050505050565b6000806000806040858703121562009ce157600080fd5b84356001600160401b038082111562009cf957600080fd5b62009d078883890162009ae1565b9096509450602087013591508082111562009d2157600080fd5b5062009ad58782880162009ae1565b600181811c9082168062009d4557607f821691505b6020821081036200462657634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dc457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050e357620050e362009d90565b60006020828403121562009df257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e305762009e3062009df9565b826040830152949350505050565b60006020828403121562009e5157600080fd5b8151620092bf8162009718565b828152604081016005831062009e785762009e7862009df9565b8260208301529392505050565b81810381811115620050e357620050e362009d90565b8082028115828204841417620050e357620050e362009d90565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ee06040830185620097da565b905060018060a01b03831660208301529392505050565b6001600160401b0382811682821603908082111562009417576200941762009d90565b60006001820162009f2f5762009f2f62009d90565b5060010190565b6000808335601e1984360301811262009f4e57600080fd5b8301803591506001600160401b0382111562009f6957600080fd5b60200191503681900382131562007e8357600080fd5b601f8211156200804c57600081815260208120601f850160051c8101602086101562009fa85750805b601f850160051c820191505b81811015620089285782815560010162009fb4565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009ff85762009ff8620095b3565b6200a010836200a009835462009d30565b8362009f7f565b6000601f8411600181146200a04357600085156200a02e5750838201355b6200a03a868262009fc9565b845550620076fa565b600083815260209020601f19861690835b828110156200a07657868501358255602094850194600190920191016200a054565b50868210156200a0945760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a0b2828362009f36565b6001600160401b038111156200a0cc576200a0cc620095b3565b6200a0e4816200a0dd855462009d30565b8562009f7f565b6000601f8211600181146200a11757600083156200a1025750838201355b6200a10e848262009fc9565b8655506200a174565b600085815260209020601f19841690835b828110156200a14a57868501358255602094850194600190920191016200a128565b50848210156200a1685760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a187602083018362009f36565b6200a19781836001860162009fde565b50506200a1a8604083018362009f36565b6200a1b881836002860162009fde565b50506200a1c9606083018362009f36565b6200a1d981836003860162009fde565b50505050565b81356200a1ec8162009781565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a2198162009781565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a2598162009781565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096e16020830184866200a286565b60006001600160401b038211156200a2e1576200a2e1620095b3565b5060051b60200190565b600060208083850312156200a2ff57600080fd5b82516001600160401b038111156200a31657600080fd5b8301601f810185136200a32857600080fd5b80516200a33962009662826200a2c5565b81815260059190911b820183019083810190878311156200a35957600080fd5b928401925b828410156200a3845783516200a374816200942c565b825292840192908401906200a35e565b979650505050505050565b600060208083850312156200a3a357600080fd5b82516001600160401b03808211156200a3bb57600080fd5b818501915085601f8301126200a3d057600080fd5b81516200a3e162009662826200a2c5565b81815260059190911b830184019084810190888311156200a40157600080fd5b8585015b838110156200a47f578051858111156200a41f5760008081fd5b8601603f81018b136200a4325760008081fd5b8781015160406200a447620096628362009627565b8281528d828486010111156200a45d5760008081fd5b6200a46e838c83018487016200954a565b86525050509186019186016200a405565b5098975050505050505050565b600082516200a4a08184602087016200954a565b9190910192915050565b60ff8416815260406020820152600062008c126040830184866200a286565b6040815260006200a4df6040830186886200a286565b82810360208401526200a3848185876200a286565b81516001600160401b038111156200a510576200a510620095b3565b6200a528816200a521845462009d30565b8462009f7f565b602080601f8311600181146200a55c57600084156200a5475750858301515b6200a553858262009fc9565b86555062008928565b600085815260208120601f198616915b828110156200a58d578886015182559484019460019091019084016200a56c565b50858210156200a5ac5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5cc8162009d30565b600182811680156200a5e757600181146200a5fd576200a62e565b60ff19841687528215158302870194506200a62e565b8760005260208060002060005b858110156200a6255781548a8201529084019082016200a60a565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a664576200a66462009df9565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6b9818460208b016200954a565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096e19083018462009570565b60ff8281168282160390811115620050e357620050e362009d9056fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656424d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e0400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000038000000000000000000000000295e26495cef6f69dfa69911d9d8e4f3bbadb89b00000000000000000000000072b61c6014342d914470ec7ac2975be345796c2b0000000000000000000000002465176c461afb316ebc773c61faee85a6515daa0000000000000000000000007ae2f5b9e386cd1b50a4550696d957cb4900f03a000000000000000000000000b4dd66d7c2c7e57f628210187192fb89d4b99dd4000000000000000000000000e9ae3261a475a27bb1028f140bc2a7c843318afd000000000000000000000000ee226379db83cffc681495730c11fdde79ba4c0c0000000000000000000000003f349bbafec1551819b8be1efea2fc46ca749aa10000000000000000000000008b6c8fd93d6f4cea42bbb345dbc6f0dfdb5bec73000000000000000000000000ef0274e31810c9df02f98fafde0f841f4e66a1cd000000000000000000000000a6f79b60359f141df90a0c745125b131caaffd12000000000000000000000000e2d3a739effcd3a99387d015e260eefac72ebea100000000000000000000000061dd481a114a2e761c554b641742c973867899d3000000000000000000000000cc8e6d00c17eb431350c6c50d8b8f05176b90b11000000000000000000000000ea0a6e3c511bbd10f4519ece37dc24887e11b55d0000000000000000000000002d4c407bbe49438ed859fe965b140dcf1aab71a9000000000000000000000000685b1ded8013785d6623cc18d214320b6bb64759000000000000000000000000d1d6bf74282782b0b3eb1413c901d6ecf02e8e2800000000000000000000000070f657164e5b75689b64b7fd1fa275f334f28e18000000000000000000000000be807dddb074639cd9fa61b47676c064fc50d62c000000000000000000000000b218c5d6af1f979ac42bc68d98a5a0d796c6ab010000000000000000000000009f8ccdafcc39f3c7d6ebf637c9151673cbc36b88000000000000000000000000d93dbfb27e027f5e9e6da52b9e1c413ce35adc11000000000000000000000000ce2fd7544e0b2cc94692d4a704debef7bcb613280000000000000000000000000bac492386862ad3df4b666bc096b0505bb694da000000000000000000000000733fda7714a05960b7536330be4dbb135bef0ed600000000000000000000000035ebb5849518aff370ca25e19e1072cc1a9fabca000000000000000000000000ebe0b55ad7bb78309180cada12427d120fdbcc3a0000000000000000000000006488aa4d1955ee33403f8ccb1d4de5fb97c7ade20000000000000000000000004396e28197653d0c244d95f8c1e57da902a72b4e000000000000000000000000702be18040aa2a9b1af9219941469f1a435854fc00000000000000000000000012d810c13e42811e9907c02e02d1fad46cfa18ba0000000000000000000000002a7cdd959bfe8d9487b2a43b33565295a698f7e2000000000000000000000000b8f7166496996a7da21cf1f1b04d9b3e26a3d0770000000000000000000000009bb832254baf4e8b4cc26bd2b52b31389b56e98b0000000000000000000000004430b3230294d12c6ab2aac5c2cd68e80b16b581000000000000000000000000c2be4ec20253b8642161bc3f444f53679c1f3d47000000000000000000000000ee01c3b1283aa067c58eab4709f85e99d46de5fe0000000000000000000000009ef9f4360c606c7ab4db26b016007d3ad0ab86a00000000000000000000000002f7be8361c80a4c1e7e9aaf001d0877f1cfde21800000000000000000000000035e7a025f4da968de7e4d7e4004197917f4070f1000000000000000000000000d6caa02bbebaebb5d7e581e4b66559e635f805ff0000000000000000000000008c4d90829ce8f72d0163c1d5cf348a862d55063000000000000000000000000068bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d00000000000000000000000082012708dafc9e1b880fd083b32182b869be8e090000000000000000000000006bbad7cf34b5fa511d8e963dbba288b1960e75d600000000000000000000000022b81f8e175ffde54d797fe11eb03f9e3bf75f1d00000000000000000000000078f3adfc719c99674c072166708589033e2d9afe00000000000000000000000029a97c6effb8a411dabc6adeefaa84f5067c8bbe000000000000000000000000aacf6a8119f7e11623b5a43da638e91f669a130f0000000000000000000000002b3a6c089311b478bf629c29d790a7a6db3fc1b9000000000000000000000000fe6e72b223f6d6cf4edc6bff92f30e84b8258249000000000000000000000000a6503279e8b5c7bb5cf4defd3ec8abf3e009a80b0000000000000000000000004ee63a09170c3f2207aeca56134fc2bee1b28e3c000000000000000000000000ac0e15a038eedfc68ba3c35c73fed5be4a07afb500000000000000000000000069c77a677c40c7fbea129d4b171a39b7a8ddabfa00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000056000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006e0000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000086000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000920000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000009e00000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b600000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000e600000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000f200000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000fe0000000000000000000000000000000000000000000000000000000000000104000000000000000000000000000000000000000000000000000000000000010a00000000000000000000000000000000000000000000000000000000000000030977cf58294f7239d515e15b24cfeb82494056cf691eaf729b165f32c9757c429dba5051155903067e56ebe3698678e9100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003081db0422a5fd08e40db1fc2368d2245e4b18b1d0b85c921aaaafd2e341760e29fc613edd39f71254614e2055c3287a510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a923564c6ffd37fb2fe9f118ef88092e8762c7addb526ab7eb1e772baef85181f892c731be0c1891a50e6b06262c816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b84f83ff2df44193496793b847f64e9d6db1b3953682bb95edd096eb1e69bbd357c200992ca78050d0cbe180cfaa018e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0de8472be0308918c8bdb369bf5a67525210daffa053c52224c1d2ef4f5b38e4ecfcd06a1cc51c39c3a7dccfcb6b507000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ae7bc6faa3f0cc3e6093b633fd7ee4f86970926958d0b7ec80437f936acf212b78f0cd095f4565fff144fd458d233a5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003084248a459464eec1a21e7fc7b71a053d9644e9bb8da4853b8f872cd7c1d6b324bf1922829830646ceadfb658d3de009a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a8a257074e82b881cfa06ef3eb4efeca060c2531359abd0eab8af1e3edfa2025fca464ac9c3fd123f6c24a0d7886948500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003098cbf822e4bc29f1701ac0350a3d042cd0756e9f74822c6481773ceb000641c51b870a996fe0f6a844510b1061f38cd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b772e180fbf38a051c97dabc8aaa0126a233a9e828cdafcc7422c4bb1f4030a56ba364c54103f26bad91508b5220b741000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030956c470ddff48cb49300200b5f83497f3a3ccb3aeb83c5edd9818569038e61d197184f4aa6939ea5e9911e3e98ac6d210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a80967d39e406a0a9642d41e9007a27fc1150a267d143a9f786cd2b5eecbdcc4036273705225b956d5e2f8f5eb95d25000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b3a3d4feb825ae9702711566df5dbf38e82add4dd1b573b95d2466fa6501ccb81e9d26a352b96150ccbf7b697fd0a419000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2d4c6283c44a1c7bd503aaba7666e9f0c830e0ff016c1c750a5e48757a713d0836b1cabfd5c281b1de3b77d1c19218300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003093c1f7f6929d1fe2a17b4e14614ef9fc5bdc713d6631d675403fbeefac55611bf612700b1b65f4744861b80b0f7d6ab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a60f82a7bcf74b4cb053b9bfe83d0ed02a84ebb10865dfdd8e26e7535c43a1cccd268e860f502216b379dfc9971d358000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030939e8fb41b682372335be8070199ad3e8621d1743bcac4cc9d8f0f6e10f41e56461385c8eb5daac804fe3f2bca6ce73900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096a26afa1295da81418593bd12814463d9f6e45c36a0e47eb4cd3e5b6af29c41e2a3a5636430155a466e216585af3ba7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b1f2c71577def3144fabeb75a8a1c8cb5b51d1d1b4a05eec67988b8685008baa17459ec425dbaebc852f496dc92196cd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b659ad0fbd9f515893fdd740b29ba0772dbde9b4635921dd91bd2963a0fc855e31f6338f45b211c4e9dedb7f2eb09de70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308819ec5ec3e97e1f03bbb4bb6055c7a5feac8f4f259df58349a32bb5cb377e2cb1f362b77f1dd398cfd3e9dba46138c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b313f9cba57c63a84edb4079140e6dbd7829e5023c9532fce57e9fe602400a2953f4bf7dab66cca16e97be95d4de7044000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b64abe25614c9cfd32e456b4d521f29c8357f4af4606978296c9be93494072ac05fa86e3d27cc8d66e65000f8ba33fbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0bec348681af766751cb839576e9c515a09c8bffa30a46296ccc56612490eb480d03bf948e10005bbcc0421f90b3d4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0245c33bc556cfeb013cd3643b30dbdef6df61a0be3ba00cae104b3c587083852e28f8911689c7033f7021a8a1774c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a7f3e2c0b4b16ad183c473bafe30a36e39fa4a143657e229cd23c77f8fbc8e4e4e241695dd3d248d1e51521eee6619140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308fdf49777b22f927d460fa3fcdd7f2ba0cf200634a3dfb5197d7359f2f88aaf496ef8c93a065de0f376d164ff2b6db9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308ab17a9148339ef40aed8c177379c4db0bb5efc6f5c57a5d1a6b58b84d4b562e227196c79bda9a136830ed0c09f378130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308dd20979bd63c14df617a6939c3a334798149151577dd3f1fadb2bd1c1b496bf84c25c879da5f0f9dfdb88c6dd17b1e6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b679cbab0276ac30ff5f198e5e1dedf6b84959129f70fe7a07fcdf13444ba45b5dbaa7b1f650adf8b0acbecd04e2675b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308974616fe8ab950a3cded19b1d16ff49c97bf5af65154b3b097d5523eb213f3d35fc5c57e7276c7f2d83be87ebfdcdf9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ab764a39ff81dad720d5691b852898041a3842e09ecbac8025812d51b32223d8420e6ae51a01582220a10f7722de67c10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000309025b6715c8eaabac0bfccdb2f25d651c9b69b0a184011a4a486b0b2080319d2396e7ca337f2abdf01548b2de1b3ba06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2317f59d86abfaf690850223d90e9e7593d91a29331dfc2f84d5adecc75fc39ecab4632c1b4400a3dd1e1298835bcca00000000000000000000000000000000a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/StakingContract b/core/systemcontracts/feynman/mainnet/StakingContract new file mode 100644 index 0000000000..4e015e4b17 --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/StakingContract @@ -0,0 +1 @@ +6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101b565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611020565b34801561078b57600080fd5b506104f661164d565b3480156107a057600080fd5b506104f6611653565b3480156107b557600080fd5b50610654611659565b3480156107ca57600080fd5b5061042161165e565b3480156107df57600080fd5b50610421611664565b3480156107f457600080fd5b5061042161166d565b34801561080957600080fd5b5061042161180d565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611813565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b0316611819565b34801561089c57600080fd5b50610654611834565b3480156108b157600080fd5b50610654611839565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183e565b3480156108f957600080fd5b506104f6611859565b34801561090e57600080fd5b5061065461185f565b34801561092357600080fd5b506104f6611864565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186a565b3480156109bd57600080fd5b50610654611b32565b3480156109d257600080fd5b506104f6611b37565b3480156109e757600080fd5b506104f6611b3d565b3480156109fc57600080fd5b50610a05611b43565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4c565b348015610a3a57600080fd5b506104f6611b52565b348015610a4f57600080fd5b506104b3611659565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b58565b348015610b2f57600080fd5b506106546122ea565b348015610b4457600080fd5b506104216122ef565b348015610b5957600080fd5b5061042161248c565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612497565b348015610ba957600080fd5b506104216124c4565b348015610bbe57600080fd5b506104f66124ca565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d0565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f3565b348015610c9357600080fd5b506104f661271e565b348015610ca857600080fd5b506104f6612724565b348015610cbd57600080fd5b5061042161272a565b348015610cd257600080fd5b50610654612737565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273c565b348015610d2c57600080fd5b506104f6612771565b348015610d4157600080fd5b50610421612777565b348015610d5657600080fd5b506104f661277d565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614800565b610db2614800565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481e565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b6127a8565b90506000610ef0610eeb836127f2565b612840565b90506000606060ff831660041415610f1557610f0b846128f7565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad7565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b603881565b600881565b60105460ff166002141561106c576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109457506402540be4008106155b6110e5576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611128576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611176576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611231573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e8576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611231576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112a9576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130491859063ffffffff612df716565b9050801561134c57600254811161134c5760405162461bcd60e51b81526004018080602001828103825260258152602001806149be6025913960400191505060405180910390fd5b6000611363846402540be40063ffffffff612e8e16565b600254909150349060009061137f90839063ffffffff612ed716565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139b5790505090506113bb33612f19565b816000815181106113c857fe5b60200260200101819052506113e5886001600160a01b0316612f19565b816001815181106113f257fe5b602002602001018190525061140684612f3c565b8160028151811061141357fe5b60200260200101819052506060611433600261142e84612f4f565b612fd9565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148442620a8c0063ffffffff61305f16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c8876402540be40063ffffffff612e8e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152657818101518382015260200161150e565b50505050905090810190601f1680156115535780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bb573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ec573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bc576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611723576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b50509050806117c6576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff166118ed576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f561481e565b611937610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b905060008060606000805b61194b866130b9565b156119b6578061196857611961610eeb876127f2565b94506119ae565b80600114156119845761197d610eeb876127f2565b93506119ae565b80600214156119a95761199e611999876127f2565b6130da565b9250600191506119ae565b6119b6565b600101611942565b816119fc576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a058361314a565b611a48576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a54610ed684612783565b95506000611a64610eeb886127f2565b9050611a6e61481e565b611a77886130b9565b15611a9a57611a93610ed6611a8e6119998b6127f2565b612783565b9050611adb565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af757611af281888861319e565b611b25565b60ff821660021415611b0e57611af2818888613555565b60ff821660031415610f2a57611af2818888613822565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611baf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bef5760405162461bcd60e51b815260040180806020018281038252602e815260200180614934602e913960400191505060405180910390fd5b611c5084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b879050565b15611db65760208114611caa576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce891858580838501838280828437600092019190915250613c6e92505050565b90506003548110611d2a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614962602e913960400191505060405180910390fd5b6002548111611d6a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614990602e913960400191505060405180910390fd5b6402540be400810615611dae5760405162461bcd60e51b815260040180806020018281038252602c815260200180614908602c913960400191505060405180910390fd5b600155612258565b611e1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b879050565b15611f7c5760208114611e74576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb291858580838501838280828437600092019190915250613c6e92505050565b905080611ef05760405162461bcd60e51b8152600401808060200182810382526022815260200180614a126022913960400191505060405180910390fd5b6001548110611f305760405162461bcd60e51b815260040180806020018281038252602e815260200180614888602e913960400191505060405180910390fd5b6402540be400810615611f745760405162461bcd60e51b815260040180806020018281038252602f815260200180614859602f913960400191505060405180910390fd5b600255612258565b611fe084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b879050565b156120c2576020811461203a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207891858580838501838280828437600092019190915250613c6e92505050565b905060015481116120ba5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b66031913960400191505060405180910390fd5b600355612258565b61212484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b879050565b1561221b576020811461217e576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bc91858580838501838280828437600092019190915250613c6e92505050565b905060008111612213576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612258565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a2576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f8576040519150601f19603f3d011682016040523d82523d6000602084013e6123fd565b606091505b5050905080612445576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125105760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16612553576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314a92505050565b6125d5576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125dd61481e565b61261f610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b9050600061262f610eeb836127f2565b905061263961481e565b612642836130b9565b1561266057612659610ed6611a8e611999866127f2565b90506126a6565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c0576126bb81613c73565b6126ea565b60ff8216600214156126d5576126bb81613e8d565b60ff821660031415610f2a576126bb81613fb7565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278b61483e565b506040805180820190915281518152602082810190820152919050565b6127b061481e565b6127b98261411c565b6127c257600080fd5b60006127d18360200151614156565b60208085015160408051808201909152868152920190820152915050919050565b6127fa61483e565b612803826130b9565b61280c57600080fd5b6020820151600061281c826141b9565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285557508151602110155b61285e57600080fd5b600061286d8360200151614156565b905080836000015110156128c8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ee57826020036101000a820491505b50949350505050565b600060606000806000805b61290b876130b9565b1561295d578261292d57612926612921886127f2565b6142ec565b9150612952565b826001141561294d57612942610eeb886127f2565b905060019350612952565b61295d565b826001019250612902565b836129a3576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b5051905080612a3c57612a2e600484846065614306565b965096505050505050612ad2565b6001600160a01b038316600090815260066020526040902054612a65908363ffffffff61305f16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aee896130b9565b15612b785784612b0b57612b046129218a6127f2565b9350612b6d565b8460011415612b2757612b206129218a6127f2565b9250612b6d565b8460021415612b4757612b3c610eeb8a6127f2565b915060019550612b6d565b8460031415612b6857612b61612b5c8a6127f2565b614402565b9050612b6d565b612b78565b846001019450612ae5565b85612bbe576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b5051905080612c5957612c49600586856065614306565b9850985050505050505050612ad2565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9d908463ffffffff61305f16565b6001600160a01b0386166000908152600860205260409020558115612d8b576001600160a01b038516600090815260046020526040902054612ce5908463ffffffff612ed716565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d27908463ffffffff612ed716565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4b578181015183820152602001612e33565b50505050905090810190601f168015612e785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614446565b9392505050565b6000612ed083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df7565b60408051600560a21b8318601482015260348101909152606090612ed0816144ab565b60606124be612f4a83614501565b6144ab565b6060815160001415612f705750604080516000815260208101909152610df1565b606082600081518110612f7f57fe5b602002602001015190506000600190505b8351811015612fc057612fb682858381518110612fa957fe5b60200260200101516145e7565b9150600101612f90565b50612ed0612fd3825160c060ff16614664565b826145e7565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff25790505090506130158460ff16612f3c565b8160008151811061302257fe5b6020026020010181905250613036836144ab565b8160018151811061304357fe5b602002602001018190525061305781612f4f565b949350505050565b600082820183811015612ed0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c361483e565b505080518051602091820151919092015191011190565b80516060906130e857600080fd5b60006130f78360200151614156565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312e576020820181803683370190505b50905060008160200190506128ee84876020015101828561475c565b8051602080830191909120600e546000908152600a909252604082205480821461317957600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b0886130b9565b1561321957836131cd576131c6612921896127f2565b925061320e565b83600114156131e9576131e2612921896127f2565b915061320e565b8360021415613209576131fe610eeb896127f2565b90506001945061320e565b613219565b8360010193506131a7565b8461325f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613276826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bc5760ff8716156132e9576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613312908263ffffffff61305f16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613354908263ffffffff61305f16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354a565b60ff881661350e576001600160a01b0384166000908152600860205260409020546133ed908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344957600080fd5b505af115801561345d573d6000803e3d6000fd5b505050506040513d602081101561347357600080fd5b50516134bc576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354a565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613567886130b9565b156135d057836135845761357d612921896127f2565b92506135c5565b83600114156135a057613599612921896127f2565b91506135c5565b83600214156135c0576135b5610eeb896127f2565b9050600194506135c5565b6135d0565b83600101935061355e565b84613616576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362d826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ac5760ff8716156136a0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136c9908263ffffffff612ed716565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370b908263ffffffff612ed716565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374442620a8c0063ffffffff61305f16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354a565b60ff881661350e576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354a565b6000806000806000805b613835896130b9565b156138ba57846138525761384b6129218a6127f2565b93506138af565b846001141561386e576138676129218a6127f2565b92506138af565b846002141561388a576138836129218a6127f2565b91506138af565b84600314156138aa5761389f610eeb8a6127f2565b9050600195506138af565b6138ba565b84600101945061382c565b85613900576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613917826402540be40063ffffffff6147a716565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aea5760ff88161561398a576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c0908263ffffffff612ed716565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fc908261305f565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3542620a8c0063ffffffff61305f16565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7842620a8c0063ffffffff61305f16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7b565b60ff891661350e576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbc5780518252601f199092019160209182019101613b9d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2a5780518252601f199092019160209182019101613c0b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c85866130b9565b15613cee5783613ca257613c9b612921876127f2565b9250613ce3565b8360011415613cbe57613cb7612921876127f2565b9150613ce3565b8360021415613cde57613cd3610eeb876127f2565b905060019450613ce3565b613cee565b836001019350613c7c565b84613d34576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4b826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d89908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de557600080fd5b505af1158015613df9573d6000803e3d6000fd5b505050506040513d6020811015613e0f57600080fd5b5051613e58576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613e9f866130b9565b15613f085783613ebc57613eb5612921876127f2565b9250613efd565b8360011415613ed857613ed1612921876127f2565b9150613efd565b8360021415613ef857613eed610eeb876127f2565b905060019450613efd565b613f08565b836001019350613e96565b84613f4e576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fca876130b9565b1561404f5784613fe757613fe0612921886127f2565b9350614044565b846001141561400357613ffc612921886127f2565b9250614044565b846002141561401f57614018612921886127f2565b9150614044565b846003141561403f57614034610eeb886127f2565b905060019550614044565b61404f565b846001019450613fc1565b85614095576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412d57506000610df1565b6020820151805160001a9060c082101561414c57600092505050610df1565b5060019392505050565b8051600090811a6080811015614170576000915050610df1565b60b881108061418b575060c0811080159061418b575060f881105b1561419a576001915050610df1565b60c08110156141ae5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d457600191506142e5565b60b88110156141e957607e19810191506142e5565b60c081101561426357600060b78203600186019550806020036101000a86510491506001810182019350508083101561425d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e5565b60f88110156142785760be19810191506142e5565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fd57600080fd5b6124be82612840565b6000606061431f846402540be40063ffffffff612e8e16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433b57905050905061435e8760ff16612f3c565b8160008151811061436b57fe5b6020026020010181905250614388866001600160a01b0316612f19565b8160018151811061439557fe5b60200260200101819052506143a985612f3c565b816002815181106143b657fe5b60200260200101819052506143d08463ffffffff16612f3c565b816003815181106143dd57fe5b602002602001018190525060606143f382612f4f565b94989497509395505050505050565b805160009060011461441357600080fd5b6020820151805160001a9081158061442b5750608082145b1561443b57600092505050610df1565b600192505050610df1565b600081836144955760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4b578181015183820152602001612e33565b5060008385816144a157fe5b0495945050505050565b6060815160011480156144dd5750607f60f81b826000815181106144cb57fe5b01602001516001600160f81b03191611155b156144e9575080610df1565b6124be6144fb8351608060ff16614664565b836145e7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661454557506018614569565b6fffffffffffffffffffffffffffffffff19841661456557506010614569565b5060005b602081101561459f5781818151811061457e57fe5b01602001516001600160f81b031916156145975761459f565b600101614569565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d4576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614618578051835260209283019201614600565b50855184518101855292509050808201602086015b8183101561464557805183526020928301920161462d565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b4576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470e5782840160f81b816000815181106146f057fe5b60200101906001600160f81b031916908160001a90535090506124be565b606061471985614501565b90508381510160370160f81b8260008151811061473257fe5b60200101906001600160f81b031916908160001a90535061475382826145e7565b95945050505050565b80614766576126ee565b5b60208110614786578251825260209283019290910190601f1901614767565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b6575060006124be565b828202828482816147c357fe5b0414612ed05760405162461bcd60e51b81526004018080602001828103825260218152602001806148e76021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483161483e565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/TimelockContract b/core/systemcontracts/feynman/mainnet/TimelockContract new file mode 100644 index 0000000000..3d5875c0c5 --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/TimelockContract @@ -0,0 +1 @@ +6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa6565b61064a565b005b34801561022157600080fd5b50610235610230366004611b1a565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258a83398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254a83398151915281565b6102136102aa366004611b44565b610739565b3480156102bb57600080fd5b506102356102ca366004611baf565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7d565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611baf565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611baf565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce4565b610802565b34801561039f57600080fd5b506102356103ae366004611baf565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce4565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611baf565b6108c8565b34801561042657600080fd5b50610213610435366004611baf565b6108df565b34801561044657600080fd5b5061026c610455366004611b44565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d54565b610b74565b34801561049b57600080fd5b5061026c60008051602061256a83398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce4565b610cf5565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e05565b610d20565b34801561051257600080fd5b5061026c6000805160206125aa83398151915281565b34801561053457600080fd5b5061026c610543366004611e70565b610f0a565b34801561055457600080fd5b506102fa610563366004611f97565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611baf565b610f4f565b3480156105a057600080fd5b5061026c6105af366004611baf565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce4565b611012565b6102136105ef366004611e70565b611037565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa610624366004612040565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b60008051602061256a833981519152610662816111af565b6000610672898989898989610983565b905061067e81846111b9565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cd565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a8565b92915050565b60008051602061258a833981519152610753816000610cf5565b6107615761076181336112dd565b6000610771888888888888610983565b905061077d8185611336565b610789888888886113d1565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c1949392919061210a565b60405180910390a36107d2816114a4565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111af565b61082783836114dd565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611563565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cd565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213c565b60200260200101906001600160a01b031690816001600160a01b031681525050610b2a6201518082836120046115ca565b508015610b71576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60008051602061256a833981519152610b8c816111af565b888714610bab5760405162461bcd60e51b81526004016108b190612152565b888514610bca5760405162461bcd60e51b81526004016108b190612152565b6000610bdc8b8b8b8b8b8b8b8b610f0a565b9050610be881846111b9565b60005b8a811015610ca65780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2857610c2861213c565b9050602002016020810190610c3d9190612195565b8d8d86818110610c4f57610c4f61213c565b905060200201358c8c87818110610c6857610c6861213c565b9050602002810190610c7a91906121b0565b8c8b604051610c8e969594939291906120cd565b60405180910390a3610c9f8161220c565b9050610beb565b508315610ce857807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cdf91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4657604051630f22c43960e41b815261100760048201526024016108b1565b610da9604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116039050565b15610ea65760208114610dd75783838383604051630a5a604160e01b81526004016108b19493929190612225565b604080516020601f8401819004810282018101909252828152600091610e1891858580838501838280828437600092019190915250929392505061165c9050565b9050801580610e2957506212750081115b15610e4f5784848484604051630a5a604160e01b81526004016108b19493929190612225565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8857600080fd5b505af1158015610e9c573d6000803e3d6000fd5b5050505050610ec7565b838383836040516325ee20d560e21b81526004016108b19493929190612225565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efc9493929190612225565b60405180910390a150505050565b60008888888888888888604051602001610f2b9897969594939291906122da565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125aa833981519152610f67816111af565b610f70826108c8565b610fd65760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102d816111af565b6108278383611563565b60008051602061258a833981519152611051816000610cf5565b61105f5761105f81336112dd565b87861461107e5760405162461bcd60e51b81526004016108b190612152565b87841461109d5760405162461bcd60e51b81526004016108b190612152565b60006110af8a8a8a8a8a8a8a8a610f0a565b90506110bb8185611336565b60005b898110156111995760008b8b838181106110da576110da61213c565b90506020020160208101906110ef9190612195565b905060008a8a848181106111055761110561213c565b9050602002013590503660008a8a868181106111235761112361213c565b905060200281019061113591906121b0565b91509150611145848484846113d1565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117c949392919061210a565b60405180910390a350505050806111929061220c565b90506110be565b506111a3816114a4565b50505050505050505050565b610b7181336112dd565b6111c28261082c565b156112275760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112885760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b611292814261237b565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e78282610cf5565b6108c4576112f481611661565b6112ff836020611673565b6040516020016113109291906123b2565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612427565b61133f826107dc565b61135b5760405162461bcd60e51b81526004016108b19061245a565b80158061137657506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ee9291906124a4565b60006040518083038185875af1925050503d806000811461142b576040519150601f19603f3d011682016040523d82523d6000602084013e611430565b606091505b505090508061149d5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ad816107dc565b6114c95760405162461bcd60e51b81526004016108b19061245a565b600090815260976020526040902060019055565b6114e78282610cf5565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156d8282610cf5565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115f15760405162461bcd60e51b81526004016108b1906124b4565b6115fd8484848461180e565b50505050565b60008160405160200161161691906124ff565b604051602081830303815290604052805190602001208360405160200161163d91906124ff565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b6060600061168283600261251b565b61168d90600261237b565b6001600160401b038111156116a4576116a4611bc8565b6040519080825280601f01601f1916602001820160405280156116ce576020820181803683370190505b509050600360fc1b816000815181106116e9576116e961213c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117185761171861213c565b60200101906001600160f81b031916908160001a905350600061173c84600261251b565b61174790600161237b565b90505b60018111156117bf576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177b5761177b61213c565b1a60f81b8282815181106117915761179161213c565b60200101906001600160f81b031916908160001a90535060049490941c936117b881612532565b905061174a565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118355760405162461bcd60e51b81526004016108b1906124b4565b61184d60008051602061254a833981519152806119ed565b61187360008051602061256a83398151915260008051602061254a8339815191526119ed565b61189960008051602061258a83398151915260008051602061254a8339815191526119ed565b6118bf6000805160206125aa83398151915260008051602061254a8339815191526119ed565b6118d760008051602061254a83398151915230611a38565b6001600160a01b038116156118fe576118fe60008051602061254a83398151915282611a38565b60005b835181101561196f5761193b60008051602061256a83398151915285838151811061192e5761192e61213c565b6020026020010151611a38565b61195f6000805160206125aa83398151915285838151811061192e5761192e61213c565b6119688161220c565b9050611901565b5060005b82518110156119b0576119a060008051602061258a83398151915284838151811061192e5761192e61213c565b6119a98161220c565b9050611973565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efc565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114dd565b80356001600160a01b0381168114611a5957600080fd5b919050565b60008083601f840112611a7057600080fd5b5081356001600160401b03811115611a8757600080fd5b602083019150836020828501011115611a9f57600080fd5b9250929050565b600080600080600080600060c0888a031215611ac157600080fd5b611aca88611a42565b96506020880135955060408801356001600160401b03811115611aec57600080fd5b611af88a828b01611a5e565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2c57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5d57600080fd5b611b6687611a42565b95506020870135945060408701356001600160401b03811115611b8857600080fd5b611b9489828a01611a5e565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bc157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0657611c06611bc8565b604052919050565b600082601f830112611c1f57600080fd5b81356001600160401b03811115611c3857611c38611bc8565b611c4b601f8201601f1916602001611bde565b818152846020838601011115611c6057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9357600080fd5b611c9c85611a42565b9350611caa60208601611a42565b92506040850135915060608501356001600160401b03811115611ccc57600080fd5b611cd887828801611c0e565b91505092959194509250565b60008060408385031215611cf757600080fd5b82359150611d0760208401611a42565b90509250929050565b60008083601f840112611d2257600080fd5b5081356001600160401b03811115611d3957600080fd5b6020830191508360208260051b8501011115611a9f57600080fd5b600080600080600080600080600060c08a8c031215611d7257600080fd5b89356001600160401b0380821115611d8957600080fd5b611d958d838e01611d10565b909b50995060208c0135915080821115611dae57600080fd5b611dba8d838e01611d10565b909950975060408c0135915080821115611dd357600080fd5b50611de08c828d01611d10565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1b57600080fd5b84356001600160401b0380821115611e3257600080fd5b611e3e88838901611a5e565b90965094506020870135915080821115611e5757600080fd5b50611e6487828801611a5e565b95989497509550505050565b60008060008060008060008060a0898b031215611e8c57600080fd5b88356001600160401b0380821115611ea357600080fd5b611eaf8c838d01611d10565b909a50985060208b0135915080821115611ec857600080fd5b611ed48c838d01611d10565b909850965060408b0135915080821115611eed57600080fd5b50611efa8b828c01611d10565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2957600080fd5b813560206001600160401b03821115611f4457611f44611bc8565b8160051b611f53828201611bde565b9283528481018201928281019087851115611f6d57600080fd5b83870192505b84831015611f8c57823582529183019190830190611f73565b979650505050505050565b600080600080600060a08688031215611faf57600080fd5b611fb886611a42565b9450611fc660208701611a42565b935060408601356001600160401b0380821115611fe257600080fd5b611fee89838a01611f18565b9450606088013591508082111561200457600080fd5b61201089838a01611f18565b9350608088013591508082111561202657600080fd5b5061203388828901611c0e565b9150509295509295909350565b600080600080600060a0868803121561205857600080fd5b61206186611a42565b945061206f60208701611a42565b9350604086013592506060860135915060808601356001600160401b0381111561209857600080fd5b61203388828901611c0e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f560a0830186886120a4565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121326060830184866120a4565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a757600080fd5b6107fb82611a42565b6000808335601e198436030181126121c757600080fd5b8301803591506001600160401b038211156121e157600080fd5b602001915036819003821315611a9f57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221e5761221e6121f6565b5060010190565b6040815260006122396040830186886120a4565b8281036020840152611f8c8185876120a4565b818352600060208085019450848460051b86018460005b878110156122cd5783830389528135601e1988360301811261228457600080fd5b870185810190356001600160401b0381111561229f57600080fd5b8036038213156122ae57600080fd5b6122b98582846120a4565b9a87019a9450505090840190600101612263565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561231b576001600160a01b0361230684611a42565b168252602092830192909101906001016122ed565b5083810360208501528881526001600160fb1b0389111561233b57600080fd5b8860051b9150818a60208301370182810360209081016040850152612363908201878961224c565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f6565b60005b838110156123a9578181015183820152602001612391565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123ea81601785016020880161238e565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241b81602884016020880161238e565b01602801949350505050565b602081526000825180602084015261244681604085016020870161238e565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161251181846020870161238e565b9190910192915050565b8082028115828204841417610733576107336121f6565b600081612541576125416121f6565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/TokenHubContract b/core/systemcontracts/feynman/mainnet/TokenHubContract new file mode 100644 index 0000000000..282406cdc5 --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/TokenHubContract @@ -0,0 +1 @@ +6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113d9565b34801561081957600080fd5b506107776113df565b34801561082e57600080fd5b506106366113e4565b34801561084357600080fd5b506104d06113ef565b34801561085857600080fd5b506104d06113f5565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fb565b34801561089757600080fd5b50610636611416565b3480156108ac57600080fd5b5061077761141f565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611424565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118f9565b348015610a0257600080fd5b506107776118ff565b348015610a1757600080fd5b50610636611904565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190a565b348015610a5657600080fd5b506104d061198b565b348015610a6b57600080fd5b50610777611991565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611996565b348015610abf57600080fd5b506104d0611c46565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4c565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d94565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efd565b348015610bd157600080fd5b50610636611f83565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f8a565b348015610c1f57600080fd5b50610777612147565b348015610c3457600080fd5b5061063661214c565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612158565b348015610c8257600080fd5b506104d0612296565b348015610c9757600080fd5b506104d061229c565b348015610cac57600080fd5b506107776122a2565b348015610cc157600080fd5b506109cd6122a7565b348015610cd657600080fd5b506107776122b0565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b5565b348015610d3257600080fd5b506104d0612335565b348015610d4757600080fd5b506104d061233b565b348015610d5c57600080fd5b506104a26122a2565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612341565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e9565b348015610e7557600080fd5b50610636612869565b348015610e8a57600080fd5b50610636612873565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612879565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288b565b348015610f0557600080fd5b506104d06128a6565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ac565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297c565b348015610fda57600080fd5b506104d0612c50565b348015610fef57600080fd5b506104d0612c56565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5c565b34801561102e57600080fd5b50610486612cfc565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9c565b34801561107657600080fd5b50610777612dae565b34801561108b57600080fd5b50610777612db3565b3480156110a057600080fd5b50610777612db8565b3480156110b557600080fd5b506104d0612dbd565b3480156110ca57600080fd5b50610636612dc3565b3480156110df57600080fd5b50610636612dc9565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd7565b34801561112757600080fd5b506104d0612efe565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0492505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b603881565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146a576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b8685146114a85760405162461bcd60e51b815260040180806020018281038252603b815260200180615357603b913960400191505060405180910390fd5b8683146114e65760405162461bcd60e51b815260040180806020018281038252603f815260200180615269603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115325760405162461bcd60e51b81526004018080602001828103825260248152602001806151e56024913960400191505060405180910390fd5b6402540be4003406156115765760405162461bcd60e51b815260040180806020018281038252604081526020018061545a6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115a9578160200160208202803683370190505b50905060005b84811015611684576402540be4008b8b838181106115c957fe5b90506020020135816115d757fe5b06156116145760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a8603c913960400191505060405180910390fd5b6116398b8b8381811061162357fe5b905060200201358561302890919063ffffffff16565b93506116656402540be4008c8c8481811061165057fe5b9050602002013561308290919063ffffffff16565b82828151811061167157fe5b60209081029190910101526001016115af565b506001546116a99061169c908663ffffffff6130c416565b849063ffffffff61302816565b3410156116e75760405162461bcd60e51b81526004018080602001828103825260568152602001806154046056913960600191505060405180910390fd5b6116f7348463ffffffff61311d16565b9150611701615023565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c58461315f565b6117da876402540be40063ffffffff61308216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611838578181015183820152602001611820565b50505050905090810190601f1680156118655780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194c5760405162461bcd60e51b815260040180806020018281038252603381526020018061513d6033913960400191505060405180910390fd5b8115611983576040516120019083156108fc029084906000818181858888f19350505050158015611981573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119db576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361300014611a1b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a625760405162461bcd60e51b81526004018080602001828103825260358152602001806152096035913960400191505060405180910390fd5b60006221272160e91b8414611bcc576000848152600460205260409020546001600160a01b031680611ad5576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c41565b6001600160a01b038116600090815260026020526040902054611af8848261341a565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4357600080fd5b505afa158015611b57573d6000803e3d6000fd5b505050506040513d6020811015611b6d57600080fd5b50511015611bb9576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc58683858861345a565b5050611c3f565b611be1826402540be40063ffffffff6130c416565b905080471015611c2f576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3d8582848761345a565b505b505b505050565b61200381565b60005460ff16611c91576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361200014611cd15760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f492505050565b611c41565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd45760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b60006221272160e91b8314611e3f57506000828152600460205260409020546001600160a01b031680611e3f576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eaa576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3d5760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b62093a8081565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc457600080fd5b505afa158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50516001600160a01b0316331461204c576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b6000821161209a576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120f0576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219e576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33611005146121de5760405162461bcd60e51b815260040180806020018281038252602f815260200180615170602f913960400191505060405180910390fd5b60004783106121ed57476121ef565b825b9050670de0b6b3a764000081111561220b576000915050612290565b801561228d576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612247573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fb576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123815760405162461bcd60e51b815260040180806020018281038252602e815260200180615305602e913960400191505060405180910390fd5b602081146123d6576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124de576020820151670de0b6b3a7640000811180159061248557506402540be4008106155b6124d6576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612754565b61255287878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f64000000000000000000602082015291506135509050565b156125ee57604080516020601f87018190048102820181019092528581526000916125959188888083850183828082843760009201919091525061363792505050565b905062093a808111156125e6576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612754565b61265a87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b602082015291506135509050565b1561271757604080516020601f870181900481028201810190925285815260009161269d9188888083850183828082843760009201919091525061363792505050565b905068056bc75e2d631000008110156126e75760405162461bcd60e51b815260040180806020018281038252602281526020018061519f6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612754565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128295760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f1576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146129315760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363c92505050565b60085460ff16600214156129c8576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a40576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a99576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0c576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b505080915050612b9f565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6f57600080fd5b5087f1158015612b83573d6000803e3d6000fd5b50505050506040513d6020811015612b9a57600080fd5b505190505b80612bf1576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf4576040516120029083156108fc029084906000818181858888f19350505050158015612cea573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d54576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6757828160ff1681518110612e3b57fe5b01602001516001600160f81b03191615612e5a57816001019150612e5f565b612e67565b600101612e20565b5060608160ff166040519080825280601f01601f191660200182016040528015612e98576020820181803683370190505b50905060005b8260ff168160ff161015612ef457838160ff1681518110612ebb57fe5b602001015160f81c60f81b828260ff1681518110612ed557fe5b60200101906001600160f81b031916908160001a905350600101612e9e565b5095945050505050565b61100481565b6060612f0e61506f565b6000612f1984613733565b9150915080612f6f576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f7a83613872565b905063ffffffff81161561300e576040808401516020808601516001600160a01b03166000908152600290915291822054612fb59190613bd8565b9050612fbf6150a4565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300281613c11565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ced565b6000826130d357506000612290565b828202828482816130e057fe5b041461228d5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e46021913960400191505060405180910390fd5b600061228d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8f565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161317a575050835190915061319c90613de9565b816000815181106131a957fe5b60200260200101819052506131ca83602001516001600160a01b0316613dfc565b816001815181106131d757fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322257816020015b606081526020019060019003908161320d5790505b50905060005b8281101561326f576132508660400151828151811061324357fe5b6020026020010151613de9565b82828151811061325c57fe5b6020908102919091010152600101613228565b5061327981613e1f565b8360028151811061328657fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c757816020015b60608152602001906001900390816132b25790505b50905060005b8381101561331d576132fe876060015182815181106132e857fe5b60200260200101516001600160a01b0316613dfc565b82828151811061330a57fe5b60209081029190910101526001016132cd565b5061332781613e1f565b8460038151811061333457fe5b602002602001018190525060608360405190808252806020026020018201604052801561337557816020015b60608152602001906001900390816133605790505b50905060005b848110156133b557613396886080015182815181106132e857fe5b8282815181106133a257fe5b602090810291909101015260010161337b565b506133bf81613e1f565b856004815181106133cc57fe5b60200260200101819052506133ee8760a0015167ffffffffffffffff16613de9565b856005815181106133fb57fe5b602002602001018190525061340f85613e1f565b979650505050505050565b600060088211156134435761343c836007198401600a0a63ffffffff6130c416565b9050612290565b61228d836008849003600a0a63ffffffff61308216565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613491908463ffffffff61302816565b81554262093a80016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134fc6150cb565b600061350783613ea9565b91509150806135475760405162461bcd60e51b81526004018080602001828103825260248152602001806153336024913960400191505060405180910390fd5b611c4182614074565b6000816040516020018082805190602001908083835b602083106135855780518252601f199092019160209182019101613566565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f35780518252601f1990920191602091820191016135d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613644615023565b600061364f836144f8565b915091508061368f5760405162461bcd60e51b81526004018080602001828103825260248152602001806151c16024913960400191505060405180910390fd5b6136976150cb565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613718576136f5856040015182815181106136e757fe5b60200260200101518361341a565b8560400151828151811061370557fe5b60209081029190910101526001016136c7565b506080840151604083015260056060830152611c3d82614074565b61373b61506f565b600061374561506f565b61374d615102565b61375e6137598661475c565b614781565b90506000805b61376d836147cb565b15613865578061378f57613788613783846147ec565b61483a565b845261385d565b80600114156137bc576137a96137a4846147ec565b6148f1565b6001600160a01b0316602085015261385d565b80600214156137db576137d1613783846147ec565b604085015261385d565b8060031415613803576137f06137a4846147ec565b6001600160a01b0316606085015261385d565b806004141561382b576138186137a4846147ec565b6001600160a01b0316608085015261385d565b806005141561385857613840613783846147ec565b67ffffffffffffffff1660a08501526001915061385d565b613865565b600101613764565b5091935090915050915091565b60208101516000906001600160a01b03166139b6578160a0015167ffffffffffffffff164211156138a5575060016113b2565b81604001514710156138b9575060036113b2565b6138c28261490b565b61393757606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391d576040519150601f19603f3d011682016040523d82523d6000602084013e613922565b606091505b50509050806139355750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d4575060016113b2565b81516020808401516001600160a01b031660009081526003909152604090205414613a01575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a5157600080fd5b5086fa158015613a65573d6000803e3d6000fd5b50505050506040513d6020811015613a7c57600080fd5b50516040840151909150811015613a975750600390506113b2565b613aa08361490b565b613b5757600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1557600080fd5b5087f1158015613b29573d6000803e3d6000fd5b50505050506040513d6020811015613b4057600080fd5b5051905080613b555750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bfa5761343c836007198401600a0a63ffffffff61308216565b61228d836008849003600a0a63ffffffff6130c416565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c2c5750508351909150613c4e90613de9565b81600081518110613c5b57fe5b6020026020010181905250613c738360200151613de9565b81600181518110613c8057fe5b6020026020010181905250613ca183604001516001600160a01b0316613dfc565b81600281518110613cae57fe5b6020026020010181905250613ccc836060015163ffffffff16613de9565b81600381518110613cd957fe5b602002602001018190525061126281613e1f565b60008183613d795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3e578181015183820152602001613d26565b50505050905090810190601f168015613d6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8557fe5b0495945050505050565b60008184841115613de15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3e578181015183820152602001613d26565b505050900390565b6060612290613df783614a79565b614b5f565b60408051600560a21b831860148201526034810190915260609061126281614b5f565b6060815160001415613e4057506040805160008152602081019091526113b2565b606082600081518110613e4f57fe5b602002602001015190506000600190505b8351811015613e9057613e8682858381518110613e7957fe5b6020026020010151614bb1565b9150600101613e60565b50611262613ea3825160c060ff16614c2e565b82614bb1565b613eb16150cb565b6000613ebb6150cb565b613ec3615102565b613ecf6137598661475c565b90506000805b613ede836147cb565b156138655780613f0457613ef46137a4846147ec565b6001600160a01b0316845261406c565b8060011415613fa5576060613f20613f1b856147ec565b614d26565b90508051604051908082528060200260200182016040528015613f4d578160200160208202803683370190505b50602086015260005b8151811015613f9e57613f7b828281518110613f6e57fe5b602002602001015161483a565b86602001518281518110613f8b57fe5b6020908102919091010152600101613f56565b505061406c565b8060021415614047576060613fbc613f1b856147ec565b90508051604051908082528060200260200182016040528015613fe9578160200160208202803683370190505b50604086015260005b8151811015613f9e5761401782828151811061400a57fe5b60200260200101516148f1565b8660400151828151811061402757fe5b6001600160a01b0390921660209283029190910190910152600101613ff2565b80600314156138585761405c613783846147ec565b63ffffffff166060850152600191505b600101613ed5565b80516001600160a01b031661429e5760005b816020015151811015614298576000826040015182815181106140a557fe5b60200260200101516001600160a01b0316612710846020015184815181106140c957fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614111576040519150601f19603f3d011682016040523d82523d6000602084013e614116565b606091505b50509050806141d9577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415557fe5b60200260200101518560200151858151811061416d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428f565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420f57fe5b60200260200101518560200151858151811061422757fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614086565b506144f5565b60005b8160200151518110156144f357600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d657fe5b6020026020010151866020015186815181106142ee57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434557600080fd5b5087f1158015614359573d6000803e3d6000fd5b50505050506040513d602081101561437057600080fd5b505190508015614434577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b057fe5b6020026020010151856020015185815181106143c857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144ea565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446a57fe5b60200260200101518560200151858151811061448257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a1565b505b50565b614500615023565b600061450a615023565b614512615102565b61451e6137598661475c565b90506000805b61452d836147cb565b15613865578061454a57614543613783846147ec565b8452614754565b80600114156145725761455f6137a4846147ec565b6001600160a01b03166020850152614754565b8060021415614601576060614589613f1b856147ec565b905080516040519080825280602002602001820160405280156145b6578160200160208202803683370190505b50604086015260005b81518110156145fa576145d7828281518110613f6e57fe5b866040015182815181106145e757fe5b60209081029190910101526001016145bf565b5050614754565b8060031415614696576060614618613f1b856147ec565b90508051604051908082528060200260200182016040528015614645578160200160208202803683370190505b50606086015260005b81518110156145fa5761466682828151811061400a57fe5b8660600151828151811061467657fe5b6001600160a01b039092166020928302919091019091015260010161464e565b806004141561472b5760606146ad613f1b856147ec565b905080516040519080825280602002602001820160405280156146da578160200160208202803683370190505b50608086015260005b81518110156145fa576146fb82828151811061400a57fe5b8660800151828151811061470b57fe5b6001600160a01b03909216602092830291909101909101526001016146e3565b806005141561385857614740613783846147ec565b67ffffffffffffffff1660a0850152600191505b600101614524565b614764615122565b506040805180820190915281518152602082810190820152919050565b614789615102565b61479282614df7565b61479b57600080fd5b60006147aa8360200151614e31565b60208085015160408051808201909152868152920190820152915050919050565b60006147d5615122565b505080518051602091820151919092015191011190565b6147f4615122565b6147fd826147cb565b61480657600080fd5b6020820151600061481682614e94565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484f57508151602110155b61485857600080fd5b60006148678360200151614e31565b905080836000015110156148c2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e857826020036101000a820491505b50949350505050565b805160009060151461490257600080fd5b6122908261483a565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149445750600554155b156149865760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b45750808360400151105b156149c35760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a099163ffffffff61302816565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614abd57506018614ae1565b6fffffffffffffffffffffffffffffffff198416614add57506010614ae1565b5060005b6020811015614b1757818181518110614af657fe5b01602001516001600160f81b03191615614b0f57614b17565b600101614ae1565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b4c576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b915750607f60f81b82600081518110614b7f57fe5b01602001516001600160f81b03191611155b15614b9d5750806113b2565b612290614baf8351608060ff16614c2e565b835b6060806040519050835180825260208201818101602087015b81831015614be2578051835260209283019201614bca565b50855184518101855292509050808201602086015b81831015614c0f578051835260209283019201614bf7565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd85782840160f81b81600081518110614cba57fe5b60200101906001600160f81b031916908160001a9053509050612290565b6060614ce385614a79565b90508381510160370160f81b82600081518110614cfc57fe5b60200101906001600160f81b031916908160001a905350614d1d8282614bb1565b95945050505050565b6060614d3182614df7565b614d3a57600080fd5b6000614d4583614fc7565b9050606081604051908082528060200260200182016040528015614d8357816020015b614d70615122565b815260200190600190039081614d685790505b5090506000614d958560200151614e31565b60208601510190506000805b84811015614dec57614db283614e94565b9150604051806040016040528083815260200184815250848281518110614dd557fe5b602090810291909101015291810191600101614da1565b509195945050505050565b8051600090614e08575060006113b2565b6020820151805160001a9060c0821015614e27576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e4b5760009150506113b2565b60b8811080614e66575060c08110801590614e66575060f881105b15614e755760019150506113b2565b60c0811015614e895760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eaf5760019150614fc0565b60b8811015614ec457607e1981019150614fc0565b60c0811015614f3e57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f38576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fc0565b60f8811015614f535760be1981019150614fc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbe576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd8575060006113b2565b60008090506000614fec8460200151614e31565b602085015185519181019250015b8082101561501a5761500b82614e94565b82019150826001019250614ffa565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280615115615122565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/TokenRecoverPortalContract b/core/systemcontracts/feynman/mainnet/TokenRecoverPortalContract new file mode 100644 index 0000000000..657eaff04b --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/TokenRecoverPortalContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b6101186101443660046116a8565b610328565b61016c6101573660046116a8565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a3660046116a8565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116c3565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b81525081565b60405161012d919061173f565b6101186104b3565b610118610625565b60695461016c9060ff1681565b61011861022736600461179b565b6106b1565b60335460ff1661016c565b61011861024536600461184c565b610ad0565b61016c610258366004611926565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e30565b6105dc7308e68ec70fa3b629784fdb28887e206ce8561e08610e5d565b8015610622576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610655576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561067957604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106d757604051630f22c43960e41b8152611007600482015260240161054c565b6107416040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b1561080b576014811461076f5783838383604051630a5a604160e01b815260040161054c9493929190611968565b60006107b5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b0381166107e65784848484604051630a5a604160e01b815260040161054c9493929190611968565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a8d565b6108706040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b156109405760695460ff1615610899576040516379b3306f60e11b815260040160405180910390fd5b602081146108c25783838383604051630a5a604160e01b815260040161054c9493929190611968565b604080516020601f8401819004810282018101909252828152600091610903918585808385018382808284376000920191909152509293925050610f069050565b90508061092b5784848484604051630a5a604160e01b815260040161054c9493929190611968565b6068556069805460ff19166001179055610a8d565b6109b86040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b15610a6c57601481146109e65783838383604051630a5a604160e01b815260040161054c9493929190611968565b6000610a2c601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b038116610a5d5784848484604051630a5a604160e01b815260040161054c9493929190611968565b610a6681610f0b565b50610a8d565b838383836040516325ee20d560e21b815260040161054c9493929190611968565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ac29493929190611968565b60405180910390a150505050565b60695460ff16610af35760405163678f619760e11b815260040160405180910390fd5b606854610b135760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b3c57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b6057604051631785c68160e01b815260040160405180910390fd5b610b68610f72565b6000610bf689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bf18e8e33610fcb565b6110ec565b90506000818c8c604051602001610c0f9392919061199a565b604051602081830303815290604052805190602001209050610c40816000908152606a602052604090205460ff1690565b15610c5d57604051623e493160e81b815260040160405180910390fd5b610d053389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111c492505050565b610d468484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112cf565b610d63576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610e1194939291906119c1565b60405180910390a15050610e2460018055565b50505050505050505050565b600054610100900460ff16610e575760405162461bcd60e51b815260040161054c906119f9565b60018055565b600054610100900460ff16610e845760405162461bcd60e51b815260040161054c906119f9565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ebf9190611a44565b6040516020818303038152906040528051906020012083604051602001610ee69190611a44565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fc45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152506110288560405160200161101291815260200190565b60405160208183030381529060405260006112e5565b6040516bffffffffffffffffffffffff19606087901b1660208201526110619060340160405160208183030381529060405260016112e5565b6110778860405160200161101291815260200190565b60405160200161108a9493929190611a60565b60408051601f19818403018152908290526110a491611a44565b602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110e49190611b8f565b949350505050565b6060835160211461111057604051638152ea1b60e01b815260040160405180910390fd5b825160401461113257604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161117093929190611bbe565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111b957600080fd5b509695505050505050565b606060005b825181101561122257818382815181106111e5576111e5611c01565b60200260200101516040516020016111fe929190611c17565b6040516020818303038152906040529150808061121a90611c4f565b9150506111c9565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152508787866068548660405160200161126e96959493929190611c68565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661129f86836114b7565b6001600160a01b0316146112c6576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112dc8584611551565b14949350505050565b60606000835160026112f79190611cd9565b67ffffffffffffffff81111561130f5761130f611ba8565b6040519080825280601f01601f191660200182016040528015611339576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561147f5781825187838151811061138557611385611c01565b0160200151611397919060f81c611d06565b815181106113a7576113a7611c01565b01602001516001600160f81b031916836113c2836002611cd9565b815181106113d2576113d2611c01565b60200101906001600160f81b031916908160001a9053508182518783815181106113fe576113fe611c01565b0160200151611410919060f81c611d1a565b8151811061142057611420611c01565b01602001516001600160f81b0319168361143b836002611cd9565b611446906001611d2e565b8151811061145657611456611c01565b60200101906001600160f81b031916908160001a9053508061147781611c4f565b915050611367565b5083156114af57816040516020016114979190611d41565b60405160208183030381529060405292505050610f00565b509392505050565b600082516041146114db576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b81101561150457611501601b82611d6b565b90505b601b8160ff1610806115195750601c8160ff16115b15611537576040516356b00a4f60e11b815260040160405180910390fd5b600061154586838686611596565b50979650505050505050565b600081815b84518110156114af576115828286838151811061157557611575611c01565b602002602001015161165a565b91508061158e81611c4f565b915050611556565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115cd5750600090506003611651565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661164a57600060019250925050611651565b9150600090505b94509492505050565b6000818310611676576000828152602084905260409020611685565b60008381526020839052604090205b9392505050565b80356001600160a01b03811681146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b6116858261168c565b600080604083850312156116d657600080fd5b823591506116e66020840161168c565b90509250929050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6020815260006116856020830184611713565b60008083601f84011261176457600080fd5b50813567ffffffffffffffff81111561177c57600080fd5b60208301915083602082850101111561179457600080fd5b9250929050565b600080600080604085870312156117b157600080fd5b843567ffffffffffffffff808211156117c957600080fd5b6117d588838901611752565b909650945060208701359150808211156117ee57600080fd5b506117fb87828801611752565b95989497509550505050565b60008083601f84011261181957600080fd5b50813567ffffffffffffffff81111561183157600080fd5b6020830191508360208260051b850101111561179457600080fd5b60008060008060008060008060008060c08b8d03121561186b57600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561189157600080fd5b61189d8e838f01611752565b909a50985060608d01359150808211156118b657600080fd5b6118c28e838f01611752565b909850965060808d01359150808211156118db57600080fd5b6118e78e838f01611752565b909650945060a08d013591508082111561190057600080fd5b5061190d8d828e01611807565b915080935050809150509295989b9194979a5092959850565b60006020828403121561193857600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061197c60408301868861193f565b828103602084015261198f81858761193f565b979650505050505050565b600084516119ac8184602089016116ef565b91909101928352506020820152604001919050565b6080815260006119d46080830187611713565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a568184602087016116ef565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611aa3816022850160208a016116ef565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611af481604d840160208a016116ef565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b2481605c8401602089016116ef565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b5781606e8401602088016116ef565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611ba157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bd08184602089016116ef565b845190830190611be48183602089016116ef565b8451910190611bf78183602088016116ef565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c298184602088016116ef565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c6157611c61611c39565b5060010190565b60008751611c7a818460208c016116ef565b606088901b6bffffffffffffffffffffffff19169083019081528651611ca7816014840160208b016116ef565b0160148101869052603481018590528351611cc98160548401602088016116ef565b0160540198975050505050505050565b8082028115828204841417610f0057610f00611c39565b634e487b7160e01b600052601260045260246000fd5b600082611d1557611d15611cf0565b500490565b600082611d2957611d29611cf0565b500690565b80820180821115610f0057610f00611c39565b61060f60f31b815260008251611d5e8160028501602087016116ef565b9190910160020192915050565b60ff8181168382160190811115610f0057610f00611c3956fea164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/mainnet/ValidatorContract b/core/systemcontracts/feynman/mainnet/ValidatorContract new file mode 100644 index 0000000000..87278ef8dd --- /dev/null +++ b/core/systemcontracts/feynman/mainnet/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ed8565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f02565b34801561057757600080fd5b50610580610e42565b60405161054091906181eb565b34801561059957600080fd5b506105ad6105a83660046180d1565b610e48565b604051610540919061837e565b3480156105c657600080fd5b506105cf611165565b6040516105409190618373565b3480156105e857600080fd5b5061051c6105f7366004617edf565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e3f565b611855565b34801561066757600080fd5b5061051c610676366004617e77565b611902565b34801561068757600080fd5b506105cf61069636600461807e565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461807e565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e3f565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618289565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f13565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ec9565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e3f565b6123c5565b34801561080157600080fd5b50610533610810366004617e3f565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461807e565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461807e565b612507565b60405161054096959493929190618218565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180d1565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e3f565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b38366004618022565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e3f565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618276565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461807e565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fe3565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e3f565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e3f565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461807e565b6139e4565b60405161054093929190618ee1565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ae4565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185a5565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618ce5565b600b54610f4c57610e9d6179eb565b60015460005b81811015610f4857600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff1916911515919091179055604086015180518794610f2493600080516020619005833981519152909101920190617a1a565b506060820151610f3a9060038301906013617a94565b505050806001019050610ea3565b5050505b610f54617ac1565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7192505050565b9150915080610fb157610fa86064613f2d565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f8e565b905061112a565b825160ff16600114156111265782602001515160011461101b57600080516020618fc583398151915260405161100b9061899d565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc8360018403615150565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f2d565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d34565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a23565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617ae5565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be906110009060089060040161825a565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fc3565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b1a565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a1a565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a1a565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ed8565b60405180910390a150505050610e32565b60608061163e8386615513565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181eb565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd82826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e92565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d34565b60105443116119425760405162461bcd60e51b8152600401610e1290618738565b3a156119605760405162461bcd60e51b8152600401610e1290618a23565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185a5565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161e916565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e790309086906004016181ff565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190618096565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e3f565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ed8565b60405180910390a2611be9565b600354611b88908663ffffffff61622b16565b6003908155810154611ba0908663ffffffff61622b16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ed8565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ed8565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179eb565b60015460005b81811015611e8557600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff1916911515919091179055604086015180518794611e6193600080516020619005833981519152909101920190617a1a565b506060820151611e779060038301906013617a94565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185dc565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f128383615150565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b9050606061226082616250565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163be565b6122bd8383838888038989038a8b8b8b5103016163be565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618ce5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f21565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c6d565b6000190192915050565b600b5461271d5761266e6179eb565b60015460005b8181101561271957600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff19169115159190911790556040860151805187946126f593600080516020619005833981519152909101920190617a1a565b50606082015161270b9060038301906013617a94565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e129061895a565b611f2d3382616515565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016190256105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185a5565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a51565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165ad9050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c27565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061660692505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e129061884a565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165ad9050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183c3565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061660692505050565b90506127106129f2600f548361622b90919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e12906183fa565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165ad9050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e1290618462565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061660692505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187a2565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165ad9050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e129061852b565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061660692505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dc5565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165ad9050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184df565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061660692505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188c0565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165ad9050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618a9f565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061660692505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165ad9050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e1290618570565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061660692505050565b905060008111612ef55760405162461bcd60e51b8152600401610e129061864a565b6064811115612f165760405162461bcd60e51b8152600401610e1290618692565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165ad9050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d81565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061660692505050565b90506127106130036006548361622b90919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b88565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e22565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130769493929190618391565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b51565b613235617ac1565b600061325b6040518061062001604052806105ef81526020016190256105ef9139613d71565b915091508061327c5760405162461bcd60e51b8152600401610e1290618ca4565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050505061660b565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e49565b600b54613624576135756179eb565b60015460005b8181101561362057600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff19169115159190911790556040860151805187946135fc93600080516020619005833981519152909101920190617a1a565b5060608201516136129060038301906013617a94565b50505080600101905061357b565b5050505b600061362f8261666f565b905061363a81611c4b565b156118fe576118fe8282616515565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d34565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185a5565b600034116136b45760405162461bcd60e51b8152600401610e1290618891565b3a156136d25760405162461bcd60e51b8152600401610e1290618a23565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167f290919063ffffffff16565b9063ffffffff61682c16565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ed8565b60405180910390a16137d1838263ffffffff6161e916565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167f290919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ed8565b60405180910390a1613889838263ffffffff6161e916565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ed8565b60405180910390a2613986565b600354613925908463ffffffff61622b16565b600390815581015461393d908463ffffffff61622b16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ed8565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ed8565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b6000613b0f600a5461374685613746600b8981548110613af157fe5b6000918252602090912060169091020154439063ffffffff6161e916565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b4e57600080fd5b505afa158015613b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8691906180ae565b9150915060009350808310613ce557613b9f8787615150565b5060405163436aa28360e11b8152600090612002906386d5450690613bc8908b906004016181eb565b60206040518083038186803b158015613be057600080fd5b505afa158015613bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c189190617e5b565b6001600160a01b031614613c84576040516313d13bdb60e31b815261100190639e89ded890613c4d908a9087906004016181ff565b600060405180830381600087803b158015613c6757600080fd5b505af1158015613c7b573d6000803e3d6000fd5b50505050613cdc565b6040516305bfb49960e41b815261100190635bfb499090613ca9908a906004016181eb565b600060405180830381600087803b158015613cc357600080fd5b505af1158015613cd7573d6000803e3d6000fd5b505050505b60019350613cf7565b818310613cf757613cf58761666f565b505b60098054600019019055600b80546000919088908110613d1357fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613d79617ac1565b6000613d83617ac1565b613d8b617b5e565b613d9c613d978661686e565b616893565b90506000805b613dab836168dd565b15613f1f5780613dd057613dc6613dc1846168fe565b61694c565b60ff168452613f17565b8060011415613f12576060613dec613de7856168fe565b6169cc565b90508051604051908082528060200260200182016040528015613e2957816020015b613e16617ae5565b815260200190600190039081613e0e5790505b5085602001819052508051604051908082528060200260200182016040528015613e6757816020015b6060815260200190600190039081613e525790505b50604086015260005b8151811015613f0757613e81617ae5565b60606000613ea1858581518110613e9457fe5b6020026020010151616a9d565b92509250925080613ec1578860009a509a50505050505050505050613f28565b8289602001518581518110613ed257fe5b60200260200101819052508189604001518581518110613eee57fe5b6020026020010181905250505050806001019050613e70565b506001925050613f17565b613f1f565b600101613da2565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f47579050509050613f6d8363ffffffff16616bb7565b81600081518110613f7a57fe5b602002602001018190525061115e81616bca565b6000606483511115613fc557600080516020618fc5833981519152604051613fb5906186ef565b60405180910390a1506066611dc5565b60005b83518110156140635760005b8181101561405a57848181518110613fe857fe5b6020026020010151600001516001600160a01b031685838151811061400957fe5b6020026020010151600001516001600160a01b0316141561405257600080516020618fc583398151915260405161403f906187ff565b60405180910390a1606692505050611dc5565b600101613fd4565b50600101613fc8565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141155760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161408b565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141ea5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141d65780601f106141ab576101008083540402835291602001916141d6565b820191906000526020600020905b8154815290600101906020018083116141b957829003601f168201915b50505050508152602001906001019061413f565b50505050905060005b82518110156142475782818151811061420857fe5b60200260200101516060015160030283828151811061422357fe5b60209081029190910101516001600160401b039091166060909101526001016141f3565b5060608061425789898686616c54565b915091506142658282615513565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142a4578160200160208202803683370190505b50905060005b828110156144355760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142db57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614316926001600160a01b0390921691016181eb565b60206040518083038186803b15801561432e57600080fd5b505afa158015614342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143669190617e5b565b6001600160a01b0316146143c857600182828151811061438257fe5b602002602001019060ff16908160ff1681525050600181815481106143a357fe5b9060005260206000209060040201600301546000146143c3578360010193505b61442d565b67016345785d8a0000600182815481106143de57fe5b906000526020600020906004020160030154106144005784600101945061442d565b6001818154811061440d57fe5b90600052602060002090600402016003015460001461442d578360010193505b6001016142aa565b50606084604051908082528060200260200182016040528015614462578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614491578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144c0578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144ef578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614520578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561454f578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561459757600080fd5b505afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf9190618096565b905067016345785d8a000081111561461b57600080516020618fc58339815191526040516145fc90618b10565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149af5789818151811061463257fe5b602002602001015160ff1660011415614728576001818154811061465257fe5b906000526020600020906004020160030154600014614723576001818154811061467857fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146a357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146d057fe5b906000526020600020906004020160030154838d815181106146ee57fe5b60200260200101818152505060018a8d8151811061470857fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149a7565b67016345785d8a00006001828154811061473e57fe5b906000526020600020906004020160030154106148c3576001818154811061476257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147c857fe5b906000526020600020906004020160030154816147e157fe5b06600183815481106147ef57fe5b90600052602060002090600402016003015403905061481783826161e990919063ffffffff16565b898f8151811061482357fe5b6020026020010181815250506001828154811061483c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061486d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061489a57fe5b60209081029190910101526148b5868263ffffffff61622b16565b95508d6001019d50506149a7565b600181815481106148d057fe5b9060005260206000209060040201600301546000146149a757600181815481106148f657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061492757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061495457fe5b906000526020600020906004020160030154838d8151811061497257fe5b60200260200101818152505060008a8d8151811061498c57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161461e565b5060008415614c25576002546040516303702b2960e51b815261100491636e0565209188916149e9918e918e918d914201906004016182f9565b6020604051808303818588803b158015614a0257600080fd5b505af193505050508015614a33575060408051601f3d908101601f19168201909252614a3091810190617fc3565b60015b614baa576040516000815260443d1015614a4f57506000614aea565b60046000803e60005160e01c6308c379a08114614a70576000915050614aea565b60043d036004833e81513d60248201116001600160401b0382111715614a9b57600092505050614aea565b80830180516001600160401b03811115614abc576000945050505050614aea565b8060208301013d8601811115614ada57600095505050505050614aea565b601f01601f191660405250925050505b80614af55750614b37565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b29919061837e565b60405180910390a250614ba5565b3d808015614b61576040519150601f19603f3d011682016040523d82523d6000602084013e614b66565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614b9b919061837e565b60405180910390a2505b614c25565b8015614bec577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bdf9190618ed8565b60405180910390a1614c23565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c1a906184a8565b60405180910390a25b505b8015614ddb5760005b8751811015614dd9576000888281518110614c4557fe5b60200260200101519050600060018281548110614c5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c8f57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d4b5760018281548110614cd057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d1f57fe5b906000526020600020906004020160030154604051614d3e9190618ed8565b60405180910390a2614dcf565b60018281548110614d5857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614da757fe5b906000526020600020906004020160030154604051614dc69190618ed8565b60405180910390a25b5050600101614c2e565b505b835115614fd15760005b8451811015614fcf578a8181518110614dfa57fe5b602002602001015160ff1660011415614e99576120026001600160a01b031663092193ab858381518110614e2a57fe5b6020026020010151878481518110614e3e57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6291906181eb565b6000604051808303818588803b158015614e7b57600080fd5b505af1158015614e8f573d6000803e3d6000fd5b5050505050614fc7565b6000858281518110614ea757fe5b60200260200101516001600160a01b03166108fc868481518110614ec757fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f5d57858281518110614efd57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f3b57fe5b6020026020010151604051614f509190618ed8565b60405180910390a2614fc5565b858281518110614f6957fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fa757fe5b6020026020010151604051614fbc9190618ed8565b60405180910390a25b505b600101614de5565b505b5050505050505050505050505060005b60015481101561503e5760018181548110614ff857fe5b9060005260206000209060040201600301546000146150365760006001828154811061502057fe5b9060005260206000209060040201600301819055505b600101614fe1565b5047156150ac577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150749190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150aa573d6000803e3d6000fd5b505b600060038190556005558151156150c7576150c782826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561510457600080fd5b505af1158015615118573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516057fe5b9060005260206000209060040201600301549050600060018080549050039050600161518a6130a3565b51116151bf5760006001858154811061519f57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516151f89190618ed8565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153e5576001816001018154811061523957fe5b90600052602060002090600402016001828154811061525457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061531557fe5b9060005260206000209060160201600b828154811061533057fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615387938386019390821615610100026000190190911604617b7e565b5061539a60038281019084016013617bf3565b509050508060010160046000600184815481106153b357fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161521b565b5060018054806153f157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061544457fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154766002830182617b1a565b615484600383016000617c1d565b50509055600081838161549357fe5b04905080156155075760015460005b81811015615504576154db83600183815481106154bb57fe5b90600052602060002090600402016003015461622b90919063ffffffff16565b600182815481106154e857fe5b60009182526020909120600360049092020101556001016154a2565b50505b50600195945050505050565b6060806000808080806155246131ad565b6001549091505b801561575357600181039250600b838154811061554457fe5b600091825260209091206001601690920201015460ff166155645761574a565b6001838154811061557157fe5b60009182526020909120600490910201546001600160a01b03169450615598858484613aac565b9350836155a45761574a565b60405163436aa28360e11b81526000908190612002906386d54506906155ce908a906004016181eb565b60206040518083038186803b1580156155e657600080fd5b505afa1580156155fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061561e9190617e5b565b90506001600160a01b038116156156a7576040516302ceee9160e11b81526120029063059ddd22906156549084906004016181eb565b60206040518083038186803b15801561566c57600080fd5b505afa158015615680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156a49190617e5b565b91505b60005b8c5181101561574657876001600160a01b03168d82815181106156c957fe5b6020026020010151600001516001600160a01b031614806157125750826001600160a01b03168d82815181106156fb57fe5b6020026020010151600001516001600160a01b0316145b1561573e5760018d828151811061572557fe5b6020908102919091010151901515608090910152615746565b6001016156aa565b5050505b6000190161552b565b5060005b89518110156157c05789818151811061576c57fe5b602002602001015160800151806157ac575060006001600160a01b03168a828151811061579557fe5b6020026020010151600001516001600160a01b0316145b156157b8578560010195505b600101615757565b50885185106158a85760408051600180825281830190925290816020015b6157e6617ae5565b8152602001906001900390816157de575050604080516001808252818301909252919850602082015b606081526020019060019003908161580f5790505095508860008151811061583357fe5b60200260200101518760008151811061584857fe5b60200260200101819052508760008151811061586057fe5b60200260200101518660008151811061587557fe5b602002602001018190525060008760008151811061588f57fe5b60209081029190910101519015156080909101526159ed565b848951036040519080825280602002602001820160405280156158e557816020015b6158d2617ae5565b8152602001906001900390816158ca5790505b5096508489510360405190808252806020026020018201604052801561591f57816020015b606081526020019060019003908161590a5790505b5095506000915060005b89518110156159eb5789818151811061593e57fe5b602002602001015160800151158015615981575060006001600160a01b03168a828151811061596957fe5b6020026020010151600001516001600160a01b031614155b156159e35789818151811061599257fe5b60200260200101518884815181106159a657fe5b60200260200101819052508881815181106159bd57fe5b60200260200101518784815181106159d157fe5b60200260200101819052508260010192505b600101615929565b505b50505050505b9250929050565b600154825160005b82811015615b17576001615a14617ae5565b60018381548110615a2157fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615aeb57878181518110615ab157fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ae35760009250615aeb565b600101615a9d565b508115615b0d5780516001600160a01b03166000908152600460205260408120555b5050600101615a02565b5080821115615bd657805b82811015615bd4576001805480615b3557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b8857fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bba6002830182617b1a565b615bc8600383016000617c1d565b50509055600101615b22565b505b6000818310615be55781615be7565b825b905060005b81811015615f8b57615c99868281518110615c0357fe5b602002602001015160018381548110615c1857fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617020565b615e4d578060010160046000888481518110615cb157fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615ced57fe5b602002602001015160018281548110615d0257fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dbd57fe5b6020026020010151600b8281548110615dd257fe5b90600052602060002090601602016002019080519060200190615df6929190617a1a565b506000600b8281548110615e0657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e3757fe5b6000918252602090912060169091020155615f83565b858181518110615e5957fe5b60200260200101516060015160018281548110615e7257fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f38858281518110615eb657fe5b6020026020010151600b8381548110615ecb57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8357848181518110615f4857fe5b6020026020010151600b8281548110615f5d57fe5b90600052602060002090601602016002019080519060200190615f81929190617a1a565b505b600101615bec565b508282111561616357615f9c6179eb565b835b8381101561616057858181518110615fb257fe5b602002602001015182604001819052506001878281518110615fd057fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020618fe58339815191528101918255858301516000805160206196148339815191528201805491151560ff19909216919091179055928501518051869492936161069360008051602061900583398151915201920190617a1a565b50606082015161611c9060038301906013617a94565b505050806001016004600089848151811061613357fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615f9e565b50505b61616b61707c565b616173617264565b6000600981905560015493505b838110156161e1576000600b828154811061619757fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161c857fe5b6000918252602090912060169091020155600101616180565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617452565b60008282018381101561115e5760405162461bcd60e51b8152600401610e1290618613565b60015481516040805182815260208084028201019091526060929190839082801561628f57816020015b606081526020019060019003908161627a5790505b50600b5490915083146162a6579250611d15915050565b60005b828110156163b557600b6001600460008985815181106162c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106162f957fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163915780601f1061636657610100808354040283529160200191616391565b820191906000526020600020905b81548152906001019060200180831161637457829003601f168201915b50505050508282815181106163a257fe5b60209081029190910101526001016162a9565b50949350505050565b60005b8281101561650b57600082878388016040516020016163e19291906181dd565b6040516020818303038152906040528051906020012060001c8161640157fe5b06905080850182870114616502576000898388018151811061641f57fe5b602002602001015190506060898489018151811061643957fe5b602002602001015190508a8388018151811061645157fe5b60200260200101518b858a018151811061646757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061649657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164c457fe5b60200260200101518a858a01815181106164da57fe5b6020026020010181905250808a848901815181106164f457fe5b602002602001018190525050505b506001016163c1565b5050505050505050565b600980546001908101909155600b80548390811061652f57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061656557fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165c091906181c1565b60405160208183030381529060405280519060200120836040516020016165e791906181c1565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166275760009250616665565b600160208701838101602088015b6002848385100114156166605780518351146166545760009650600093505b60209283019201616635565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061669857506000199050611d15565b6001810390506000600182815481106166ad57fe5b90600052602060002090600402016003015490506000600183815481106166d057fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616729908590618ed8565b60405180910390a28061674157829350505050611d15565b600081838161674c57fe5b04905080156167e85760005b8481101561679a5761677182600183815481106154bb57fe5b6001828154811061677e57fe5b6000918252602090912060036004909202010155600101616758565b50600180549085015b818110156167e5576167bc83600183815481106154bb57fe5b600182815481106167c957fe5b60009182526020909120600360049092020101556001016167a3565b50505b5091949350505050565b60008261680157506000611dc5565b8282028284828161680e57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189e2565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061747e565b616876617c2c565b506040805180820190915281518152602082810190820152919050565b61689b617b5e565b6168a4826174b5565b6168ad57600080fd5b60006168bc83602001516174ef565b60208085015160408051808201909152868152920190820152915050919050565b60006168e7617c2c565b505080518051602091820151919092015191011190565b616906617c2c565b61690f826168dd565b61691857600080fd5b6020820151600061692882617552565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696157508151602110155b61696a57600080fd5b600061697983602001516174ef565b9050808360000151101561699f5760405162461bcd60e51b8152600401610e1290618bf0565b8251602080850151830180519284900392918310156163b557506020919091036101000a90049392505050565b60606169d7826174b5565b6169e057600080fd5b60006169eb83617633565b9050606081604051908082528060200260200182016040528015616a2957816020015b616a16617c2c565b815260200190600190039081616a0e5790505b5090506000616a3b85602001516174ef565b60208601510190506000805b84811015616a9257616a5883617552565b9150604051806040016040528083815260200184815250848281518110616a7b57fe5b602090810291909101015291810191600101616a47565b509195945050505050565b616aa5617ae5565b60606000616ab1617ae5565b6060616abb617b5e565b616ac487616893565b90506000805b616ad3836168dd565b15616ba85780616afe57616aee616ae9846168fe565b61768f565b6001600160a01b03168552616ba0565b8060011415616b2657616b13616ae9846168fe565b6001600160a01b03166020860152616ba0565b8060021415616b4e57616b3b616ae9846168fe565b6001600160a01b03166040860152616ba0565b8060031415616b7a57616b63613dc1846168fe565b6001600160401b0316606086015260019150616ba0565b8060041415616b9b57616b94616b8f846168fe565b6176a9565b9350616ba0565b616ba8565b600101616aca565b50929791965091945092505050565b6060611dc5616bc583617719565b6177ff565b6060815160001415616beb5750604080516000815260208101909152611d15565b606082600081518110616bfa57fe5b602002602001015190506000600190505b8351811015616c3b57616c3182858381518110616c2457fe5b6020026020010151617851565b9150600101616c0b565b5061115e616c4e825160c060ff166178ce565b82617851565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616c9457600080fd5b505afa158015616ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ccc9190618096565b90508085518851011015616ce1575083518651015b606081604051908082528060200260200182016040528015616d1d57816020015b616d0a617ae5565b815260200190600190039081616d025790505b509050606082604051908082528060200260200182016040528015616d5657816020015b6060815260200190600190039081616d415790505b50905060008060005b8b51831080616d6e5750895182105b8015616d7957508581105b1561700e578b51831415616de957898281518110616d9357fe5b6020026020010151858281518110616da757fe5b6020026020010181905250888281518110616dbe57fe5b6020026020010151848281518110616dd257fe5b602090810291909101015260019182019101616d5f565b8951821415616e54578b8381518110616dfe57fe5b6020026020010151858281518110616e1257fe5b60200260200101819052508a8381518110616e2957fe5b6020026020010151848281518110616e3d57fe5b602090810291909101015260019283019201616d5f565b898281518110616e6057fe5b6020026020010151606001516001600160401b03168c8481518110616e8157fe5b6020026020010151606001516001600160401b03161115616efd578b8381518110616ea857fe5b6020026020010151858281518110616ebc57fe5b60200260200101819052508a8381518110616ed357fe5b6020026020010151848281518110616ee757fe5b6020026020010181905250826001019250617006565b898281518110616f0957fe5b6020026020010151606001516001600160401b03168c8481518110616f2a57fe5b6020026020010151606001516001600160401b03161015616fa657898281518110616f5157fe5b6020026020010151858281518110616f6557fe5b6020026020010181905250888281518110616f7c57fe5b6020026020010151848281518110616f9057fe5b6020026020010181905250816001019150617006565b898281518110616fb257fe5b6020026020010151600001516001600160a01b03168c8481518110616fd357fe5b6020026020010151600001516001600160a01b03161015616ffa578b8381518110616ea857fe5b898281518110616d9357fe5b600101616d5f565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561705a575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170c757805b828110156170c557601280548061709f57fe5b6001900381819060005260206000200160006170bb9190617b1a565b905560010161708c565b505b60008183106170d657816170d8565b825b905060005b818110156171f057617195601282815481106170f557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171835780601f1061715857610100808354040283529160200191617183565b820191906000526020600020905b81548152906001019060200180831161716657829003601f168201915b50505050506013838154811061341857fe5b6171e857601381815481106171a657fe5b90600052602060002001601282815481106171bd57fe5b9060005260206000200190805460018160011615610100020316600290046171e6929190617b7e565b505b6001016170dd565b5082821115610e3257825b8281101561725e5760126013828154811061721257fe5b6000918252602080832084546001818101875595855291909320929091018054617255949390920192909160026101009282161592909202600019011604617b7e565b506001016171fb565b50505050565b601354600b54808211156172af57805b828110156172ad57601380548061728757fe5b6001900381819060005260206000200160006172a39190617b1a565b9055600101617274565b505b60008183106172be57816172c0565b825b905060005b818110156173df5761737d601382815481106172dd57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561736b5780601f106173405761010080835404028352916020019161736b565b820191906000526020600020905b81548152906001019060200180831161734e57829003601f168201915b5050505050600b8381548110615ecb57fe5b6173d757600b818154811061738e57fe5b9060005260206000209060160201600201601382815481106173ac57fe5b9060005260206000200190805460018160011615610100020316600290046173d5929190617b7e565b505b6001016172c5565b5082821115610e3257825b8281101561725e576013600b828154811061740157fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461744995939094019390926000199082161561010002011604617b7e565b506001016173ea565b600081848411156174765760405162461bcd60e51b8152600401610e12919061837e565b505050900390565b6000818361749f5760405162461bcd60e51b8152600401610e12919061837e565b5060008385816174ab57fe5b0495945050505050565b80516000906174c657506000611d15565b6020820151805160001a9060c08210156174e557600092505050611d15565b5060019392505050565b8051600090811a6080811015617509576000915050611d15565b60b8811080617524575060c08110801590617524575060f881105b15617533576001915050611d15565b60c08110156175475760b519019050611d15565b60f519019050611d15565b80516000908190811a608081101561756d576001915061762c565b60b881101561758257607e198101915061762c565b60c08110156175d357600060b78203600186019550806020036101000a8651049150600181018201935050808310156175cd5760405162461bcd60e51b8152600401610e129061892f565b5061762c565b60f88110156175e85760be198101915061762c565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561762a5760405162461bcd60e51b8152600401610e129061892f565b505b5092915050565b805160009061764457506000611d15565b6000809050600061765884602001516174ef565b602085015185519181019250015b808210156176865761767782617552565b82019150826001019250617666565b50909392505050565b80516000906015146176a057600080fd5b611dc58261694c565b80516060906176b757600080fd5b60006176c683602001516174ef565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156176fd576020820181803683370190505b50905060008160200190506163b58487602001510182856179a0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661775d57506018617781565b6fffffffffffffffffffffffffffffffff19841661777d57506010617781565b5060005b60208110156177b75781818151811061779657fe5b01602001516001600160f81b031916156177af576177b7565b600101617781565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177ec576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178315750607f60f81b8260008151811061781f57fe5b01602001516001600160f81b03191611155b1561783d575080611d15565b611dc561784f8351608060ff166178ce565b835b6060806040519050835180825260208201818101602087015b8183101561788257805183526020928301920161786a565b50855184518101855292509050808201602086015b818310156178af578051835260209283019201617897565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106178f85760405162461bcd60e51b8152600401610e129061877a565b604080516001808252818301909252606091602082018180368337019050509050603784116179525782840160f81b8160008151811061793457fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061795d85617719565b90508381510160370160f81b8260008151811061797657fe5b60200101906001600160f81b031916908160001a9053506179978282617851565b95945050505050565b806179aa57610e32565b5b602081106179ca578251825260209283019290910190601f19016179ab565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a15617c46565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a5b57805160ff1916838001178555617a88565b82800160010185558215617a88579182015b82811115617a88578251825591602001919060010190617a6d565b506131e8929150617c65565b8260138101928215617a885791602002820182811115617a88578251825591602001919060010190617a6d565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b405750611f2d565b601f016020900490600052602060002090810190611f2d9190617c65565b6040518060400160405280617b71617c2c565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bb75780548555617a88565b82800160010185558215617a8857600052602060002091601f016020900482015b82811115617a88578254825591600101919060010190617bd8565b8260138101928215617a885791820182811115617a88578254825591600101919060010190617bd8565b50611f2d906013810190617c65565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c6b565b8035611dc581618faf565b60008083601f840112617c9b578182fd5b5081356001600160401b03811115617cb1578182fd5b60208301915083602080830285010111156159f357600080fd5b6000601f8381840112617cdc578182fd5b8235617cef617cea82618f64565b618f3e565b818152925060208084019085810160005b84811015617d81578135880189603f820112617d1b57600080fd5b838101356001600160401b03811115617d3357600080fd5b617d44818901601f19168601618f3e565b81815260408c81848601011115617d5a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d00565b50505050505092915050565b600082601f830112617d9d578081fd5b8135617dab617cea82618f64565b818152915060208083019084810181840286018201871015617dcc57600080fd5b6000805b85811015617d815782356001600160401b0381168114617dee578283fd5b85529383019391830191600101617dd0565b60008083601f840112617e11578182fd5b5081356001600160401b03811115617e27578182fd5b6020830191508360208285010111156159f357600080fd5b600060208284031215617e50578081fd5b813561115e81618faf565b600060208284031215617e6c578081fd5b815161115e81618faf565b60008060008060408587031215617e8c578283fd5b84356001600160401b0380821115617ea2578485fd5b617eae88838901617c8a565b90965094506020870135915080821115617ec6578384fd5b50617ed387828801617c8a565b95989497509550505050565b600080600060608486031215617ef3578283fd5b83356001600160401b0380821115617f09578485fd5b81860187601f820112617f1a578586fd5b80359250617f2a617cea84618f64565b80848252602080830192508084018b828389028701011115617f4a57898afd5b8994505b86851015617f7457617f608c82617c7f565b845260019490940193928101928101617f4e565b509097508801359350505080821115617f8b578384fd5b617f9787838801617d8d565b93506040860135915080821115617fac578283fd5b50617fb986828701617ccb565b9150509250925092565b600060208284031215617fd4578081fd5b8151801515811461115e578182fd5b60008060208385031215617ff5578182fd5b82356001600160401b0381111561800a578283fd5b61801685828601617e00565b90969095509350505050565b60008060008060408587031215618037578384fd5b84356001600160401b038082111561804d578586fd5b61805988838901617e00565b90965094506020870135915080821115618071578384fd5b50617ed387828801617e00565b60006020828403121561808f578081fd5b5035919050565b6000602082840312156180a7578081fd5b5051919050565b600080604083850312156180c0578182fd5b505080516020909101519092909150565b6000806000604084860312156180e5578081fd5b833560ff811681146180f5578182fd5b925060208401356001600160401b0381111561810f578182fd5b61811b86828701617e00565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181605781516001600160a01b03168752958201959082019060010161813b565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181ad816020860160208601618f83565b601f01601f19169290920160200192915050565b600082516181d3818460208701618f83565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618128565b60006040825261829c6040830185618128565b602083820381850152818551808452828401915082838202850101838801865b838110156182ea57601f198784030185526182d8838351618195565b948601949250908501906001016182bc565b50909998505050505050505050565b60006080825261830c6080830187618128565b828103602084810191909152865180835287820192820190845b8181101561834257845183529383019391830191600101618326565b505084810360408601526183568188618128565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e6020830184618195565b6000604082526183a560408301868861816b565b82810360208401526183b881858761816b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179976060830184618195565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff851682526040602083015261799760408301848661816b565b6040518181016001600160401b0381118282101715618f5c57600080fd5b604052919050565b60006001600160401b03821115618f79578081fd5b5060209081020190565b60005b83811015618f9e578181015183820152602001618f86565b8381111561725e5750506000910152565b6001600160a01b0381168114611f2d57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/CrossChainContract b/core/systemcontracts/feynman/rialto/CrossChainContract new file mode 100644 index 0000000000..1c2c49364a --- /dev/null +++ b/core/systemcontracts/feynman/rialto/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611443565b610432611448565b61043261144e565b610456611454565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611484565b6104566116e4565b61061561170c565b6108896004803603602081101561088257600080fd5b5035611711565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b610456611740565b610432600480360360208110156108d257600080fd5b503560ff16611767565b610432611782565b6103f361170c565b6103f3611788565b61061561141d565b61045661178d565b610432611793565b6103f3611799565b61043261179e565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a4565b610456612a5e565b6103f3612a66565b610432612a6b565b610432612a71565b610470612a77565b610432612a80565b610432612a86565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8c565b61069260048036036020811015610b0b57600080fd5b503560ff16613550565b61045661356b565b61043261358f565b6105e6613595565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e9565b610761613809565b610456613828565b61043261382e565b610432613834565b6105e661383a565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf1565b6105e6613c0c565b6103f3613e2b565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e30565b610432613f73565b6103f3613f79565b610432613f7e565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a826023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a826023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f84565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcc565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcc565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c9565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614147565b50905061141181838851614151565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b6102ca81565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150c57600080fd5b505afa158015611520573d6000803e3d6000fd5b505050506040513d602081101561153657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157757600080fd5b505afa15801561158b573d6000803e3d6000fd5b505050506040513d60208110156115a157600080fd5b50519050806115ae575060155b6000821180156115be5750808211155b6115fd576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b909152915190819003607801902060009061166a9083614192565b905080156116dc5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c357600080fd5b505af11580156116d7573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182857600080fd5b505afa15801561183c573d6000803e3d6000fd5b505050506040513d602081101561185257600080fd5b50516118a5576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611915576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d60208110156119b457600080fd5b50516119f15760405162461bcd60e51b8152600401808060200182810382526023815260200180614a826023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5b576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac4576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b165760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b5a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9e6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4757600080fd5b505afa158015611c5b573d6000803e3d6000fd5b505050506040513d6020811015611c7157600080fd5b505160408051808201909152600381526269626360e81b6020820152611c978e8e613f84565b8585613fcc565b611ce6576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3257600080fd5b505afa158015611d46573d6000803e3d6000fd5b505050506040513d6020811015611d5c57600080fd5b505190508b8b600080806060611d7189614477565b935093509350935083611e33578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611deb578181015183820152602001611dd3565b50505050905090810190601f168015611e185780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4e565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b85760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611f00578181015183820152602001611ee8565b50505050905090810190601f168015611f2d5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4d57600080fd5b505af192505050801561203157506040513d6000823e601f3d908101601f191682016040526020811015611f8057600080fd5b8101908080516040519392919084600160201b821115611f9f57600080fd5b908301906020820185811115611fb457600080fd5b8251600160201b811182820188101715611fcd57600080fd5b82525081516020918201929091019080838360005b83811015611ffa578181015183820152602001611fe2565b50505050905090810190601f1680156120275780820380516001836020036101000a031916815260200191505b5060405250505060015b612343576040516000815260443d101561204d575060006120e8565b60046000803e60005160e01c6308c379a0811461206e5760009150506120e8565b60043d036004833e81513d60248201116001600160401b0382111715612099576000925050506120e8565b80830180516001600160401b038111156120ba5760009450505050506120e8565b8060208301013d86018111156120d8576000955050505050506120e8565b601f01601f191660405250925050505b806120f35750612205565b60ff871660009081526007602052604081205461212a916001600160401b0390911690899061212590600290886113a7565b614527565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c55781810151838201526020016121ad565b50505050905090810190601f1680156121f25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233e565b3d80801561222f576040519150601f19603f3d011682016040523d82523d6000602084013e612234565b606091505b5060ff8716600090815260076020526040812054612267916001600160401b0390911690899061212590600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123025781810151838201526020016122ea565b50505050905090810190601f16801561232f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b2565b8051156123b05760ff871660009081526007602052604081205461237c916001600160401b0390911690899061212590600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612986565b60ff83166001141561265c5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561244257818101518382015260200161242a565b50505050905090810190601f16801561246f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248f57600080fd5b505af19250505080156124a0575060015b6123b2576040516000815260443d10156124bc57506000612557565b60046000803e60005160e01c6308c379a081146124dd576000915050612557565b60043d036004833e81513d60248201116001600160401b038211171561250857600092505050612557565b80830180516001600160401b03811115612529576000945050505050612557565b8060208301013d860181111561254757600095505050505050612557565b601f01601f191660405250925050505b8061256257506125c7565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c55781810151838201526020016121ad565b3d8080156125f1576040519150601f19603f3d011682016040523d82523d6000602084013e6125f6565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123025781810151838201526020016122ea565b60ff8316600214156129865760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e65781810151838201526020016126ce565b50505050905090810190601f1680156127135780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273357600080fd5b505af1925050508015612744575060015b612984576040516000815260443d1015612760575060006127fb565b60046000803e60005160e01c6308c379a081146127815760009150506127fb565b60043d036004833e81513d60248201116001600160401b03821117156127ac576000925050506127fb565b80830180516001600160401b038111156127cd5760009450505050506127fb565b8060208301013d86018111156127eb576000955050505050506127fb565b601f01601f191660405250925050505b8061280657506128af565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286f578181015183820152602001612857565b50505050905090810190601f16801561289c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612984565b3d8080156128d9576040519150601f19603f3d011682016040523d82523d6000602084013e6128de565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612948578181015183820152602001612930565b50505050905090810190601f1680156129755780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b8575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1857600080fd5b505af1158015612a2c573d6000803e3d6000fd5b505050506040513d6020811015612a4257600080fd5b50505050505050505050505b5050505050505050505050505050565b630102ca0081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b8602e913960400191505060405180910390fd5b600b5460ff1615612b10576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c29050565b15612c1457604080516020601f8401819004810282018101909252828152600091612bbc918585808385018382808284376000920191909152506147a992505050565b90506127108111158015612bd15750600a8110155b612c0c5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a306032913960400191505060405180910390fd5b6001556134be565b612c7d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c29050565b15612e0557606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612d005760405162461bcd60e51b815260040180806020018281038252605a8152602001806148d1605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1e816147ae565b612d6f576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134be565b612e7284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c29050565b15612fa357606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef55760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f99576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134be565b61300784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c29050565b1561313c576002811461304b5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495f602d913960400191505060405180910390fd5b600061308e600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a992505050565b905060008161ffff161180156130a8575060648161ffff16105b6130f2576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134be565b61319f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c29050565b156132d257600281146131e35760405162461bcd60e51b815260040180806020018281038252602c81526020018061498c602c913960400191505060405180910390fd5b6000613226600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a992505050565b905060008161ffff16118015613240575060648161ffff16105b613289576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134be565b61333d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c29050565b1561348157600281146133815760405162461bcd60e51b815260040180806020018281038252603481526020018061492b6034913960400191505060405180910390fd5b60006133c4600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a992505050565b905060008161ffff161180156133de575060648161ffff16105b61342f576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134be565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135da576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361d57600080fd5b505afa158015613631573d6000803e3d6000fd5b505050506040513d602081101561364757600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368857600080fd5b505afa15801561369c573d6000803e3d6000fd5b505050506040513d60208110156136b257600080fd5b50519050806136bf575060155b6000821180156136cf5750808211155b61370e576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613755576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a6907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614192565b905080156137e457600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613892576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c51576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9457600080fd5b505afa158015613ca8573d6000803e3d6000fd5b505050506040513d6020811015613cbe57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cff57600080fd5b505afa158015613d13573d6000803e3d6000fd5b505050506040513d6020811015613d2957600080fd5b5051905080613d36575060155b600082118015613d465750808211155b613d85576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc9576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1b907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614192565b905080156137e4576137e46140c9565b601181565b60005460ff16613e75576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed25760405162461bcd60e51b81526004018080602001828103825260318152602001806148a06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f379284928a9261212592909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630102ca0060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fdb575060006140c0565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614012576020820181803683370190505b5090506000614020826147b4565b60208089015182520190508660008061403889614147565b8086526020909501949092509050614051828583614151565b9283019261405e88614147565b8086526020909501949092509050614077828583614151565b9283018a81526020019261408a87614147565b909250905061409a828583614151565b5083516020016140a86147ba565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410d576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614171578251825260209283019290910190601f1901614152565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425b57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428c575082816001015414155b1561435f576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614301916002840191906147d8565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614413565b60005b60028201548110156143ea57336001600160a01b031682600201828154811061438757fe5b6000918252602090912001546001600160a01b031614156143e2576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614362565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446d576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614461600283018261483d565b50506001915050613fc6565b5060009392505050565b600080600060606021855110156144a7575050604080516000808252602082019092529092508291508190614520565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f2576020820181803683370190505b509050600061450082614147565b509050614512858260218d5103614151565b506001975091955093509150505b9193509193565b600b5460ff161561456b576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145eb565b600380546001908101918290555410156145eb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe6102ca85604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561468257818101518382015260200161466a565b50505050905090810190601f1680156146af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f75780518252601f1990920191602091820191016146d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147655780518252601f199092019160209182019101614746565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482d579160200282015b8281111561482d57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f8565b5061483992915061485e565b5090565b508054600082559060005260206000209081019061485b9190614885565b50565b61488291905b808211156148395780546001600160a01b0319168155600101614864565b90565b61488291905b80821115614839576000815560010161488b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/GovHubContract b/core/systemcontracts/feynman/rialto/GovHubContract new file mode 100644 index 0000000000..c3fd1e9334 --- /dev/null +++ b/core/systemcontracts/feynman/rialto/GovHubContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a6106f7565b6102296106fd565b61036b610702565b6040805160ff9092168252519081900360200190f35b61024a610707565b61036b61070d565b610399610712565b6040805161ffff9092168252519081900360200190f35b61036b610718565b61024a61071d565b61024a610723565b61024a610729565b61036b61072f565b61036b610734565b61024a610739565b61036b61073f565b61024a610744565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b50909250905061074a565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b03166107dc565b61036b6108c7565b6102296108cc565b61024a6108d1565b61024a6108d7565b6105616108dd565b604080519115158252519081900360200190f35b61024a6108e6565b61024a6108ec565b61022961070d565b61024a6108f2565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b5090925090506108f8565b61024a61096f565b61024a610975565b61036b61097b565b61024a610980565b61036b610986565b61024a61098b565b606481565b61200181565b60606106526115f9565b600061069385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061099192505050565b91509150806106af576106a66064610a57565b925050506106f0565b60006106ba83610ac1565b905063ffffffff81166106e157505060408051600081526020810190915291506106f09050565b6106ea81610a57565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b6102ca81565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b336120001461078a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061165e602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461081c5760405162461bcd60e51b815260040180806020018281038252603181526020018061168d6031913960400191505060405180910390fd5b6108246115f9565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108be81610ac1565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109385760405162461bcd60e51b815260040180806020018281038252602f81526020018061165e602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116be6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109996115f9565b60006109a36115f9565b6109ab611623565b6109bc6109b786610e62565b610e87565b90506000805b6109cb83610ed1565b15610a4a57806109ed576109e66109e184610ef2565b610f40565b8452610a42565b8060011415610a0c57610a026109e184610ef2565b6020850152610a42565b8060021415610a3d57610a26610a2184610ef2565b610fb9565b6001600160a01b0316604085015260019150610a42565b610a4a565b6001016109c2565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610a71579050509050610a978363ffffffff16610fd9565b81600081518110610aa457fe5b6020026020010181905250610ab881610fec565b9150505b919050565b6000610ad08260400151611076565b610b3c57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610abc565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610ba9578181015183820152602001610b91565b50505050905090810190601f168015610bd65780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c09578181015183820152602001610bf1565b50505050905090810190601f168015610c365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c5757600080fd5b505af1925050508015610c68575060015b610e5a576040516000815260443d1015610c8457506000610d21565b60046000803e60005160e01c6308c379a08114610ca5576000915050610d21565b60043d036004833e81513d602482011167ffffffffffffffff82111715610cd157600092505050610d21565b808301805167ffffffffffffffff811115610cf3576000945050505050610d21565b8060208301013d8601811115610d1157600095505050505050610d21565b601f01601f191660405250925050505b80610d2c5750610dcf565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d8b578181015183820152602001610d73565b50505050905090810190601f168015610db85780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610abc565b3d808015610df9576040519150601f19603f3d011682016040523d82523d6000602084013e610dfe565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610d8b578181015183820152602001610d73565b506000919050565b610e6a611643565b506040805180820190915281518152602082810190820152919050565b610e8f611623565b610e988261107c565b610ea157600080fd5b6000610eb083602001516110b6565b60208085015160408051808201909152868152920190820152915050919050565b6000610edb611643565b505080518051602091820151919092015191011190565b610efa611643565b610f0382610ed1565b610f0c57600080fd5b60208201516000610f1c82611119565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f4e57600080fd5b6000610f5d83602001516110b6565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610f94576020820181803683370190505b5090506000816020019050610fb084876020015101828561124c565b50949350505050565b8051600090601514610fca57600080fd5b610fd382611297565b92915050565b6060610fd3610fe78361134c565b611432565b606081516000141561100d5750604080516000815260208101909152610abc565b60608260008151811061101c57fe5b602002602001015190506000600190505b835181101561105d576110538285838151811061104657fe5b6020026020010151611484565b915060010161102d565b50610ab8611070825160c060ff16611501565b82611484565b3b151590565b805160009061108d57506000610abc565b6020820151805160001a9060c08210156110ac57600092505050610abc565b5060019392505050565b8051600090811a60808110156110d0576000915050610abc565b60b88110806110eb575060c081108015906110eb575060f881105b156110fa576001915050610abc565b60c081101561110e5760b519019050610abc565b60f519019050610abc565b80516000908190811a60808110156111345760019150611245565b60b881101561114957607e1981019150611245565b60c08110156111c357600060b78203600186019550806020036101000a8651049150600181018201935050808310156111bd576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611245565b60f88110156111d85760be1981019150611245565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611243576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80611256576107d7565b5b60208110611276578251825260209283019290910190601f1901611257565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112ac57508151602110155b6112b557600080fd5b60006112c483602001516110b6565b9050808360000151101561131f576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fb057506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611390575060186113b4565b6fffffffffffffffffffffffffffffffff1984166113b0575060106113b4565b5060005b60208110156113ea578181815181106113c957fe5b01602001516001600160f81b031916156113e2576113ea565b6001016113b4565b60008160200390506060816040519080825280601f01601f19166020018201604052801561141f576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114645750607f60f81b8260008151811061145257fe5b01602001516001600160f81b03191611155b15611470575080610abc565b610fd36114828351608060ff16611501565b835b6060806040519050835180825260208201818101602087015b818310156114b557805183526020928301920161149d565b50855184518101855292509050808201602086015b818310156114e25780518352602092830192016114ca565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611551576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ab5782840160f81b8160008151811061158d57fe5b60200101906001600160f81b031916908160001a9053509050610fd3565b60606115b68561134c565b90508381510160370160f81b826000815181106115cf57fe5b60200101906001600160f81b031916908160001a9053506115f08282611484565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611636611643565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/GovTokenContract b/core/systemcontracts/feynman/rialto/GovTokenContract new file mode 100644 index 0000000000..2fb7c60d84 --- /dev/null +++ b/core/systemcontracts/feynman/rialto/GovTokenContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/GovernorContract b/core/systemcontracts/feynman/rialto/GovernorContract new file mode 100644 index 0000000000..e0366b642c --- /dev/null +++ b/core/systemcontracts/feynman/rialto/GovernorContract @@ -0,0 +1 @@ +6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c87565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca0565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615de6565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c87565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615edc565b3480156105b157600080fd5b506105e36105c0366004615c87565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f04565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160db565b611267565b34801561066b57600080fd5b5061052061067a36600461616a565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160db565b611378565b3480156106c157600080fd5b506105206106d0366004615c87565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c87565b61146b565b6040516104d59493929190616250565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa36600461629d565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c87565b611773565b6040516104d59190616301565b3480156107e857600080fd5b5061045c6107f7366004615c87565b61177e565b34801561080857600080fd5b5061045c61081736600461616a565b6117a9565b34801561082857600080fd5b506104fe610837366004616329565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160db565b61182a565b34801561089357600080fd5b506104fe6108a236600461616a565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616a565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616a565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b50610520610989366004616359565b611960565b34801561099a57600080fd5b506105206109a9366004616385565b611989565b3480156109ba57600080fd5b506105206109c9366004615c87565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c87565b611a88565b3480156109fa57600080fd5b50610520610a09366004616408565b611b10565b348015610a1a57600080fd5b50610520610a29366004616461565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eab565b348015610a6457600080fd5b50610a6d611f41565b6040516104d59796959493929190616501565b348015610a8c57600080fd5b50610a95611fdf565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616563565b612053565b348015610aec57600080fd5b5061052061206a565b348015610b0157600080fd5b5061045c610b1036600461616a565b612097565b348015610b2157600080fd5b50610520610b30366004615c87565b61211f565b348015610b4157600080fd5b5061045c610b503660046165bb565b6121bb565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612900565b348015610b9457600080fd5b50610626610ba336600461661a565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c87565b61290c565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166ad565b612917565b348015610c0e57600080fd5b50610520610c1d3660046160db565b612a27565b348015610c2e57600080fd5b5061045c610c3d3660046166f0565b612a61565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c366004616719565b612ae9565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c87565b612b70565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d36366004616329565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c87565b612b93565b348015610e1257600080fd5b50610520610e213660046167ba565b612c1b565b348015610e3257600080fd5b5061045c610e41366004615c87565b612c3c565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167e6565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c87565b612cc4565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c87565b612d53565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a61211f565b60008c815261016360205260409020549098506001600160401b03169650610f308b61290c565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162eb565b1493506007816007811115610f9e57610f9e6162eb565b14925050509193959799509193959799565b6000610fbb82612d76565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd92919061684e565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9b565b868686612dc8565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612de6915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b81526004016104539061685e565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa92919061684e565b604051809103902090505b806111c1610164612e4f565b036111b557505b6111d181612ece565b50565b606061016280546111e490616895565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616895565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168cf565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168fb565b9150506112c6565b506113498585858561303f565b95945050505050565b6000610ef06001611361611fdf565b61136b9190616914565b65ffffffffffff16612cc4565b60008061138786868686612a27565b9050600061139482611773565b905060048160078111156113aa576113aa6162eb565b14806113c7575060058160078111156113c5576113c56162eb565b145b6113e35760405162461bcd60e51b81526004016104539061693a565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613244565b61145482888888886132e5565b61146182888888886133c7565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616895565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616895565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616895565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616895565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613402565b979650505050505050565b6000610fbb82613425565b60008060008061178d85613572565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613803565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697b565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613402565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612de6915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169e8565b81548110611a0c57611a0c6168cf565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138ce565b61025e90613937565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b81526004016104539061685e565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae992919061684e565b604051809103902090505b80611b00610164612e4f565b03611af457505b6111d1816139ea565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340292505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a2d565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162eb565b1480611c1b57506000816007811115611c1957611c196162eb565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a27565b3360009081526102c3602052604090208190559050611c7188888888613ad8565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b40565b611dd2611db76003603c616a11565b611dc360036078616a11565b680ad78ebc5ac6200000613b97565b611dda613bce565b611de5612005613bf5565b611df0612006613c25565b611dfa600a613c55565b611e0e611e096003603c616a11565b613c85565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e6373df87f0e2b8519ea2dd4abd8b639cdd628497ed25613cb5565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611edd576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0757604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f615750609954155b611fa55760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fad613d08565b611fb5613d17565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa925050508015612046575060408051601f3d908101601f1916820190925261204391810190616a33565b60015b61195b57610ef043613d26565b6000612060848484613d8d565b90505b9392505050565b61025e546000901561208f5761208161025e613e04565b6001600160e01b0316905090565b5061025d5490565b61209f610edb565b6001600160a01b0316336001600160a01b0316146120cf5760405162461bcd60e51b81526004016104539061685e565b306120d8610edb565b6001600160a01b03161461211657600080366040516120f892919061684e565b604051809103902090505b8061210f610164612e4f565b0361210357505b6111d181613e34565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa15801561217e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a29190616a5b565b9050806001146121b25780612063565b60009392505050565b33611007146121e157604051630f22c43960e41b81526110076004820152602401610453565b6122476040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b156122fc57602081146122755783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f84018190048102820181019092528281526000916122b6918585808385018382808284376000920191909152509293925050613ef89050565b90508015806122c757506201518081115b156122ed5784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f6816139ea565b506128bd565b6123636040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561241257602081146123915783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f84018190048102820181019092528281526000916123d2918585808385018382808284376000920191909152509293925050613ef89050565b90508015806123e3575062278d0081115b156124095784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681613efd565b61247e604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561253457602081146124ac5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f84018190048102820181019092528281526000916124ed918585808385018382808284376000920191909152509293925050613ef89050565b9050801580612505575069021e19e0c9bab240000081115b1561252b5784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681613fa0565b61259e6040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561264d57602081146125cc5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f840181900481028201810190925282815260009161260d918585808385018382808284376000920191909152509293925050613ef89050565b9050600581108061261e5750601481115b156126445784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681612ece565b6126bc604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561278257600881146126ea5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b6000612730600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ef89050565b90506001600160401b038116158061275357506202a300816001600160401b0316115b156127795784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681613fe3565b6127ee6040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561289c576014811461281c5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b6000612862601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ef89050565b90506001600160a01b0381166128935784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f68161404f565b838383836040516325ee20d560e21b81526004016104539493929190616a9d565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f29493929190616a9d565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140bb565b61291f610edb565b6001600160a01b0316336001600160a01b03161461294f5760405162461bcd60e51b81526004016104539061685e565b30612958610edb565b6001600160a01b031614612996576000803660405161297892919061684e565b604051809103902090505b8061298f610164612e4f565b0361298357505b600080856001600160a01b03168585856040516129b492919061684e565b60006040518083038185875af1925050503d80600081146129f1576040519150601f19603f3d011682016040523d82523d6000602084013e6129f6565b606091505b5091509150612a1e8282604051806060016040528060288152602001616efa602891396140f9565b50505050505050565b600084848484604051602001612a409493929190616ac4565b60408051601f19818403018152919052805160209091012095945050505050565b612a69610edb565b6001600160a01b0316336001600160a01b031614612a995760405162461bcd60e51b81526004016104539061685e565b30612aa2610edb565b6001600160a01b031614612ae05760008036604051612ac292919061684e565b604051809103902090505b80612ad9610164612e4f565b03612acd57505b6111d181613fe3565b60008251845114612b4d5760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5b338787878787614112565b611b588686612b6a87876141d0565b85611b62565b600080600080612b7f85613572565b93509350935093506117a184848484611267565b612b9b610edb565b6001600160a01b0316336001600160a01b031614612bcb5760405162461bcd60e51b81526004016104539061685e565b30612bd4610edb565b6001600160a01b031614612c125760008036604051612bf492919061684e565b604051809103902090505b80612c0b610164612e4f565b03612bff57505b6111d181613efd565b60006120638383612c3760408051602081019091526000815290565b613d8d565b612c44610edb565b6001600160a01b0316336001600160a01b031614612c745760405162461bcd60e51b81526004016104539061685e565b30612c7d610edb565b6001600160a01b031614612cbb5760008036604051612c9d92919061684e565b604051809103902090505b80612cb4610164612e4f565b03612ca857505b6111d181613fa0565b60006064612cd1836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3f9190616a5b565b612d499190616b0f565b610fbb9190616a11565b600080600080612d6285613572565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614302565b6000610fbb612da861439e565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612dd9878787876143a8565b915091506114618161446c565b6000805462010000900460ff1615612e1157604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e425760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145b6565b6000612e6a8254600f81810b600160801b909204900b131590565b15612e8857604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f515760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5b61206a565b90508015801590612f6d575061025e54155b15612fd257604080518082019091526000815261025e9060208101612f91846146b9565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613000612fed612fe0611fdf565b65ffffffffffff166138ce565b612ff6846146b9565b61025e9190614722565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061304e86868686612a27565b9050600461305b82611773565b600781111561306c5761306c6162eb565b146130895760405162461bcd60e51b81526004016104539061693a565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f89190616a5b565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613133908a908a908a906000908b90600401616b26565b602060405180830381865afa158015613150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131749190616a5b565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c1918b918b918b91908b908990600401616b74565b600060405180830381600087803b1580156131db57600080fd5b505af11580156131ef573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132219190616bcc565b604080519283526020830191909152015b60405180910390a15095945050505050565b3061324d610edb565b6001600160a01b0316146132de5760005b84518110156117a157306001600160a01b0316858281518110613283576132836168cf565b60200260200101516001600160a01b0316036132ce576132ce8382815181106132ae576132ae6168cf565b60200260200101518051906020012061016461473d90919063ffffffff16565b6132d7816168fb565b905061325e565b5050505050565b60005462010000900460ff161561330f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133405760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133b9576102c16000868381518110613363576133636168cf565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133a757604051630b094f2760e31b815260040160405180910390fd5b806133b1816168fb565b915050613343565b506132de8585858585614779565b306133d0610edb565b6001600160a01b0316146132de5761016454600f81810b600160801b909204900b13156132de576000610164556132de565b60006113498585858561342060408051602081019091526000815290565b612de6565b600080613431836147ee565b90506004816007811115613447576134476162eb565b146134525792915050565b600083815261022c60205260409020548061346e575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134dc9190616bdf565b156134eb575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135599190616bdf565b15613568575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374483600301805480602002602001604051908101604052809291908181526020016000905b8282101561366b5783829060005260206000200180546135de90616895565b80601f016020809104026020016040519081016040528092919081815260200182805461360a90616895565b80156136575780601f1061362c57610100808354040283529160200191613657565b820191906000526020600020905b81548152906001019060200180831161363a57829003601f168201915b5050505050815260200190600101906135bf565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373b5783829060005260206000200180546136ae90616895565b80601f01602080910402602001604051908101604052809291908181526020018280546136da90616895565b80156137275780601f106136fc57610100808354040283529160200191613727565b820191906000526020600020905b81548152906001019060200180831161370a57829003601f168201915b50505050508152602001906001019061368f565b505050506141d0565b600984015483546040805160208084028201810190925282815291869183018282801561379a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161377c575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137ec57602002820191906000526020600020905b8154815260200190600101908083116137d8575b505050505092509450945094509450509193509193565b60008061381286868686612a27565b60008181526101c660205260409020549091506001600160a01b031633811480613866575061383f612900565b61386482600161384d611fdf565b6138579190616914565b65ffffffffffff16612c1b565b105b6138c25760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b61176887878787614926565b600063ffffffff8211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399457600061395284614934565b61395c90856169e8565b60008881526020902090915081015463ffffffff908116908716101561398457809150613992565b61398f816001616bcc565b92505b505b60006139a287878585614a1c565b905080156139dd576139c7876139b96001846169e8565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ad6576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa89190616a5b565b1015613ac7576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3433868686516001600160401b03811115613af957613af9615d23565b604051908082528060200260200182016040528015613b2c57816020015b6060815260200190600190039081613b175790505b508787614112565b61134985858585614a72565b600054610100900460ff16613b675760405162461bcd60e51b815260040161045390616c01565b613b8e81613b896040805180820190915260018152603160f81b602082015290565b614e51565b6111d181614ea0565b600054610100900460ff16613bbe5760405162461bcd60e51b815260040161045390616c01565b613bc9838383614ed8565b505050565b600054610100900460ff16613ad65760405162461bcd60e51b815260040161045390616c01565b600054610100900460ff16613c1c5760405162461bcd60e51b815260040161045390616c01565b6111d181614f1a565b600054610100900460ff16613c4c5760405162461bcd60e51b815260040161045390616c01565b6111d181614f64565b600054610100900460ff16613c7c5760405162461bcd60e51b815260040161045390616c01565b6111d181614f8b565b600054610100900460ff16613cac5760405162461bcd60e51b815260040161045390616c01565b6111d181614fb2565b600054610100900460ff16613cdc5760405162461bcd60e51b815260040161045390616c01565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616895565b6060609b80546111e490616895565b600065ffffffffffff8211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120609190616a5b565b805460009080156121b257613e1e836139b96001846169e8565b54600160201b90046001600160e01b0316612063565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb29190616c4c565b6040516020818303038152906040528051906020012083604051602001613ed99190616c4c565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f5d5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fd9565b60608315614108575081612063565b6120638383614fef565b805160208201206000614130878761412a88886141d0565b85612a27565b60008181526101c6602052604090206009810154919250906141c55780546001600160a01b0319166001600160a01b038a16178155875161417a90600183019060208b0190615abe565b50865161419090600283019060208a0190615b1f565b5085516141a69060038301906020890190615b5a565b5084516141bc9060048301906020880190615bac565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141ed576141ed615d23565b60405190808252806020026020018201604052801561422057816020015b606081526020019060019003908161420b5790505b50905060005b81518110156142fa57848181518110614241576142416168cf565b6020026020010151516000146142b157848181518110614263576142636168cf565b602002602001015180519060200120848281518110614284576142846168cf565b602002602001015160405160200161429d929190616c68565b6040516020818303038152906040526142cc565b8381815181106142c3576142c36168cf565b60200260200101515b8282815181106142de576142de6168cf565b6020026020010181905250806142f3906168fb565b9050614226565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434857506001600160e01b0319868116908216145b8061435f57506001600160e01b0319868116908516145b8061437a57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef0615019565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143df5750600090506003614463565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614433573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661445c57600060019250925050614463565b9150600090505b94509492505050565b6000816004811115614480576144806162eb565b036144885750565b600181600481111561449c5761449c6162eb565b036144e95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b60028160048111156144fd576144fd6162eb565b0361454a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b600381600481111561455e5761455e6162eb565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145c6878787878761508d565b600088815261029060205260409020549091506001600160401b03161580156145f357506145f3876151e3565b15611b5857600061460d61028f546001600160401b031690565b614615611fdf565b65ffffffffffff166146279190616c99565b90506146328861290c565b816001600160401b03161115614681576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139335760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614730858585615223565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b5908890889088906000908990600401616b26565b6000604051808303818588803b1580156147ce57600080fd5b505af11580156147e2573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148135750600792915050565b6002810154610100900460ff161561482e5750600292915050565b600083815261016360205260408120546001600160401b0316908190036148975760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a1611fdf565b65ffffffffffff1690508082106148bd57506000949350505050565b60006148c88661290c565b90508181106148dd5750600195945050505050565b6148e6866151e3565b8015614909575060008681526101c6602052604090206006810154600590910154115b1561491a5750600495945050505050565b50600395945050505050565b6000611349858585856153c2565b60008160000361494657506000919050565b6000600161495384615478565b901c6001901b9050600181848161496c5761496c6169fb565b048201901c90506001818481614984576149846169fb565b048201901c9050600181848161499c5761499c6169fb565b048201901c905060018184816149b4576149b46169fb565b048201901c905060018184816149cc576149cc6169fb565b048201901c905060018184816149e4576149e46169fb565b048201901c905060018184816149fc576149fc6169fb565b048201901c905061206381828581614a1657614a166169fb565b0461550c565b60005b818310156142fa576000614a33848461551b565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a5e57809250614a6c565b614a69816001616bcc565b93505b50614a1f565b600033614a7f8184615536565b614acb5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad5611fdf565b65ffffffffffff169050614ae7612900565b614af683610e216001856169e8565b1015614b5e5760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b738888888880519060200120612a27565b90508651885114614b965760405162461bcd60e51b815260040161045390616cb9565b8551885114614bb75760405162461bcd60e51b815260040161045390616cb9565b6000885111614c085760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c785760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c846101945490565b614c8e9084616bcc565b90506000614c9c6101955490565b614ca69083616bcc565b90506040518060e00160405280614cbc84615627565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614ce983615627565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614dee57614dee615d23565b604051908082528060200260200182016040528015614e2157816020015b6060815260200190600190039081614e0c5790505b508d88888f604051614e3b99989796959493929190616cfa565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e785760405162461bcd60e51b815260040161045390616c01565b609a614e848382616dd8565b50609b614e918282616dd8565b50506000609881905560995550565b600054610100900460ff16614ec75760405162461bcd60e51b815260040161045390616c01565b610162614ed48282616dd8565b5050565b600054610100900460ff16614eff5760405162461bcd60e51b815260040161045390616c01565b614f08836139ea565b614f1182613efd565b613bc981613fa0565b600054610100900460ff16614f415760405162461bcd60e51b815260040161045390616c01565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166121165760405162461bcd60e51b815260040161045390616c01565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c01565b600054610100900460ff16612ae05760405162461bcd60e51b815260040161045390616c01565b6000818311614fe85781612063565b5090919050565b815115614fff5781518083602001fd5b8060405162461bcd60e51b81526004016104539190615edc565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61504461568f565b61504c6156e8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150a788611773565b60078111156150b8576150b86162eb565b146151115760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512b9088906001600160401b031686613d8d565b905061513a8888888488615719565b835160000361518f57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151829493929190616e97565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d0959493929190616ebf565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521a610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b825460009081908015615369576000615241876139b96001856169e8565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c25760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530a57846152e3886139b96001866169e8565b80546001600160e01b0392909216600160201b0263ffffffff909216919091179055615359565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147359050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614735565b6000806153d1868686866158b7565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f59161542d9160040190815260200190565b600060405180830381600087803b15801561544757600080fd5b505af115801561545b573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561548d57608092831c92015b604083901c1561549f57604092831c92015b602083901c156154b157602092831c92015b601083901c156154c357601092831c92015b600883901c156154d557600892831c92015b600483901c156154e757600492831c92015b600283901c156154f957600292831c92015b600183901c15610fbb5760010192915050565b6000818310614fe85781612063565b600061552a6002848418616a11565b61206390848416616bcc565b8051600090603481101561554e576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558157600192505050610fbb565b60008061558f6028856169e8565b90505b83811015615606576000806155c68884815181106155b2576155b26168cf565b01602001516001600160f81b0319166159c4565b91509150816155de5760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b1793505050806155ff906168fb565b9050615592565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569a613d08565b8051909150156156b1578051602090910120919050565b60985480156156c05792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f3613d17565b80519091501561570a578051602090910120919050565b60995480156156c05792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157a95760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157c984615a56565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff8516615819578382600601600082825461580e9190616bcc565b90915550612a1e9050565b60001960ff861601615839578382600501600082825461580e9190616bcc565b60011960ff861601615859578382600701600082825461580e9190616bcc565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158c686868686612a27565b905060006158d382611773565b905060028160078111156158e9576158e96162eb565b1415801561590957506006816007811115615906576159066162eb565b14155b801561592757506007816007811115615924576159246162eb565b14155b6159735760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132329084815260200190565b60008060f883901c602f811180156159df5750603a8160ff16105b156159f457600194602f199091019350915050565b8060ff166040108015615a0a575060478160ff16105b15615a1f576001946036199091019350915050565b8060ff166060108015615a35575060678160ff16105b15615a4a576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b13579160200282015b82811115615b1357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ade565b50613933929150615bfe565b828054828255906000526020600020908101928215615b13579160200282015b82811115615b13578251825591602001919060010190615b3f565b828054828255906000526020600020908101928215615ba0579160200282015b82811115615ba05782518290615b909082616dd8565b5091602001919060010190615b7a565b50613933929150615c13565b828054828255906000526020600020908101928215615bf2579160200282015b82811115615bf25782518290615be29082616dd8565b5091602001919060010190615bcc565b50613933929150615c30565b5b808211156139335760008155600101615bff565b80821115613933576000615c278282615c4d565b50600101615c13565b80821115613933576000615c448282615c4d565b50600101615c30565b508054615c5990616895565b6000825580601f10615c69575050565b601f0160209004906000526020600020908101906111d19190615bfe565b600060208284031215615c9957600080fd5b5035919050565b600060208284031215615cb257600080fd5b81356001600160e01b03198116811461206357600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615ced57600080fd5b5081356001600160401b03811115615d0457600080fd5b602083019150836020828501011115615d1c57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6157615d61615d23565b604052919050565b60006001600160401b03821115615d8257615d82615d23565b50601f01601f191660200190565b600082601f830112615da157600080fd5b8135615db4615daf82615d69565b615d39565b818152846020838601011115615dc957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0257600080fd5b88359750615e1260208a01615cca565b965060408901356001600160401b0380821115615e2e57600080fd5b615e3a8c838d01615cdb565b909850965060608b0135915080821115615e5357600080fd5b50615e608b828c01615d90565b945050615e6f60808a01615cca565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615ea7578181015183820152602001615e8f565b50506000910152565b60008151808452615ec8816020860160208601615e8c565b601f01601f19169290920160200192915050565b6020815260006120636020830184615eb0565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1a57600080fd5b8435615f2581615eef565b93506020850135615f3581615eef565b92506040850135915060608501356001600160401b03811115615f5757600080fd5b615f6387828801615d90565b91505092959194509250565b60006001600160401b03821115615f8857615f88615d23565b5060051b60200190565b600082601f830112615fa357600080fd5b81356020615fb3615daf83615f6f565b82815260059290921b84018101918181019086841115615fd257600080fd5b8286015b84811015615ff6578035615fe981615eef565b8352918301918301615fd6565b509695505050505050565b600082601f83011261601257600080fd5b81356020616022615daf83615f6f565b82815260059290921b8401810191818101908684111561604157600080fd5b8286015b84811015615ff65780358352918301918301616045565b600082601f83011261606d57600080fd5b8135602061607d615daf83615f6f565b82815260059290921b8401810191818101908684111561609c57600080fd5b8286015b84811015615ff65780356001600160401b038111156160bf5760008081fd5b6160cd8986838b0101615d90565b8452509183019183016160a0565b600080600080608085870312156160f157600080fd5b84356001600160401b038082111561610857600080fd5b61611488838901615f92565b9550602087013591508082111561612a57600080fd5b61613688838901616001565b9450604087013591508082111561614c57600080fd5b506161598782880161605c565b949793965093946060013593505050565b60006020828403121561617c57600080fd5b813561206381615eef565b600081518084526020808501945080840160005b838110156161c05781516001600160a01b03168752958201959082019060010161619b565b509495945050505050565b600081518084526020808501945080840160005b838110156161c0578151875295820195908201906001016161df565b600081518084526020808501808196508360051b8101915082860160005b85811015616243578284038952616231848351615eb0565b98850198935090840190600101616219565b5091979650505050505050565b6080815260006162636080830187616187565b828103602084015261627581876161cb565b9050828103604084015261628981866161fb565b9050828103606084015261176881856161fb565b600080600080600060a086880312156162b557600080fd5b853594506162c560208701615cca565b93506162d360408701615cca565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632357634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561633c57600080fd5b82359150602083013561634e81615eef565b809150509250929050565b6000806040838503121561636c57600080fd5b8235915061637c60208401615cca565b90509250929050565b60008060008060006080868803121561639d57600080fd5b853594506163ad60208701615cca565b935060408601356001600160401b03808211156163c957600080fd5b6163d589838a01615cdb565b909550935060608801359150808211156163ee57600080fd5b506163fb88828901615d90565b9150509295509295909350565b6000806000806060858703121561641e57600080fd5b8435935061642e60208601615cca565b925060408501356001600160401b0381111561644957600080fd5b61645587828801615cdb565b95989497509550505050565b6000806000806080858703121561647757600080fd5b84356001600160401b038082111561648e57600080fd5b61649a88838901615f92565b955060208701359150808211156164b057600080fd5b6164bc88838901616001565b945060408701359150808211156164d257600080fd5b6164de8883890161605c565b935060608701359150808211156164f457600080fd5b50615f6387828801615d90565b60ff60f81b8816815260e06020820152600061652060e0830189615eb0565b82810360408401526165328189615eb0565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161cb565b60008060006060848603121561657857600080fd5b833561658381615eef565b92506020840135915060408401356001600160401b038111156165a557600080fd5b6165b186828701615d90565b9150509250925092565b600080600080604085870312156165d157600080fd5b84356001600160401b03808211156165e857600080fd5b6165f488838901615cdb565b9096509450602087013591508082111561660d57600080fd5b5061645587828801615cdb565b600080600080600060a0868803121561663257600080fd5b853561663d81615eef565b9450602086013561664d81615eef565b935060408601356001600160401b038082111561666957600080fd5b61667589838a01616001565b9450606088013591508082111561668b57600080fd5b61669789838a01616001565b935060808801359150808211156163ee57600080fd5b600080600080606085870312156166c357600080fd5b84356166ce81615eef565b93506020850135925060408501356001600160401b0381111561644957600080fd5b60006020828403121561670257600080fd5b81356001600160401b038116811461206357600080fd5b600080600080600060a0868803121561673157600080fd5b85356001600160401b038082111561674857600080fd5b61675489838a01615f92565b9650602088013591508082111561676a57600080fd5b61677689838a01616001565b9550604088013591508082111561678c57600080fd5b61679889838a0161605c565b945060608801359150808211156167ae57600080fd5b61669789838a0161605c565b600080604083850312156167cd57600080fd5b82356167d881615eef565b946020939093013593505050565b600080600080600060a086880312156167fe57600080fd5b853561680981615eef565b9450602086013561681981615eef565b9350604086013592506060860135915060808601356001600160401b0381111561684257600080fd5b6163fb88828901615d90565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168a957607f821691505b6020821081036168c957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161690d5761690d6168e5565b5060010190565b65ffffffffffff828116828216039080821115616933576169336168e5565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561698d57600080fd5b81516001600160401b038111156169a357600080fd5b8201601f810184136169b457600080fd5b80516169c2615daf82615d69565b8181528560208385010111156169d757600080fd5b611349826020830160208601615e8c565b81810381811115610fbb57610fbb6168e5565b634e487b7160e01b600052601260045260246000fd5b600082616a2e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4557600080fd5b815165ffffffffffff8116811461206357600080fd5b600060208284031215616a6d57600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab1604083018688616a74565b8281036020840152611768818587616a74565b608081526000616ad76080830187616187565b8281036020840152616ae981876161cb565b90508281036040840152616afd81866161fb565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e5565b60a081526000616b3960a0830188616187565b8281036020840152616b4b81886161cb565b90508281036040840152616b5f81876161fb565b60608401959095525050608001529392505050565b60c081526000616b8760c0830189616187565b8281036020840152616b9981896161cb565b90508281036040840152616bad81886161fb565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e5565b600060208284031215616bf157600080fd5b8151801515811461206357600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c5e818460208701615e8c565b9190910192915050565b6001600160e01b0319831681528151600090616c8b816004850160208701615e8c565b919091016004019392505050565b6001600160401b03818116838216019080821115616933576169336168e5565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d258382018b616187565b90508281036060840152616d39818a6161cb565b90508281036080840152616d4d81896161fb565b905082810360a0840152616d6181886161fb565b90508560c08401528460e0840152828103610100840152616d828185615eb0565b9c9b505050505050505050505050565b601f821115613bc957600081815260208120601f850160051c81016020861015616db95750805b601f850160051c820191505b818110156117a157828155600101616dc5565b81516001600160401b03811115616df157616df1615d23565b616e0581616dff8454616895565b84616d92565b602080601f831160018114616e3a5760008415616e225750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6957888601518255948401946001909101908401616e4a565b5085821015616e875787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb0565b85815260ff8516602082015283604082015260a060608201526000616ee760a0830185615eb0565b8281036080840152611c718185615eb056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/SlashContract b/core/systemcontracts/feynman/rialto/SlashContract new file mode 100644 index 0000000000..c53f115bf7 --- /dev/null +++ b/core/systemcontracts/feynman/rialto/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d67565b60405180910390f35b610388610626565b6040516103779190613545565b6103a86103a336600461347b565b61062c565b604051610377919061357d565b6103bd610692565b6040516103779190613572565b6103dd6103d8366004613192565b61069b565b60405161037793929190613d4f565b6103ff6103fa3660046132d8565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d38565b61038861042c36600461344b565b610a1e565b61044461043f366004613192565b610a45565b604051610377929190613d41565b610411610a9c565b610462610aa2565b6040516103779190613d78565b610388610aa7565b61047f610aad565b6040516103779190613d29565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613192565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461347b565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131ca565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461332f565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461347b565b611332565b6103ff6105c1366004613192565b6113a3565b6103ff6105d4366004613398565b611812565b610388611df0565b610411611df6565b610388611dfb565b6103ff611e01565b610462611e4e565b610388611e53565b610462611e59565b6103ff611e5e565b6103886122a7565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bcc565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613672565b60405162461bcd60e51b815260040161064f90613cbd565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613672565b6006546106ed5760146006555b6008546106fa57603c6008555b81511580159061070a5750805115155b6107265760405162461bcd60e51b815260040161064f90613b2a565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073e5790505090506107606102ca6122ad565b8160008151811061076d57fe5b6020026020010181905250610781836122c8565b8160018151811061078e57fe5b60200260200101819052506107a2826122c8565b816002815181106107af57fe5b602002602001018190525060606107c58261231e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613545565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131ae565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613642565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135e3565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613545565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613545565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613559565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613463565b505050505050505050565b61200581565b603c81565b60018181548110610a2b57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a50612f79565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b6102ca81565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138b5565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613672565b61200063f7a251d7600b610b26846123af565b60006040518463ffffffff1660e01b8152600401610b4693929190613d86565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e63833981519152600083604051610bcf929190613590565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b600581565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bcc565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613672565b610c5d612f9c565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061247992505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d67565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d67565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138b5565b610d5c82826124f9565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613672565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a19565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126ac9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613841565b604080516020601f8401819004810282018101909252828152600091610e9c9185858083850183828082843760009201919091525061270692505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b87565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126ac9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a67565b604080516020601f8401819004810282018101909252828152600091610f9d9185858083850183828082843760009201919091525061270692505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061372b565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126ac9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f906139a1565b604080516020601f84018190048102820181019092528281526000916110a69185858083850183828082843760009201919091525061270692505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613aa9565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126ac9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f90613760565b604080516020601f84018190048102820181019092528281526111b2919084848083850183828082843760009201919091525061270b92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126ac9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f90613930565b604080516020601f84018190048102820181019092528281526000916112929185858083850183828082843760009201919091525061270692505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f906136a9565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c68565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135b1565b60405180910390a150505050565b600a81565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bcc565b60005460ff166113755760405162461bcd60e51b815260040161064f90613672565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c1b565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613672565b60035443116114055760405162461bcd60e51b815260040161064f90613cf4565b3a156114235760405162461bcd60e51b815260040161064f90613973565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613545565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132b8565b6114a15761180b565b6114a9612f79565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613545565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613545565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a91906131ae565b6001600160a01b03161461166b576116668282602001516124f9565b611734565b61200063f7a251d7600b61167e856123af565b60006040518463ffffffff1660e01b815260040161169e93929190613d86565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e6383398151915283602001518360405161172a929190613590565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613545565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613672565b60075460ff166118565760405162461bcd60e51b815260040161064f9061360d565b6006546118635760146006555b60085461187057603c6008555b60085481516040015143910111801561189457504360085482602001516040015101115b6118b05760405162461bcd60e51b815260040161064f90613c8f565b8060200151602001518160000151602001511480156118de5750806020015160600151816000015160600151145b156118fb5760405162461bcd60e51b815260040161064f90613888565b80516040810151905110801561191a5750602081015160408101519051105b6119365760405162461bcd60e51b815260040161064f9061380a565b60208101515181515110801561195b5750806000015160400151816020015160400151105b8061198657508051516020820151511080156119865750806020015160400151816000015160400151105b806119a05750806020015160400151816000015160400151145b6119bc5760405162461bcd60e51b815260040161064f906136f4565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e5919060040161357d565b60206040518083038186803b1580156119fd57600080fd5b505afa158015611a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3591906132b8565b611a515760405162461bcd60e51b815260040161064f906139ea565b611a6381600001518260400151612733565b8015611a7c5750611a7c81602001518260400151612733565b611a985760405162461bcd60e51b815260040161064f906137ab565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad657600080fd5b505afa158015611aea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1291908101906131f5565b9150915060005b8151811015611c4f57611b43828281518110611b3157fe5b6020026020010151856040015161290b565b15611c47576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7b9033908590600401613559565b602060405180830381600087803b158015611b9557600080fd5b505af1158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190613463565b506110006001600160a01b03166335409f7f858481518110611beb57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c0f9190613545565b600060405180830381600087803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b5050505050611c4f565b600101611b19565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7b9160040161357d565b60206040518083038186803b158015611c9357600080fd5b505afa158015611ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccb91906131ae565b6001600160a01b031614611d39576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d02919060040161357d565b600060405180830381600087803b158015611d1c57600080fd5b505af1158015611d30573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d59866040015161296f565b60006040518463ffffffff1660e01b8152600401611d7993929190613d86565b600060405180830381600087803b158015611d9357600080fd5b505af1158015611da7573d6000803e3d6000fd5b505050506000611dbc846040015160006129aa565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e245760405162461bcd60e51b815260040161064f90613af3565b60056004819055600a905560078054600160ff199182168117909255600080549091169091179055565b601181565b61100081565b600381565b3361100014611e7f5760405162461bcd60e51b815260040161064f906138b5565b60005460ff16611ea15760405162461bcd60e51b815260040161064f90613672565b600154611ead576122a5565b600154600090600019015b808211612279576000805b82841015611fdc57611ed3612f79565b6002600060018781548110611ee457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fc657600460055481611f5157fe5b04816020015103816020018181525050806002600060018881548110611f7357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fd0565b6001925050611fdc565b50836001019350611ec3565b82841161217357611feb612f79565b6002600060018681548110611ffc57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120e45760046005548161206957fe5b0481602001510381602001818152505080600260006001878154811061208b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121739050565b60026000600186815481106120f557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061213957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121665750612173565b5060001990920191611fdc565b81801561217d5750805b1561225c57600260006001868154811061219357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121da57fe5b600091825260209091200154600180546001600160a01b03909216918690811061220057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061223957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612268575050612279565b505060019091019060001901611eb8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122c06122bb836129c6565b6122c8565b90505b919050565b6060815160011480156122fa5750607f60f81b826000815181106122e857fe5b01602001516001600160f81b03191611155b156123065750806122c3565b6122c06123188351608060ff16612aac565b83612b7e565b606081516000141561233f57506040805160008152602081019091526122c3565b60608260008151811061234e57fe5b602002602001015190506000600190505b835181101561238f576123858285838151811061237857fe5b6020026020010151612b7e565b915060010161235f565b506123a86123a2825160c060ff16612aac565b82612b7e565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ca5790505090506123f3836001600160a01b0316612bfb565b8160008151811061240057fe5b6020026020010181905250612414436122ad565b8160018151811061242157fe5b60209081029190910101526124376102ca6122ad565b8160028151811061244457fe5b6020026020010181905250612458426122ad565b8160038151811061246557fe5b60200260200101819052506123a88161231e565b612481612f9c565b600061248b612f9c565b612493612fae565b6124a461249f86612c1e565b612c43565b90506000805b6124b383612c8d565b156124ec57806124df576124ce6124c984612cae565b612cfc565b63ffffffff168452600191506124e4565b6124ec565b6001016124aa565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061251e908590600401613545565b600060405180830381600087803b15801561253857600080fd5b505af1925050508015612549575060015b610d5c576040516000815260443d101561256557506000612602565b60046000803e60005160e01c6308c379a08114612586576000915050612602565b60043d036004833e81513d602482011167ffffffffffffffff821117156125b257600092505050612602565b808301805167ffffffffffffffff8111156125d4576000945050505050612602565b8060208301013d86018111156125f257600095505050505050612602565b601f01601f191660405250925050505b8061260d5750612644565b826001600160a01b0316600080516020613e638339815191528383604051612636929190613590565b60405180910390a2506126a7565b3d80801561266e576040519150601f19603f3d011682016040523d82523d6000602084013e612673565b606091505b50826001600160a01b0316600080516020613e63833981519152838360405161269d929190613590565b60405180910390a2505b610d5c565b6000816040516020016126bf9190613529565b60405160208183030381529060405280519060200120836040516020016126e69190613529565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561272557600191508161272b565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161274f57505060408051602080825281830190925291925060609190808201818036833701905050905061279485600001516122ad565b826000815181106127a157fe5b60200260200101819052506127bc6020866020015183612d7e565b6127c5816122c8565b826001815181106127d257fe5b60200260200101819052506127ea85604001516122ad565b826002815181106127f757fe5b60200260200101819052506128126020866060015183612d7e565b61281b816122c8565b8260038151811061282857fe5b602002602001018190525061284e60206128418461231e565b8051906020012083612d7e565b6040805160b080825260e0820190925260609160208201818036833701905050905061287e818360006020612d8e565b61289081876080015160206060612d8e565b61289e818660806030612d8e565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128db57600080fd5b5060016128e9826000612de1565b60ff16146128fe576000945050505050612700565b5060019695505050505050565b8151815160009160019181148083146129275760009250612965565b600160208701838101602088015b6002848385100114156129605780518351146129545760009650600093505b60209283019201612935565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161298a5790505090506123f3836122c8565b600081602001835110156129bd57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a0a57506018612a2e565b6fffffffffffffffffffffffffffffffff198416612a2a57506010612a2e565b5060005b6020811015612a6457818181518110612a4357fe5b01602001516001600160f81b03191615612a5c57612a64565b600101612a2e565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a99576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ad65760405162461bcd60e51b815260040161064f906137e2565b60408051600180825281830190925260609160208201818036833701905050905060378411612b305782840160f81b81600081518110612b1257fe5b60200101906001600160f81b031916908160001a9053509050612700565b6060612b3b856129c6565b90508381510160370160f81b82600081518110612b5457fe5b60200101906001600160f81b031916908160001a905350612b758282612b7e565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612baf578051835260209283019201612b97565b50855184518101855292509050808201602086015b81831015612bdc578051835260209283019201612bc4565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b83186014820152603481019091526060906123a8816122c8565b612c26612fce565b506040805180820190915281518152602082810190820152919050565b612c4b612fae565b612c5482612dfd565b612c5d57600080fd5b6000612c6c8360200151612e37565b60208085015160408051808201909152868152920190820152915050919050565b6000612c97612fce565b505080518051602091820151919092015191011190565b612cb6612fce565b612cbf82612c8d565b612cc857600080fd5b60208201516000612cd882612e9a565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d1157508151602110155b612d1a57600080fd5b6000612d298360200151612e37565b90508083600001511015612d4f5760405162461bcd60e51b815260040161064f90613b50565b825160208085015183018051928490039291831015612d7557826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612da557fe5b602001015160f81c60f81b858480600101955081518110612dc257fe5b60200101906001600160f81b031916908160001a905350600101612d91565b60008160010183511015612df457600080fd5b50016001015190565b8051600090612e0e575060006122c3565b6020820151805160001a9060c0821015612e2d576000925050506122c3565b5060019392505050565b8051600090811a6080811015612e515760009150506122c3565b60b8811080612e6c575060c08110801590612e6c575060f881105b15612e7b5760019150506122c3565b60c0811015612e8f5760b5190190506122c3565b60f5190190506122c3565b80516000908190811a6080811015612eb55760019150612f72565b60b8811015612eca57607e1981019150612f72565b60c0811015612f1b57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f155760405162461bcd60e51b815260040161064f90613905565b50612f72565b60f8811015612f305760be1981019150612f72565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561272b5760405162461bcd60e51b815260040161064f90613905565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fc1612fce565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612ff8578081fd5b815161300b61300682613dd9565b613db2565b818152915060208083019084810160005b84811015613081578151870188603f82011261303757600080fd5b8381015161304761300682613df9565b81815260408b8184860101111561305d57600080fd5b61306c83888401838701613e1d565b5086525050928201929082019060010161301c565b505050505092915050565b60008083601f84011261309d578182fd5b50813567ffffffffffffffff8111156130b4578182fd5b6020830191508360208285010111156130cc57600080fd5b9250929050565b600082601f8301126130e3578081fd5b81356130f161300682613df9565b915080825283602082850101111561310857600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613132578081fd5b61313c60a0613db2565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561317a57600080fd5b613186848285016130d3565b60808301525092915050565b6000602082840312156131a3578081fd5b81356123a881613e4d565b6000602082840312156131bf578081fd5b81516123a881613e4d565b600080604083850312156131dc578081fd5b82356131e781613e4d565b946020939093013593505050565b60008060408385031215613207578182fd5b825167ffffffffffffffff8082111561321e578384fd5b81850186601f82011261322f578485fd5b8051925061323f61300684613dd9565b80848252602080830192508084018a82838902870101111561325f578889fd5b8894505b8685101561328a57805161327681613e4d565b845260019490940193928101928101613263565b5088015190965093505050808211156132a1578283fd5b506132ae85828601612fe8565b9150509250929050565b6000602082840312156132c9578081fd5b815180151581146123a8578182fd5b600080604083850312156132ea578182fd5b823567ffffffffffffffff80821115613301578384fd5b61330d868387016130d3565b93506020850135915080821115613322578283fd5b506132ae858286016130d3565b60008060008060408587031215613344578182fd5b843567ffffffffffffffff8082111561335b578384fd5b6133678883890161308c565b9096509450602087013591508082111561337f578384fd5b5061338c8782880161308c565b95989497509550505050565b6000602082840312156133a9578081fd5b813567ffffffffffffffff808211156133c0578283fd5b818401606081870312156133d2578384fd5b6133dc6060613db2565b92508035828111156133ec578485fd5b6133f887828401613121565b84525060208101358281111561340c578485fd5b61341887828401613121565b60208501525060408101358281111561342f578485fd5b61343b878284016130d3565b6040850152509195945050505050565b60006020828403121561345c578081fd5b5035919050565b600060208284031215613474578081fd5b5051919050565b60008060006040848603121561348f578081fd5b833560ff8116811461349f578182fd5b9250602084013567ffffffffffffffff8111156134ba578182fd5b6134c68682870161308c565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613515816020860160208601613e1d565b601f01601f19169290920160200192915050565b6000825161353b818460208701613e1d565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526123a860208301846134fd565b6000838252604060208301526135a960408301846134fd565b949350505050565b6000604082526135c56040830186886134d3565b82810360208401526135d88185876134d3565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613da260608301856134fd565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dd157600080fd5b604052919050565b600067ffffffffffffffff821115613def578081fd5b5060209081020190565b600067ffffffffffffffff821115613e0f578081fd5b50601f01601f191660200190565b60005b83811015613e38578181015183820152602001613e20565b83811115613e47576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/StakeCreditContract b/core/systemcontracts/feynman/rialto/StakeCreditContract new file mode 100644 index 0000000000..259403b1ed --- /dev/null +++ b/core/systemcontracts/feynman/rialto/StakeCreditContract @@ -0,0 +1 @@ +6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/StakeHubContract b/core/systemcontracts/feynman/rialto/StakeHubContract new file mode 100644 index 0000000000..0094b95a35 --- /dev/null +++ b/core/systemcontracts/feynman/rialto/StakeHubContract @@ -0,0 +1 @@ +608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bed578063fb50b31f1462000c12578063fc0c5ff11462000c37578063ff69ab611462000c4f57600080fd5b8063e992aaf51462000b6a578063efdbf0e11462000b82578063f1f74d841462000bbe578063f1fad1041462000bd657600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000afd578063daacdb661462000b15578063dbda7fb31462000b2d578063e8f67c3b1462000b5257600080fd5b8063d115a2061462000a9b578063d6ca429d1462000ab3578063d7c2dfc81462000ad857600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1d578063c473318f1462000a42578063c8509d81146200083b578063cbb04d9d1462000a5a57600080fd5b8063b187bd26146200098a578063baa7199e14620009aa578063bdceadf314620009cf578063bff02e2014620009e757600080fd5b8063982ef0a711620001da578063982ef0a714620008f5578063a43569b3146200090c578063aad3ec961462000940578063ac431751146200096557600080fd5b806386d5450614620008785780638a4d3fa814620008b25780638cd22b2214620008d057600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080b5780638129fc1c1462000823578063831d65d1146200083b5780638456cb59146200086057600080fd5b8063663706d314620007385780636ec01b2714620007695780636f8e2fa414620007c157806375cc7d8914620007e657600080fd5b80635949187111620002d25780635949187114620006a05780635e7cc1c914620006c557806363a036b514620006ea57806364028fbd146200072157600080fd5b80634bf6c88214620006395780634d99dd1614620006635780634e6fd6c4146200068857600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058557806345211bfd14620005aa5780634838d16514620005cf5780634a49ac4c146200061457600080fd5b80631fa8882b1462000531578063384099881462000548578063417c73a7146200056057600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c67565b3480156200042057600080fd5b50620004386200043236600462009429565b62000cf9565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009429565b6200110e565b348015620004a057600080fd5b50620003f4620004b23660046200948d565b6200174c565b348015620004c557600080fd5b50620004dd620004d7366004620094d2565b62001a74565b6040516200044c919062009585565b348015620004f957600080fd5b50620004386200050b3660046200967b565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d603c81565b3480156200055557600080fd5b506200046d60375481565b3480156200056d57600080fd5b50620003f46200057f36600462009429565b62001de7565b3480156200059257600080fd5b50620003f4620005a436600462009429565b62001e69565b348015620005b757600080fd5b50620003f4620005c936600462009429565b6200204e565b348015620005dc57600080fd5b5062000603620005ee36600462009429565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062157600080fd5b50620003f46200063336600462009429565b62002229565b3480156200064657600080fd5b5062000650600881565b60405160ff90911681526020016200044c565b3480156200067057600080fd5b50620003f462000682366004620096d0565b620022a5565b3480156200069557600080fd5b506200043861dead81565b348015620006ad57600080fd5b50620003f4620006bf3660046200970e565b620028c2565b348015620006d257600080fd5b50620003f4620006e43660046200977e565b62003694565b348015620006f757600080fd5b506200070f620007093660046200979e565b6200389a565b6040516200044c949392919062009807565b620003f462000732366004620098c3565b62003f2c565b3480156200074557600080fd5b506200046d6200075736600462009429565b60446020526000908152604090205481565b3480156200077657600080fd5b506200078e6200078836600462009429565b62004576565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007ce57600080fd5b50620004dd620007e036600462009429565b62004620565b348015620007f357600080fd5b50620003f46200080536600462009429565b62004a39565b3480156200081857600080fd5b506200046d603d5481565b3480156200083057600080fd5b50620003f462004c0b565b3480156200084857600080fd5b50620003f46200085a366004620094d2565b62004f1d565b3480156200086d57600080fd5b50620003f462004f87565b3480156200088557600080fd5b50620004386200089736600462009429565b6043602052600090815260409020546001600160a01b031681565b348015620008bf57600080fd5b506200046d670de0b6b3a764000081565b348015620008dd57600080fd5b506200046d620008ef366004620096d0565b6200501f565b620003f4620009063660046200999b565b620050d8565b3480156200091957600080fd5b50620009316200092b36600462009429565b62005762565b6040516200044c9190620099d9565b3480156200094d57600080fd5b50620003f46200095f366004620096d0565b62005a4f565b3480156200097257600080fd5b50620003f46200098436600462009a56565b62005abc565b3480156200099757600080fd5b5060005462010000900460ff1662000603565b348015620009b757600080fd5b50620003f4620009c936600462009b0f565b6200695b565b348015620009dc57600080fd5b506200046d603c5481565b348015620009f457600080fd5b5062000a0c62000a063660046200979e565b62006b28565b6040516200044c9392919062009b6b565b34801562000a2a57600080fd5b50620003f462000a3c36600462009429565b62006d04565b34801562000a4f57600080fd5b506200046d60385481565b34801562000a6757600080fd5b5062000a7f62000a7936600462009429565b62006fc2565b604080519384529115156020840152908201526060016200044c565b34801562000aa857600080fd5b506200046d61271081565b34801562000ac057600080fd5b50620003f462000ad236600462009bc8565b620073f2565b34801562000ae557600080fd5b50620003f462000af736600462009cb1565b620075f4565b34801562000b0a57600080fd5b506200046d603b5481565b34801562000b2257600080fd5b506200046d60495481565b34801562000b3a57600080fd5b506200043862000b4c36600462009429565b620076ea565b34801562000b5f57600080fd5b506200046d60355481565b34801562000b7757600080fd5b506200046d603a5481565b34801562000b8f57600080fd5b506200046d62000ba13660046200967b565b805160208183018101805160468252928201919093012091525481565b34801562000bcb57600080fd5b506200046d603e5481565b34801562000be357600080fd5b5062000650601181565b34801562000bfa57600080fd5b506200046d62000c0c366004620096d0565b62007b01565b34801562000c1f57600080fd5b50620003f462000c3136600462009a56565b62007b72565b34801562000c4457600080fd5b506200046d60395481565b34801562000c5c57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9a576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d649062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000d929062009d17565b801562000de35780601f1062000db75761010080835404028352916020019162000de3565b820191906000526020600020905b81548152906001019060200180831162000dc557829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e0e9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3c9062009d17565b801562000e8d5780601f1062000e615761010080835404028352916020019162000e8d565b820191906000526020600020905b81548152906001019060200180831162000e6f57829003601f168201915b5050505050815260200160018201805462000ea89062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed69062009d17565b801562000f275780601f1062000efb5761010080835404028352916020019162000f27565b820191906000526020600020905b81548152906001019060200180831162000f0957829003601f168201915b5050505050815260200160028201805462000f429062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000f709062009d17565b801562000fc15780601f1062000f955761010080835404028352916020019162000fc1565b820191906000526020600020905b81548152906001019060200180831162000fa357829003601f168201915b5050505050815260200160038201805462000fdc9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200100a9062009d17565b80156200105b5780601f106200102f576101008083540402835291602001916200105b565b820191906000526020600020905b8154815290600101906020018083116200103d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e7575050509190925250509051949350505050565b33611000146200113a57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b39062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e19062009d17565b8015620012325780601f10620012065761010080835404028352916020019162001232565b820191906000526020600020905b8154815290600101906020018083116200121457829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125d9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200128b9062009d17565b8015620012dc5780601f10620012b057610100808354040283529160200191620012dc565b820191906000526020600020905b815481529060010190602001808311620012be57829003601f168201915b50505050508152602001600182018054620012f79062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620013259062009d17565b8015620013765780601f106200134a5761010080835404028352916020019162001376565b820191906000526020600020905b8154815290600101906020018083116200135857829003601f168201915b50505050508152602001600282018054620013919062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620013bf9062009d17565b8015620014105780601f10620013e45761010080835404028352916020019162001410565b820191906000526020600020905b815481529060010190602001808311620013f257829003601f168201915b505050505081526020016003820180546200142b9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620014599062009d17565b8015620014aa5780601f106200147e57610100808354040283529160200191620014aa565b820191906000526020600020905b8154815290600101906020018083116200148c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001536575050509190925250505060408101519091506001600160a01b031615806200157357508060e001515b156200163057604051611002903490600081818185875af1925050503d8060008114620015bd576040519150601f19603f3d011682016040523d82523d6000602084013e620015c2565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016239060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168757600080fd5b505af11580156200169c573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016dd91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017129190869060040162009d4d565b600060405180830381600087803b1580156200172d57600080fd5b505af115801562001742573d6000803e3d6000fd5b5050505050505b50565b33611001146200177457604051630f22c43960e41b8152611001600482015260240162001131565b60005462010000900460ff16156200179f57604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b592919062009d67565b908152604051908190036020019020546001600160a01b03169050620017dd603f8262007dc4565b620017fb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001821603c4262009d8d565b604a546000828152604b602052604090205491925011620018555760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187690849062009db0565b909155505060405160469062001890908790879062009d67565b908152602001604051809103902054600014158015620018df575042603c60468787604051620018c292919062009d67565b908152602001604051809103902054620018dd919062009db0565b105b15620018fe57604051631898eb6b60e01b815260040160405180910390fd5b6000806200190e85600262007de7565b91509150816200193157604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562001984573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019aa919062009dc6565b9050620019b8858362007e71565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019f89392919062009df6565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a36916001600160a01b0316908a9060040162009d4d565b600060405180830381600087803b15801562001a5157600080fd5b505af115801562001a66573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001a9e57604051630f22c43960e41b8152612000600482015260240162001131565b60005462010000900460ff161562001ac957604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b1a9187908790819084018382808284376000920191909152506200803892505050565b915091508062001b3d5760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b63575050604080516000815260208101909152905062001dd6565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b939160040190815260200190565b6020604051808303816000875af115801562001bb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bd9919062009e25565b90508062001c805782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3592919062009e45565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001dd695505050505050565b600062001c8d846200819b565b9050600081600481111562001ca65762001ca662009de0565b0362001cc8575050604080516000815260208101909152925062001dd6915050565b6040516000906110049047908381818185875af1925050503d806000811462001d0e576040519150601f19603f3d011682016040523d82523d6000602084013e62001d13565b606091505b505090508062001d36576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d8992919062009e45565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001dd6975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e1a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ec65760405163b1d02c3d60e01b815260040160405180910390fd5b8062001ed4603f8262007dc4565b62001ef25760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3057604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f80573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fa6919062009dc6565b101562001fc6576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001fec5760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201090849062009e6c565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200207957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020ab5760405163b1d02c3d60e01b815260040160405180910390fd5b33620020b9603f8262007dc4565b620020d75760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038216620020ff57604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214057506001600160a01b03821660009081526047602052604090205460ff165b156200215f57604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218390603c9062009db0565b1115620021a357604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b031633146200225c576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620023025760405163b1d02c3d60e01b815260040160405180910390fd5b8162002310603f8262007dc4565b6200232e5760405163056e881160e01b815260040160405180910390fd5b816000036200235057604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023b89062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620023e69062009d17565b8015620024375780601f106200240b5761010080835404028352916020019162002437565b820191906000526020600020905b8154815290600101906020018083116200241957829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620024629062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620024909062009d17565b8015620024e15780601f10620024b557610100808354040283529160200191620024e1565b820191906000526020600020905b815481529060010190602001808311620024c357829003601f168201915b50505050508152602001600182018054620024fc9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200252a9062009d17565b80156200257b5780601f106200254f576101008083540402835291602001916200257b565b820191906000526020600020905b8154815290600101906020018083116200255d57829003601f168201915b50505050508152602001600282018054620025969062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620025c49062009d17565b8015620026155780601f10620025e95761010080835404028352916020019162002615565b820191906000526020600020905b815481529060010190602001808311620025f757829003601f168201915b50505050508152602001600382018054620026309062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200265e9062009d17565b8015620026af5780601f106200268357610100808354040283529160200191620026af565b820191906000526020600020905b8154815290600101906020018083116200269157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b8154815260200190600101908083116200273b575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027db919062009dc6565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b4082980287846040516200282c929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b03160362002859576200285986620087f1565b6040808301519051633041949b60e01b815261200591633041949b91620028869190879060040162009d4d565b600060405180830381600087803b158015620028a157600080fd5b505af1158015620028b6573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028ed57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200291f5760405163b1d02c3d60e01b815260040160405180910390fd5b836200292d603f8262007dc4565b6200294b5760405163056e881160e01b815260040160405180910390fd5b8362002959603f8262007dc4565b620029775760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029a757604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029da5760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a429062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002a709062009d17565b801562002ac15780601f1062002a955761010080835404028352916020019162002ac1565b820191906000526020600020905b81548152906001019060200180831162002aa357829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002aec9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002b1a9062009d17565b801562002b6b5780601f1062002b3f5761010080835404028352916020019162002b6b565b820191906000526020600020905b81548152906001019060200180831162002b4d57829003601f168201915b5050505050815260200160018201805462002b869062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002bb49062009d17565b801562002c055780601f1062002bd95761010080835404028352916020019162002c05565b820191906000526020600020905b81548152906001019060200180831162002be757829003601f168201915b5050505050815260200160028201805462002c209062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002c4e9062009d17565b801562002c9f5780601f1062002c735761010080835404028352916020019162002c9f565b820191906000526020600020905b81548152906001019060200180831162002c8157829003601f168201915b5050505050815260200160038201805462002cba9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002ce89062009d17565b801562002d395780601f1062002d0d5761010080835404028352916020019162002d39565b820191906000526020600020905b81548152906001019060200180831162002d1b57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dc557505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e509062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002e7e9062009d17565b801562002ecf5780601f1062002ea35761010080835404028352916020019162002ecf565b820191906000526020600020905b81548152906001019060200180831162002eb157829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002efa9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002f289062009d17565b801562002f795780601f1062002f4d5761010080835404028352916020019162002f79565b820191906000526020600020905b81548152906001019060200180831162002f5b57829003601f168201915b5050505050815260200160018201805462002f949062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002fc29062009d17565b8015620030135780601f1062002fe75761010080835404028352916020019162003013565b820191906000526020600020905b81548152906001019060200180831162002ff557829003601f168201915b505050505081526020016002820180546200302e9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200305c9062009d17565b8015620030ad5780601f106200308157610100808354040283529160200191620030ad565b820191906000526020600020905b8154815290600101906020018083116200308f57829003601f168201915b50505050508152602001600382018054620030c89062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620030f69062009d17565b8015620031475780601f106200311b5761010080835404028352916020019162003147565b820191906000526020600020905b8154815290600101906020018083116200312957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031d35750505050508152505090508060e001518015620032165750876001600160a01b0316836001600160a01b031614155b156200323557604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af11580156200328c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032b2919062009dc6565b9050603754811015620032d85760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200336d57506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa15801562003345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200336b919062009dc6565b105b156200338c576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a5483620033a1919062009e82565b620033ad919062009d8d565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d806000811462003402576040519150601f19603f3d011682016040523d82523d6000602084013e62003407565b606091505b50509050806200342a576040516312171d8360e31b815260040160405180910390fd5b62003436828462009e6c565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af11580156200348c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034b3919062009dc6565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003518939291909283526020830191909152604082015260600190565b60405180910390a46040805160028082526060820183526000926020830190803683370190505090508660400151816000815181106200355c576200355c62009e9c565b60200260200101906001600160a01b031690816001600160a01b03168152505085604001518160018151811062003597576200359762009e9c565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035d89084908c9060040162009eb2565b600060405180830381600087803b158015620035f357600080fd5b505af115801562003608573d6000803e3d6000fd5b505050508a156200367a576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364592919062009d4d565b600060405180830381600087803b1580156200366057600080fd5b505af115801562003675573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036bf57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036f15760405163b1d02c3d60e01b815260040160405180910390fd5b33620036ff603f8262007dc4565b6200371d5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374190603c9062009db0565b11156200376157604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b909104811690851611156200379b5760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037d9576009820154620037d39086906001600160401b031662009ede565b620037f3565b6009820154620037f3906001600160401b03168662009ede565b60098301546001600160401b039182169250600160801b9004168111156200382e5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038ad603f62008917565b90508086101562003f23578415620038c65784620038c8565b805b9450600085620038d9888462009e6c565b11620038f157620038eb878362009e6c565b620038f3565b855b9050806001600160401b038111156200391057620039106200959a565b6040519080825280602002602001820160405280156200393a578160200160208202803683370190505b509450806001600160401b038111156200395857620039586200959a565b60405190808252806020026020018201604052801562003982578160200160208202803683370190505b509350806001600160401b03811115620039a057620039a06200959a565b604051908082528060200260200182016040528015620039d557816020015b6060815260200190600190039081620039bf5790505b50925060005b8181101562003f20576000620039ff620039f6838b62009db0565b603f9062008922565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a6c9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003a9a9062009d17565b801562003aeb5780601f1062003abf5761010080835404028352916020019162003aeb565b820191906000526020600020905b81548152906001019060200180831162003acd57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b169062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003b449062009d17565b801562003b955780601f1062003b695761010080835404028352916020019162003b95565b820191906000526020600020905b81548152906001019060200180831162003b7757829003601f168201915b5050505050815260200160018201805462003bb09062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003bde9062009d17565b801562003c2f5780601f1062003c035761010080835404028352916020019162003c2f565b820191906000526020600020905b81548152906001019060200180831162003c1157829003601f168201915b5050505050815260200160028201805462003c4a9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003c789062009d17565b801562003cc95780601f1062003c9d5761010080835404028352916020019162003cc9565b820191906000526020600020905b81548152906001019060200180831162003cab57829003601f168201915b5050505050815260200160038201805462003ce49062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003d129062009d17565b801562003d635780601f1062003d375761010080835404028352916020019162003d63565b820191906000526020600020905b81548152906001019060200180831162003d4557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003def575050505050815250509050806000015188848151811062003e285762003e2862009e9c565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ec15780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e95573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ebb919062009dc6565b62003ec4565b60005b87848151811062003ed95762003ed962009e9c565b602002602001018181525050806080015186848151811062003eff5762003eff62009e9c565b602002602001018190525050508062003f189062009f01565b9050620039db565b50505b92959194509250565b60005462010000900460ff161562003f5757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f895760405163b1d02c3d60e01b815260040160405180910390fd5b3362003f97603f8262007dc4565b1562003fb657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038881166000908152604360205260409020541615158062003ff757506001600160a01b03881660009081526047602052604090205460ff165b156200401657604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200403592919062009d67565b908152604051908190036020019020546001600160a01b03161415806200407f5750604887876040516200406b92919062009d67565b9081526040519081900360200190205460ff165b156200409e576040516311fdb94760e01b815260040160405180910390fd5b6000620040ac838062009f1d565b604051602001620040bf92919062009d67565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041095760405163c0bf414360e01b815260040160405180910390fd5b60006200411f670de0b6b3a76400003462009e6c565b905060365481101562004145576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200416d57604051636520611b60e11b815260040160405180910390fd5b6113886200418260408701602088016200977e565b6001600160401b03161180620041c85750620041a560408601602087016200977e565b6001600160401b0316620041bd60208701876200977e565b6001600160401b0316115b80620042075750620041e160408601602087016200977e565b6001600160401b0316620041fc60608701604088016200977e565b6001600160401b0316115b15620042265760405163dc81db8560e01b815260040160405180910390fd5b6200427162004236858062009f1d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200893092505050565b6200428f57604051635dba5ad760e01b815260040160405180910390fd5b6200429e838a8a8a8a62008ad2565b620042bc57604051631647e3cb60e11b815260040160405180910390fd5b60006200430a84620042cf878062009f1d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c0292505050565b905062004319603f8562008d03565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043998b8d8362009fc5565b508560058201620043ab82826200a08d565b5087905060098201620043bf82826200a1c6565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b031916928816929092179091555185906045906200440d908e908e9062009d67565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e604051620044909291906200a296565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b59d833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b59d833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b9062004534908590899060040162009d4d565b600060405180830381600087803b1580156200454f57600080fd5b505af115801562004564573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045a1603f8262007dc4565b620045bf5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060828101919091526004840180549194916080840191906200468d9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620046bb9062009d17565b80156200470c5780601f10620046e0576101008083540402835291602001916200470c565b820191906000526020600020905b815481529060010190602001808311620046ee57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047379062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620047659062009d17565b8015620047b65780601f106200478a57610100808354040283529160200191620047b6565b820191906000526020600020905b8154815290600101906020018083116200479857829003601f168201915b50505050508152602001600182018054620047d19062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620047ff9062009d17565b8015620048505780601f10620048245761010080835404028352916020019162004850565b820191906000526020600020905b8154815290600101906020018083116200483257829003601f168201915b505050505081526020016002820180546200486b9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620048999062009d17565b8015620048ea5780601f10620048be57610100808354040283529160200191620048ea565b820191906000526020600020905b815481529060010190602001808311620048cc57829003601f168201915b50505050508152602001600382018054620049059062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620049339062009d17565b8015620049845780601f10620049585761010080835404028352916020019162004984565b820191906000526020600020905b8154815290600101906020018083116200496657829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a105750505091909252505050608001519392505050565b336110011462004a6157604051630f22c43960e41b8152611001600482015260240162001131565b6001600160a01b038082166000908152604360205260409020541662004a89603f8262007dc4565b62004aa75760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b0a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b30919062009dc6565b90506000603d544262004b44919062009db0565b905062004b52838262007e71565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b929392919062009df6565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bd0916001600160a01b031690889060040162009d4d565b600060405180830381600087803b15801562004beb57600080fd5b505af115801562004c00573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c2c5750600054600160ff909116105b8062004c485750303b15801562004c48575060005460ff166001145b62004cad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001131565b6000805460ff19166001179055801562004cd1576000805461ff0019166101001790555b33411462004cf25760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d12576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755602d603855607860398190556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c55603d9190915560b4603e55604a556040805160c0810190915260a080825260609182916200b5bd602083013980602001905181019062004d9e91906200a2d2565b9150604051806101e001604052806101c081526020016200b65d6101c0913980602001905181019062004dd291906200a376565b905060005b825181101562004e415760016047600085848151811062004dfc5762004dfc62009e9c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e398162009f01565b905062004dd7565b5060005b815181101562004eb2576001604883838151811062004e685762004e6862009e9c565b602002602001015160405162004e7f91906200a473565b908152604051908190036020019020805491151560ff1990921691909117905562004eaa8162009f01565b905062004e45565b5062004ed273df87f0e2b8519ea2dd4abd8b639cdd628497ed2562008d1a565b5050801562001749576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f4557604051630f22c43960e41b8152612000600482015260240162001131565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f7a939291906200a491565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fba576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004fe557604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200502e603f8462007dc4565b6200504c5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050cf919062009dc6565b90505b92915050565b60005462010000900460ff16156200510357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051355760405163b1d02c3d60e01b815260040160405180910390fd5b8162005143603f8262007dc4565b620051615760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051875760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051ef9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200521d9062009d17565b80156200526e5780601f1062005242576101008083540402835291602001916200526e565b820191906000526020600020905b8154815290600101906020018083116200525057829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052999062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620052c79062009d17565b8015620053185780601f10620052ec5761010080835404028352916020019162005318565b820191906000526020600020905b815481529060010190602001808311620052fa57829003601f168201915b50505050508152602001600182018054620053339062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620053619062009d17565b8015620053b25780601f106200538657610100808354040283529160200191620053b2565b820191906000526020600020905b8154815290600101906020018083116200539457829003601f168201915b50505050508152602001600282018054620053cd9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620053fb9062009d17565b80156200544c5780601f1062005420576101008083540402835291602001916200544c565b820191906000526020600020905b8154815290600101906020018083116200542e57829003601f168201915b50505050508152602001600382018054620054679062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620054959062009d17565b8015620054e65780601f10620054ba57610100808354040283529160200191620054e6565b820191906000526020600020905b815481529060010190602001808311620054c857829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055725750505050508152505090508060e001518015620055b55750856001600160a01b0316826001600160a01b031614155b15620055d457604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005625573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200564c919062009dc6565b9050826001600160a01b0316876001600160a01b03166000805160206200b59d83398151915283876040516200568c929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056c19190879060040162009d4d565b600060405180830381600087803b158015620056dc57600080fd5b505af1158015620056f1573d6000803e3d6000fd5b50505050851562001742576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057259086908b9060040162009d4d565b600060405180830381600087803b1580156200574057600080fd5b505af115801562005755573d6000803e3d6000fd5b5050505050505050505050565b6200578e6040518060800160405280606081526020016060815260200160608152602001606081525090565b816200579c603f8262007dc4565b620057ba5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620057f19062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200581f9062009d17565b8015620058705780601f10620058445761010080835404028352916020019162005870565b820191906000526020600020905b8154815290600101906020018083116200585257829003601f168201915b505050505081526020016001820180546200588b9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620058b99062009d17565b80156200590a5780601f10620058de576101008083540402835291602001916200590a565b820191906000526020600020905b815481529060010190602001808311620058ec57829003601f168201915b50505050508152602001600282018054620059259062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620059539062009d17565b8015620059a45780601f106200597857610100808354040283529160200191620059a4565b820191906000526020600020905b8154815290600101906020018083116200598657829003601f168201915b50505050508152602001600382018054620059bf9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620059ed9062009d17565b801562005a3e5780601f1062005a125761010080835404028352916020019162005a3e565b820191906000526020600020905b81548152906001019060200180831162005a2057829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a7a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005aac5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ab8828262008db3565b5050565b336110071462005ae457604051630f22c43960e41b8152611007600482015260240162001131565b62005b516040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005c0c576020811462005b835783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005bc691858580838501838280828437600092019190915250929392505062008f1c9050565b90506108fc81108062005bda575061271081115b1562005c035784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60355562006916565b62005c7d6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005d47576020811462005caf5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005cf291858580838501838280828437600092019190915250929392505062008f1c9050565b9050683635c9adc5dea0000081108062005d15575069152d02c7e14af680000081115b1562005d3e5784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60365562006916565b62005dba604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005e81576020811462005dec5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005e2f91858580838501838280828437600092019190915250929392505062008f1c9050565b905067016345785d8a000081108062005e4f5750678ac7230489e8000081115b1562005e785784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60375562006916565b62005ef2604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005faa576020811462005f245783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005f6791858580838501838280828437600092019190915250929392505062008f1c9050565b905080158062005f7857506101f481115b1562005fa15784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60385562006916565b620060136040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620060d05760208114620060455783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200608891858580838501838280828437600092019190915250929392505062008f1c9050565b90506203f4808110806200609e575062278d0081115b15620060c75784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60395562006916565b6200613e60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620061eb5760208114620061705783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f8401819004810282018101909252828152600091620061b391858580838501838280828437600092019190915250929392505062008f1c9050565b90506064811115620061e25784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603a5562006916565b6200625b60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b156200631c57602081146200628d5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f8401819004810282018101909252828152600091620062d091858580838501838280828437600092019190915250929392505062008f1c9050565b9050674563918244f40000811080620062ea5750603c5481115b15620063135784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603b5562006916565b6200638a6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b156200644d5760208114620063bc5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f8401819004810282018101909252828152600091620063ff91858580838501838280828437600092019190915250929392505062008f1c9050565b905068056bc75e2d631000008110806200641b5750603b548111155b15620064445784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603c5562006916565b620064ba6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620065775760208114620064ec5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200652f91858580838501838280828437600092019190915250929392505062008f1c9050565b90506202a300811080620065455750603e548110155b156200656e5784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603d5562006916565b620065e26040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b156200669f5760208114620066145783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200665791858580838501838280828437600092019190915250929392505062008f1c9050565b9050620d2f008110806200666d5750603d548111155b15620066965784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603e5562006916565b620067196040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620067c557602081146200674b5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200678e91858580838501838280828437600092019190915250929392505062008f1c9050565b905080600003620067bc5784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b604a5562006916565b620068336040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620068f35760148114620068655783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b6000620068ad601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f1c9050565b90506001600160a01b038116620068e15784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b620068ec8162008f21565b5062006916565b838383836040516325ee20d560e21b81526004016200113194939291906200a4b0565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200694d94939291906200a4b0565b60405180910390a150505050565b60005462010000900460ff16156200698657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069b85760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069d657620069d66200959a565b60405190808252806020026020018201604052801562006a00578160200160208202803683370190505b5090506000805b8381101562006afe5762006a4987878381811062006a295762006a2962009e9c565b905060200201602081019062006a40919062009429565b603f9062007dc4565b62006a675760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a805762006a8062009e9c565b905060200201602081019062006a97919062009429565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ad35762006ad362009e9c565b6001600160a01b039092166020928302919091019091015262006af68162009f01565b905062006a07565b50604051634484077560e01b81526120059063448407759062002886908590889060040162009eb2565b606080600062006b39603f62008917565b90508085101562006cfd57831562006b52578362006b54565b805b935060008462006b65878462009e6c565b1162006b7d5762006b77868362009e6c565b62006b7f565b845b9050806001600160401b0381111562006b9c5762006b9c6200959a565b60405190808252806020026020018201604052801562006bc6578160200160208202803683370190505b509350806001600160401b0381111562006be45762006be46200959a565b60405190808252806020026020018201604052801562006c0e578160200160208202803683370190505b50925060005b8181101562006cfa5762006c2d620039f6828962009db0565b85828151811062006c425762006c4262009e9c565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c7b5762006c7b62009e9c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006ccf5762006ccf62009e9c565b6001600160a01b039092166020928302919091019091015262006cf28162009f01565b905062006c14565b50505b9250925092565b336110011462006d2c57604051630f22c43960e41b8152611001600482015260240162001131565b60005462010000900460ff161562006d5757604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d7f603f8262007dc4565b62006d9d5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dc3603c4262009d8d565b604a546000828152604b60205260409020549192501162006df75760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e1890849062009db0565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e6b57506001600160a01b038416600090815260446020526040902054429062006e6990603c9062009db0565b105b1562006e8a576040516330abb81d60e21b815260040160405180910390fd5b60008062006e9a85600062007de7565b915091508162006ebd57604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f36919062009dc6565b905062006f44858362007e71565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f849392919062009df6565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005725916001600160a01b0316908a9060040162009d4d565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070339062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620070619062009d17565b8015620070b25780601f106200708657610100808354040283529160200191620070b2565b820191906000526020600020905b8154815290600101906020018083116200709457829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070dd9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200710b9062009d17565b80156200715c5780601f1062007130576101008083540402835291602001916200715c565b820191906000526020600020905b8154815290600101906020018083116200713e57829003601f168201915b50505050508152602001600182018054620071779062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620071a59062009d17565b8015620071f65780601f10620071ca57610100808354040283529160200191620071f6565b820191906000526020600020905b815481529060010190602001808311620071d857829003601f168201915b50505050508152602001600282018054620072119062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200723f9062009d17565b8015620072905780601f10620072645761010080835404028352916020019162007290565b820191906000526020600020905b8154815290600101906020018083116200727257829003601f168201915b50505050508152602001600382018054620072ab9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620072d99062009d17565b80156200732a5780601f10620072fe576101008083540402835291602001916200732a565b820191906000526020600020905b8154815290600101906020018083116200730c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073b65750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200741d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200744f5760405163b1d02c3d60e01b815260040160405180910390fd5b336200745d603f8262007dc4565b6200747b5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200749f90603c9062009db0565b1115620074bf57604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074d09062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620074fe9062009d17565b80156200754f5780601f1062007523576101008083540402835291602001916200754f565b820191906000526020600020905b8154815290600101906020018083116200753157829003601f168201915b50505082875250859160058401915081906200756c90826200a4db565b50602082015160018201906200758390826200a4db565b50604082015160028201906200759a90826200a4db565b5060608201516003820190620075b190826200a4db565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200761f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076515760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007672576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076e357620076d085858381811062007697576200769762009e9c565b9050602002016020810190620076ae919062009429565b848484818110620076c357620076c362009e9c565b9050602002013562008db3565b620076db8162009f01565b905062007675565b5050505050565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849390916080840191620077559062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620077839062009d17565b8015620077d45780601f10620077a857610100808354040283529160200191620077d4565b820191906000526020600020905b815481529060010190602001808311620077b657829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620077ff9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200782d9062009d17565b80156200787e5780601f1062007852576101008083540402835291602001916200787e565b820191906000526020600020905b8154815290600101906020018083116200786057829003601f168201915b50505050508152602001600182018054620078999062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620078c79062009d17565b8015620079185780601f10620078ec5761010080835404028352916020019162007918565b820191906000526020600020905b815481529060010190602001808311620078fa57829003601f168201915b50505050508152602001600282018054620079339062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620079619062009d17565b8015620079b25780601f106200798657610100808354040283529160200191620079b2565b820191906000526020600020905b8154815290600101906020018083116200799457829003601f168201915b50505050508152602001600382018054620079cd9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620079fb9062009d17565b801562007a4c5780601f1062007a205761010080835404028352916020019162007a4c565b820191906000526020600020905b81548152906001019060200180831162007a2e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007ad85750505091909252505050604001519392505050565b600062007b10603f8462007dc4565b62007b2e5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200508b565b60005462010000900460ff161562007b9d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007bcf5760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bdd603f8262007dc4565b62007bfb5760405163056e881160e01b815260040160405180910390fd5b3362007c0b818787878762008ad2565b62007c2957604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c4892919062009d67565b908152604051908190036020019020546001600160a01b031614158062007c9257506048868660405162007c7e92919062009d67565b9081526040519081900360200190205460ff165b1562007cb1576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cde90603c9062009db0565b111562007cfe57604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d1491906200a5a3565b908152604051908190036020019020556004810162007d3587898362009fc5565b5042600c820155604051829060459062007d53908a908a9062009d67565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007db3908a908a906200a296565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050cf565b6000806000848460405160200162007e019291906200a621565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e415760008093509350505062007e6a565b603e5462007e50904262009db0565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007eb857600080fd5b505af115801562007ecd573d6000803e3d6000fd5b505050506000600162007ee1603f62008917565b62007eed919062009e6c565b604954108015915062007fab5760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f41573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f67919062009e25565b62007fab5760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fc057600b83018290555b600a83015460ff166200803357600a8301805460ff191660019081179091556049805460009062007ff390849062009db0565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080aa9062008f8d565b90506000805b620080bb8362009000565b156200818e5780600003620080f057620080df620080d98462009026565b6200908a565b6001600160a01b031684526200817b565b806001036200811c5762008108620080d98462009026565b6001600160a01b031660208501526200817b565b80600203620081485762008134620080d98462009026565b6001600160a01b031660408501526200817b565b80600303620081755762008166620081608462009026565b620090a2565b6060850152600191506200817b565b6200818e565b620081868162009f01565b9050620080b0565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081d3575060208201516001600160a01b0316155b15620081e157506004919050565b8151620081f190603f9062007dc4565b620081fe57506002919050565b81516001600160a01b039081166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929391926080840191906200826a9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620082989062009d17565b8015620082e95780601f10620082bd57610100808354040283529160200191620082e9565b820191906000526020600020905b815481529060010190602001808311620082cb57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620083149062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620083429062009d17565b8015620083935780601f10620083675761010080835404028352916020019162008393565b820191906000526020600020905b8154815290600101906020018083116200837557829003601f168201915b50505050508152602001600182018054620083ae9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620083dc9062009d17565b80156200842d5780601f1062008401576101008083540402835291602001916200842d565b820191906000526020600020905b8154815290600101906020018083116200840f57829003601f168201915b50505050508152602001600282018054620084489062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620084769062009d17565b8015620084c75780601f106200849b57610100808354040283529160200191620084c7565b820191906000526020600020905b815481529060010190602001808311620084a957829003601f168201915b50505050508152602001600382018054620084e29062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620085109062009d17565b8015620085615780601f10620085355761010080835404028352916020019162008561565b820191906000526020600020905b8154815290600101906020018083116200854357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620085ed5750505050508152505090508060e00151801562008638575082600001516001600160a01b031683602001516001600160a01b031614155b15620086475750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086a3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086ca919062009dc6565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b59d83398151915283876060015160405162008716929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008779929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087b39290919060040162009d4d565b600060405180830381600087803b158015620087ce57600080fd5b505af1158015620087e3573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff16156200881b575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa1580156200886b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008891919062009dc6565b101562005ab857620088b381603d5442620088ad919062009db0565b62007e71565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b158015620088fa57600080fd5b505af11580156200890f573d6000803e3d6000fd5b505050505050565b6000620050d2825490565b6000620050cf83836200917a565b60008082905060038151108062008948575060098151115b15620089575750600092915050565b6041816000815181106200896f576200896f62009e9c565b016020015160f81c1080620089a15750605a8160008151811062008997576200899762009e9c565b016020015160f81c115b15620089b05750600092915050565b60015b815181101562008ac8576030828281518110620089d457620089d462009e9c565b016020015160f81c108062008a0557506039828281518110620089fb57620089fb62009e9c565b016020015160f81c115b801562008a555750604182828151811062008a245762008a2462009e9c565b016020015160f81c108062008a555750605a82828151811062008a4b5762008a4b62009e9c565b016020015160f81c115b801562008aa55750606182828151811062008a745762008a7462009e9c565b016020015160f81c108062008aa55750607a82828151811062008a9b5762008a9b62009e9c565b016020015160f81c115b1562008ab5575060009392505050565b62008ac08162009f01565b9050620089b3565b5060019392505050565b600060308414158062008ae6575060608214155b1562008af55750600062008bf9565b60008686864660405160200162008b1094939291906200a65f565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b6a9594939291906200a68c565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bb457600080fd5b5060008160008151811062008bcd5762008bcd62009e9c565b016020015160f81c90506001811462008bef5760009550505050505062008bf9565b6001955050505050505b95945050505050565b60008061200361dead60405162008c199062009405565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c5c573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008c909291906200a6c4565b6000604051808303818588803b15801562008caa57600080fd5b505af115801562008cbf573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050cf836001600160a01b038416620091a7565b600054610100900460ff1662008d875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001131565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dc1603f8262007dc4565b62008ddf5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e43573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e69919062009dc6565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008eb191815260200190565b60405180910390a350505050565b60008160405160200162008ed491906200a473565b604051602081830303815290604052805190602001208360405160200162008efd91906200a473565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fbb82620091f9565b62008fc557600080fd5b600062008fd683602001516200922c565b836020015162008fe7919062009db0565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620090189162009db0565b836020015110915050919050565b6040805180820190915260008082526020820152620090458262009000565b6200904f57600080fd5b602082015160006200906182620092bb565b90506200906f818362009db0565b60209485015260408051808201909152908152928301525090565b80516000906015146200909c57600080fd5b620050d2825b805160009015801590620090b857508151602110155b620090c257600080fd5b6000620090d383602001516200922c565b905080836000015110156200912b5760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001131565b82516000906200913d90839062009e6c565b905060008083866020015162009154919062009db0565b90508051915060208310156200917157826020036101000a820491505b50949350505050565b600082600001828154811062009194576200919462009e9c565b9060005260206000200154905092915050565b6000818152600183016020526040812054620091f057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050d2565b506000620050d2565b805160009081036200920d57506000919050565b6020820151805160001a9060c082101562008ac8575060009392505050565b8051600090811a6080811015620092465750600092915050565b60b881108062009263575060c0811080159062009263575060f881105b15620092725750600192915050565b60c0811015620092ad576200928a600160b86200a6ea565b620092999060ff168262009e6c565b620092a690600162009db0565b9392505050565b6200928a600160f86200a6ea565b80516000908190811a6080811015620092d85760019150620093fe565b60b88110156200930457620092ef60808262009e6c565b620092fc90600162009db0565b9150620093fe565b60c08110156200937d57600060b78203600186019550806020036101000a865104915060018101820193505080831015620093765760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001131565b50620093fe565b60f88110156200939457620092ef60c08262009e6c565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620093fc5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001131565b505b5092915050565b610e96806200a70783390190565b6001600160a01b03811681146200174957600080fd5b6000602082840312156200943c57600080fd5b8135620092a68162009413565b60008083601f8401126200945c57600080fd5b5081356001600160401b038111156200947457600080fd5b60208301915083602082850101111562007e6a57600080fd5b60008060208385031215620094a157600080fd5b82356001600160401b03811115620094b857600080fd5b620094c68582860162009449565b90969095509350505050565b600080600060408486031215620094e857600080fd5b833560ff81168114620094fa57600080fd5b925060208401356001600160401b038111156200951657600080fd5b620095248682870162009449565b9497909650939450505050565b60005b838110156200954e57818101518382015260200162009534565b50506000910152565b600081518084526200957181602086016020860162009531565b601f01601f19169290920160200192915050565b602081526000620050cf602083018462009557565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095d557620095d56200959a565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200960657620096066200959a565b604052919050565b60006001600160401b038211156200962a576200962a6200959a565b50601f01601f191660200190565b60006200964f62009649846200960e565b620095db565b90508281528383830111156200966457600080fd5b828260208301376000602084830101529392505050565b6000602082840312156200968e57600080fd5b81356001600160401b03811115620096a557600080fd5b8201601f81018413620096b757600080fd5b620096c88482356020840162009638565b949350505050565b60008060408385031215620096e457600080fd5b8235620096f18162009413565b946020939093013593505050565b80151581146200174957600080fd5b600080600080608085870312156200972557600080fd5b8435620097328162009413565b93506020850135620097448162009413565b92506040850135915060608501356200975d81620096ff565b939692955090935050565b6001600160401b03811681146200174957600080fd5b6000602082840312156200979157600080fd5b8135620092a68162009768565b60008060408385031215620097b257600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620097fc5781516001600160a01b031687529582019590820190600101620097d5565b509495945050505050565b6080815260006200981c6080830187620097c1565b82810360208481019190915286518083528782019282019060005b81811015620098555784518352938301939183019160010162009837565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098aa57601f198584030187526200989783835162009557565b9686019692509085019060010162009878565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098e057600080fd5b8835620098ed8162009413565b975060208901356001600160401b03808211156200990a57600080fd5b620099188c838d0162009449565b909950975060408b01359150808211156200993257600080fd5b620099408c838d0162009449565b90975095508591506060605f19840112156200995b57600080fd5b60608b01945060c08b01359250808311156200997657600080fd5b505088016080818b0312156200998b57600080fd5b8091505092959891949750929550565b60008060408385031215620099af57600080fd5b8235620099bc8162009413565b91506020830135620099ce81620096ff565b809150509250929050565b602081526000825160806020840152620099f760a084018262009557565b90506020840151601f198085840301604086015262009a17838362009557565b9250604086015191508085840301606086015262009a36838362009557565b925060608601519150808584030160808601525062008bf9828262009557565b6000806000806040858703121562009a6d57600080fd5b84356001600160401b038082111562009a8557600080fd5b62009a938883890162009449565b9096509450602087013591508082111562009aad57600080fd5b5062009abc8782880162009449565b95989497509550505050565b60008083601f84011262009adb57600080fd5b5081356001600160401b0381111562009af357600080fd5b6020830191508360208260051b850101111562007e6a57600080fd5b60008060006040848603121562009b2557600080fd5b83356001600160401b0381111562009b3c57600080fd5b62009b4a8682870162009ac8565b909450925050602084013562009b608162009413565b809150509250925092565b60608152600062009b806060830186620097c1565b828103602084015262009b948186620097c1565b915050826040830152949350505050565b600082601f83011262009bb757600080fd5b620050cf8383356020850162009638565b60006020828403121562009bdb57600080fd5b81356001600160401b038082111562009bf357600080fd5b908301906080828603121562009c0857600080fd5b62009c12620095b0565b82358281111562009c2257600080fd5b62009c308782860162009ba5565b82525060208301358281111562009c4657600080fd5b62009c548782860162009ba5565b60208301525060408301358281111562009c6d57600080fd5b62009c7b8782860162009ba5565b60408301525060608301358281111562009c9457600080fd5b62009ca28782860162009ba5565b60608301525095945050505050565b6000806000806040858703121562009cc857600080fd5b84356001600160401b038082111562009ce057600080fd5b62009cee8883890162009ac8565b9096509450602087013591508082111562009d0857600080fd5b5062009abc8782880162009ac8565b600181811c9082168062009d2c57607f821691505b6020821081036200461a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dab57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050d257620050d262009d77565b60006020828403121562009dd957600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e175762009e1762009de0565b826040830152949350505050565b60006020828403121562009e3857600080fd5b8151620092a681620096ff565b828152604081016005831062009e5f5762009e5f62009de0565b8260208301529392505050565b81810381811115620050d257620050d262009d77565b8082028115828204841417620050d257620050d262009d77565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ec76040830185620097c1565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620093fe57620093fe62009d77565b60006001820162009f165762009f1662009d77565b5060010190565b6000808335601e1984360301811262009f3557600080fd5b8301803591506001600160401b0382111562009f5057600080fd5b60200191503681900382131562007e6a57600080fd5b601f8211156200803357600081815260208120601f850160051c8101602086101562009f8f5750805b601f850160051c820191505b818110156200890f5782815560010162009f9b565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009fdf5762009fdf6200959a565b62009ff78362009ff0835462009d17565b8362009f66565b6000601f8411600181146200a02a57600085156200a0155750838201355b6200a021868262009fb0565b845550620076e3565b600083815260209020601f19861690835b828110156200a05d57868501358255602094850194600190920191016200a03b565b50868210156200a07b5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a099828362009f1d565b6001600160401b038111156200a0b3576200a0b36200959a565b6200a0cb816200a0c4855462009d17565b8562009f66565b6000601f8211600181146200a0fe57600083156200a0e95750838201355b6200a0f5848262009fb0565b8655506200a15b565b600085815260209020601f19841690835b828110156200a13157868501358255602094850194600190920191016200a10f565b50848210156200a14f5760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a16e602083018362009f1d565b6200a17e81836001860162009fc5565b50506200a18f604083018362009f1d565b6200a19f81836002860162009fc5565b50506200a1b0606083018362009f1d565b6200a1c081836003860162009fc5565b50505050565b81356200a1d38162009768565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a2008162009768565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a2408162009768565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096c86020830184866200a26d565b60006001600160401b038211156200a2c8576200a2c86200959a565b5060051b60200190565b600060208083850312156200a2e657600080fd5b82516001600160401b038111156200a2fd57600080fd5b8301601f810185136200a30f57600080fd5b80516200a32062009649826200a2ac565b81815260059190911b820183019083810190878311156200a34057600080fd5b928401925b828410156200a36b5783516200a35b8162009413565b825292840192908401906200a345565b979650505050505050565b600060208083850312156200a38a57600080fd5b82516001600160401b03808211156200a3a257600080fd5b818501915085601f8301126200a3b757600080fd5b81516200a3c862009649826200a2ac565b81815260059190911b830184019084810190888311156200a3e857600080fd5b8585015b838110156200a466578051858111156200a4065760008081fd5b8601603f81018b136200a4195760008081fd5b8781015160406200a42e62009649836200960e565b8281528d828486010111156200a4445760008081fd5b6200a455838c830184870162009531565b86525050509186019186016200a3ec565b5098975050505050505050565b600082516200a48781846020870162009531565b9190910192915050565b60ff8416815260406020820152600062008bf96040830184866200a26d565b6040815260006200a4c66040830186886200a26d565b82810360208401526200a36b8185876200a26d565b81516001600160401b038111156200a4f7576200a4f76200959a565b6200a50f816200a508845462009d17565b8462009f66565b602080601f8311600181146200a54357600084156200a52e5750858301515b6200a53a858262009fb0565b8655506200890f565b600085815260208120601f198616915b828110156200a574578886015182559484019460019091019084016200a553565b50858210156200a5935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5b38162009d17565b600182811680156200a5ce57600181146200a5e4576200a615565b60ff19841687528215158302870194506200a615565b8760005260208060002060005b858110156200a60c5781548a8201529084019082016200a5f1565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a64b576200a64b62009de0565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6a0818460208b0162009531565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096c89083018462009557565b60ff8281168282160390811115620050d257620050d262009d7756fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656424d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e0400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000030b86b3146bdd2200b1dbdb1cea5e40d3451c028cbb4fb03b1826f7f2d82bee76bbd5cd68a74a16a7eceea093fd5826b9200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003087ce273bb9b51fd69e50de7a8d9a99cfb3b1a5c6a7b85f6673d137a5a2ce7df3d6ee4e6d579a142d58b0606c4a7a1c27000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a33ac14980d85c0d154c5909ebf7a11d455f54beb4d5d0dc1d8b3670b9c4a6b6c450ee3d623ecc48026f09ed1f0b5c1200000000000000000000000000000000a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/StakingContract b/core/systemcontracts/feynman/rialto/StakingContract new file mode 100644 index 0000000000..31528d6bed --- /dev/null +++ b/core/systemcontracts/feynman/rialto/StakingContract @@ -0,0 +1 @@ +6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101c565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611021565b34801561078b57600080fd5b506104f661164e565b3480156107a057600080fd5b506104f6611654565b3480156107b557600080fd5b5061065461165a565b3480156107ca57600080fd5b5061042161165f565b3480156107df57600080fd5b50610421611665565b3480156107f457600080fd5b5061042161166e565b34801561080957600080fd5b5061042161180e565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611814565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b031661181a565b34801561089c57600080fd5b50610654611835565b3480156108b157600080fd5b5061065461183a565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183f565b3480156108f957600080fd5b506104f661185a565b34801561090e57600080fd5b50610654611860565b34801561092357600080fd5b506104f6611865565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186b565b3480156109bd57600080fd5b50610654611b33565b3480156109d257600080fd5b506104f6611b38565b3480156109e757600080fd5b506104f6611b3e565b3480156109fc57600080fd5b50610a05611b44565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4d565b348015610a3a57600080fd5b506104f6611b53565b348015610a4f57600080fd5b506104b361165a565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b59565b348015610b2f57600080fd5b506106546122eb565b348015610b4457600080fd5b506104216122f0565b348015610b5957600080fd5b5061042161248d565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612498565b348015610ba957600080fd5b506104216124c5565b348015610bbe57600080fd5b506104f66124cb565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d1565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f4565b348015610c9357600080fd5b506104f661271f565b348015610ca857600080fd5b506104f6612725565b348015610cbd57600080fd5b5061042161272b565b348015610cd257600080fd5b50610654612738565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273d565b348015610d2c57600080fd5b506104f6612772565b348015610d4157600080fd5b50610421612778565b348015610d5657600080fd5b506104f661277e565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614801565b610db2614801565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e4602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481f565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278492505050565b6127a9565b90506000610ef0610eeb836127f3565b612841565b90506000606060ff831660041415610f1557610f0b846128f8565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad8565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b6102ca81565b600881565b60105460ff166002141561106d576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109557506402540be4008106155b6110e6576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611129576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611177576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611232573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e9576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611232576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112aa576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130591859063ffffffff612df816565b9050801561134d57600254811161134d5760405162461bcd60e51b81526004018080602001828103825260258152602001806149bf6025913960400191505060405180910390fd5b6000611364846402540be40063ffffffff612e8f16565b600254909150349060009061138090839063ffffffff612ed816565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139c5790505090506113bc33612f1a565b816000815181106113c957fe5b60200260200101819052506113e6886001600160a01b0316612f1a565b816001815181106113f357fe5b602002602001018190525061140784612f3d565b8160028151811061141457fe5b60200260200101819052506060611434600261142f84612f50565b612fda565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148542620a8c0063ffffffff61306016565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c9876402540be40063ffffffff612e8f16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152757818101518382015260200161150f565b50505050905090810190601f1680156115545780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157557600080fd5b505af1158015611589573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bc573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ed573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bd576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611724576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d806000811461177a576040519150601f19603f3d011682016040523d82523d6000602084013e61177f565b606091505b50509050806117c7576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118ab5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e4602f913960400191505060405180910390fd5b60005460ff166118ee576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f661481f565b611938610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278492505050565b905060008060606000805b61194c866130ba565b156119b7578061196957611962610eeb876127f3565b94506119af565b80600114156119855761197e610eeb876127f3565b93506119af565b80600214156119aa5761199f61199a876127f3565b6130db565b9250600191506119af565b6119b7565b600101611943565b816119fd576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a068361314b565b611a49576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a55610ed684612784565b95506000611a65610eeb886127f3565b9050611a6f61481f565b611a78886130ba565b15611a9b57611a94610ed6611a8f61199a8b6127f3565b612784565b9050611adc565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af857611af381888861319f565b611b26565b60ff821660021415611b0f57611af3818888613556565b60ff821660031415610f2a57611af3818888613823565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611bb0576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bf05760405162461bcd60e51b815260040180806020018281038252602e815260200180614935602e913960400191505060405180910390fd5b611c5184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b889050565b15611db75760208114611cab576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce991858580838501838280828437600092019190915250613c6f92505050565b90506003548110611d2b5760405162461bcd60e51b815260040180806020018281038252602e815260200180614963602e913960400191505060405180910390fd5b6002548111611d6b5760405162461bcd60e51b815260040180806020018281038252602e815260200180614991602e913960400191505060405180910390fd5b6402540be400810615611daf5760405162461bcd60e51b815260040180806020018281038252602c815260200180614909602c913960400191505060405180910390fd5b600155612259565b611e1b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b889050565b15611f7d5760208114611e75576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb391858580838501838280828437600092019190915250613c6f92505050565b905080611ef15760405162461bcd60e51b8152600401808060200182810382526022815260200180614a136022913960400191505060405180910390fd5b6001548110611f315760405162461bcd60e51b815260040180806020018281038252602e815260200180614889602e913960400191505060405180910390fd5b6402540be400810615611f755760405162461bcd60e51b815260040180806020018281038252602f81526020018061485a602f913960400191505060405180910390fd5b600255612259565b611fe184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b889050565b156120c3576020811461203b576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207991858580838501838280828437600092019190915250613c6f92505050565b905060015481116120bb5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b76031913960400191505060405180910390fd5b600355612259565b61212584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b889050565b1561221c576020811461217f576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bd91858580838501838280828437600092019190915250613c6f92505050565b905060008111612214576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612259565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233f576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a3576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f9576040519150601f19603f3d011682016040523d82523d6000602084013e6123fe565b606091505b5050905080612446576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125115760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e4602f913960400191505060405180910390fd5b60005460ff16612554576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259382828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314b92505050565b6125d6576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125de61481f565b612620610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278492505050565b90506000612630610eeb836127f3565b905061263a61481f565b612643836130ba565b156126615761265a610ed6611a8f61199a866127f3565b90506126a7565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c1576126bc81613c74565b6126eb565b60ff8216600214156126d6576126bc81613e8e565b60ff821660031415610f2a576126bc81613fb8565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278c61483f565b506040805180820190915281518152602082810190820152919050565b6127b161481f565b6127ba8261411d565b6127c357600080fd5b60006127d28360200151614157565b60208085015160408051808201909152868152920190820152915050919050565b6127fb61483f565b612804826130ba565b61280d57600080fd5b6020820151600061281d826141ba565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285657508151602110155b61285f57600080fd5b600061286e8360200151614157565b905080836000015110156128c9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ef57826020036101000a820491505b50949350505050565b600060606000806000805b61290c876130ba565b1561295e578261292e57612927612922886127f3565b6142ed565b9150612953565b826001141561294e57612943610eeb886127f3565b905060019350612953565b61295e565b826001019250612903565b836129a4576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ee57600080fd5b505af1158015612a02573d6000803e3d6000fd5b505050506040513d6020811015612a1857600080fd5b5051905080612a3d57612a2f600484846065614307565b965096505050505050612ad3565b6001600160a01b038316600090815260066020526040902054612a66908363ffffffff61306016565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aef896130ba565b15612b795784612b0c57612b056129228a6127f3565b9350612b6e565b8460011415612b2857612b216129228a6127f3565b9250612b6e565b8460021415612b4857612b3d610eeb8a6127f3565b915060019550612b6e565b8460031415612b6957612b62612b5d8a6127f3565b614403565b9050612b6e565b612b79565b846001019450612ae6565b85612bbf576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051905080612c5a57612c4a600586856065614307565b9850985050505050505050612ad3565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9e908463ffffffff61306016565b6001600160a01b0386166000908152600860205260409020558115612d8c576001600160a01b038516600090815260046020526040902054612ce6908463ffffffff612ed816565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d28908463ffffffff612ed816565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e875760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4c578181015183820152602001612e34565b50505050905090810190601f168015612e795780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614447565b9392505050565b6000612ed183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df8565b60408051600560a21b8318601482015260348101909152606090612ed1816144ac565b60606124bf612f4b83614502565b6144ac565b6060815160001415612f715750604080516000815260208101909152610df1565b606082600081518110612f8057fe5b602002602001015190506000600190505b8351811015612fc157612fb782858381518110612faa57fe5b60200260200101516145e8565b9150600101612f91565b50612ed1612fd4825160c060ff16614665565b826145e8565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff35790505090506130168460ff16612f3d565b8160008151811061302357fe5b6020026020010181905250613037836144ac565b8160018151811061304457fe5b602002602001018190525061305881612f50565b949350505050565b600082820183811015612ed1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c461483f565b505080518051602091820151919092015191011190565b80516060906130e957600080fd5b60006130f88360200151614157565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312f576020820181803683370190505b50905060008160200190506128ef84876020015101828561475d565b8051602080830191909120600e546000908152600a909252604082205480821461317a57600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b1886130ba565b1561321a57836131ce576131c7612922896127f3565b925061320f565b83600114156131ea576131e3612922896127f3565b915061320f565b836002141561320a576131ff610eeb896127f3565b90506001945061320f565b61321a565b8360010193506131a8565b84613260576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613277826402540be40063ffffffff6147a816565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bd5760ff8716156132ea576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613313908263ffffffff61306016565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613355908263ffffffff61306016565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354b565b60ff881661350f576001600160a01b0384166000908152600860205260409020546133ee908263ffffffff61306016565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344a57600080fd5b505af115801561345e573d6000803e3d6000fd5b505050506040513d602081101561347457600080fd5b50516134bd576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354b565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613568886130ba565b156135d157836135855761357e612922896127f3565b92506135c6565b83600114156135a15761359a612922896127f3565b91506135c6565b83600214156135c1576135b6610eeb896127f3565b9050600194506135c6565b6135d1565b83600101935061355f565b84613617576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362e826402540be40063ffffffff6147a816565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ad5760ff8716156136a1576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136ca908263ffffffff612ed816565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370c908263ffffffff612ed816565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374542620a8c0063ffffffff61306016565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354b565b60ff881661350f576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354b565b6000806000806000805b613836896130ba565b156138bb57846138535761384c6129228a6127f3565b93506138b0565b846001141561386f576138686129228a6127f3565b92506138b0565b846002141561388b576138846129228a6127f3565b91506138b0565b84600314156138ab576138a0610eeb8a6127f3565b9050600195506138b0565b6138bb565b84600101945061382d565b85613901576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613918826402540be40063ffffffff6147a816565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aeb5760ff88161561398b576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c1908263ffffffff612ed816565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fd9082613060565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3642620a8c0063ffffffff61306016565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7942620a8c0063ffffffff61306016565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7c565b60ff891661350f576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbd5780518252601f199092019160209182019101613b9e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2b5780518252601f199092019160209182019101613c0c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c86866130ba565b15613cef5783613ca357613c9c612922876127f3565b9250613ce4565b8360011415613cbf57613cb8612922876127f3565b9150613ce4565b8360021415613cdf57613cd4610eeb876127f3565b905060019450613ce4565b613cef565b836001019350613c7d565b84613d35576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4c826402540be40063ffffffff6147a816565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d8a908263ffffffff61306016565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de657600080fd5b505af1158015613dfa573d6000803e3d6000fd5b505050506040513d6020811015613e1057600080fd5b5051613e59576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613ea0866130ba565b15613f095783613ebd57613eb6612922876127f3565b9250613efe565b8360011415613ed957613ed2612922876127f3565b9150613efe565b8360021415613ef957613eee610eeb876127f3565b905060019450613efe565b613f09565b836001019350613e97565b84613f4f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fcb876130ba565b156140505784613fe857613fe1612922886127f3565b9350614045565b846001141561400457613ffd612922886127f3565b9250614045565b846002141561402057614019612922886127f3565b9150614045565b846003141561404057614035610eeb886127f3565b905060019550614045565b614050565b846001019450613fc2565b85614096576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412e57506000610df1565b6020820151805160001a9060c082101561414d57600092505050610df1565b5060019392505050565b8051600090811a6080811015614171576000915050610df1565b60b881108061418c575060c0811080159061418c575060f881105b1561419b576001915050610df1565b60c08110156141af5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d557600191506142e6565b60b88110156141ea57607e19810191506142e6565b60c081101561426457600060b78203600186019550806020036101000a86510491506001810182019350508083101561425e576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e6565b60f88110156142795760be19810191506142e6565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e4576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fe57600080fd5b6124bf82612841565b60006060614320846402540be40063ffffffff612e8f16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433c57905050905061435f8760ff16612f3d565b8160008151811061436c57fe5b6020026020010181905250614389866001600160a01b0316612f1a565b8160018151811061439657fe5b60200260200101819052506143aa85612f3d565b816002815181106143b757fe5b60200260200101819052506143d18463ffffffff16612f3d565b816003815181106143de57fe5b602002602001018190525060606143f482612f50565b94989497509395505050505050565b805160009060011461441457600080fd5b6020820151805160001a9081158061442c5750608082145b1561443c57600092505050610df1565b600192505050610df1565b600081836144965760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4c578181015183820152602001612e34565b5060008385816144a257fe5b0495945050505050565b6060815160011480156144de5750607f60f81b826000815181106144cc57fe5b01602001516001600160f81b03191611155b156144ea575080610df1565b6124bf6144fc8351608060ff16614665565b836145e8565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166145465750601861456a565b6fffffffffffffffffffffffffffffffff1984166145665750601061456a565b5060005b60208110156145a05781818151811061457f57fe5b01602001516001600160f81b03191615614598576145a0565b60010161456a565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d5576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614619578051835260209283019201614601565b50855184518101855292509050808201602086015b8183101561464657805183526020928301920161462e565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b5576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470f5782840160f81b816000815181106146f157fe5b60200101906001600160f81b031916908160001a90535090506124bf565b606061471a85614502565b90508381510160370160f81b8260008151811061473357fe5b60200101906001600160f81b031916908160001a90535061475482826145e8565b95945050505050565b80614767576126ef565b5b60208110614787578251825260209283019290910190601f1901614768565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b7575060006124bf565b828202828482816147c457fe5b0414612ed15760405162461bcd60e51b81526004018080602001828103825260218152602001806148e86021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483261483f565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/TimelockContract b/core/systemcontracts/feynman/rialto/TimelockContract new file mode 100644 index 0000000000..1892f14c6f --- /dev/null +++ b/core/systemcontracts/feynman/rialto/TimelockContract @@ -0,0 +1 @@ +6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa4565b61064a565b005b34801561022157600080fd5b50610235610230366004611b18565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258883398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254883398151915281565b6102136102aa366004611b42565b610739565b3480156102bb57600080fd5b506102356102ca366004611bad565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7b565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611bad565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611bad565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce2565b610802565b34801561039f57600080fd5b506102356103ae366004611bad565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce2565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611bad565b6108c8565b34801561042657600080fd5b50610213610435366004611bad565b6108df565b34801561044657600080fd5b5061026c610455366004611b42565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d52565b610b72565b34801561049b57600080fd5b5061026c60008051602061256883398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce2565b610cf3565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e03565b610d1e565b34801561051257600080fd5b5061026c6000805160206125a883398151915281565b34801561053457600080fd5b5061026c610543366004611e6e565b610f08565b34801561055457600080fd5b506102fa610563366004611f95565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611bad565b610f4d565b3480156105a057600080fd5b5061026c6105af366004611bad565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce2565b611010565b6102136105ef366004611e6e565b611035565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa61062436600461203e565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b600080516020612568833981519152610662816111ad565b6000610672898989898989610983565b905061067e81846111b7565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cb565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a6565b92915050565b600080516020612588833981519152610753816000610cf3565b6107615761076181336112db565b6000610771888888888888610983565b905061077d8185611334565b610789888888886113cf565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c19493929190612108565b60405180910390a36107d2816114a2565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111ad565b61082783836114db565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611561565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cb565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213a565b60200260200101906001600160a01b031690816001600160a01b031681525050610b28603c82836120046115c8565b508015610b6f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b600080516020612568833981519152610b8a816111ad565b888714610ba95760405162461bcd60e51b81526004016108b190612150565b888514610bc85760405162461bcd60e51b81526004016108b190612150565b6000610bda8b8b8b8b8b8b8b8b610f08565b9050610be681846111b7565b60005b8a811015610ca45780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2657610c2661213a565b9050602002016020810190610c3b9190612193565b8d8d86818110610c4d57610c4d61213a565b905060200201358c8c87818110610c6657610c6661213a565b9050602002810190610c7891906121ae565b8c8b604051610c8c969594939291906120cb565b60405180910390a3610c9d8161220a565b9050610be9565b508315610ce657807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cdd91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4457604051630f22c43960e41b815261100760048201526024016108b1565b610da7604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116019050565b15610ea45760208114610dd55783838383604051630a5a604160e01b81526004016108b19493929190612223565b604080516020601f8401819004810282018101909252828152600091610e1691858580838501838280828437600092019190915250929392505061165a9050565b9050801580610e2757506212750081115b15610e4d5784848484604051630a5a604160e01b81526004016108b19493929190612223565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8657600080fd5b505af1158015610e9a573d6000803e3d6000fd5b5050505050610ec5565b838383836040516325ee20d560e21b81526004016108b19493929190612223565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efa9493929190612223565b60405180910390a150505050565b60008888888888888888604051602001610f299897969594939291906122d8565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125a8833981519152610f65816111ad565b610f6e826108c8565b610fd45760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102b816111ad565b6108278383611561565b60008051602061258883398151915261104f816000610cf3565b61105d5761105d81336112db565b87861461107c5760405162461bcd60e51b81526004016108b190612150565b87841461109b5760405162461bcd60e51b81526004016108b190612150565b60006110ad8a8a8a8a8a8a8a8a610f08565b90506110b98185611334565b60005b898110156111975760008b8b838181106110d8576110d861213a565b90506020020160208101906110ed9190612193565b905060008a8a848181106111035761110361213a565b9050602002013590503660008a8a868181106111215761112161213a565b905060200281019061113391906121ae565b91509150611143848484846113cf565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117a9493929190612108565b60405180910390a350505050806111909061220a565b90506110bc565b506111a1816114a2565b50505050505050505050565b610b6f81336112db565b6111c08261082c565b156112255760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112865760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b6112908142612379565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e58282610cf3565b6108c4576112f28161165f565b6112fd836020611671565b60405160200161130e9291906123b0565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612425565b61133d826107dc565b6113595760405162461bcd60e51b81526004016108b190612458565b80158061137457506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ec9291906124a2565b60006040518083038185875af1925050503d8060008114611429576040519150601f19603f3d011682016040523d82523d6000602084013e61142e565b606091505b505090508061149b5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ab816107dc565b6114c75760405162461bcd60e51b81526004016108b190612458565b600090815260976020526040902060019055565b6114e58282610cf3565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156b8282610cf3565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115ef5760405162461bcd60e51b81526004016108b1906124b2565b6115fb8484848461180c565b50505050565b60008160405160200161161491906124fd565b604051602081830303815290604052805190602001208360405160200161163b91906124fd565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b60606000611680836002612519565b61168b906002612379565b6001600160401b038111156116a2576116a2611bc6565b6040519080825280601f01601f1916602001820160405280156116cc576020820181803683370190505b509050600360fc1b816000815181106116e7576116e761213a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117165761171661213a565b60200101906001600160f81b031916908160001a905350600061173a846002612519565b611745906001612379565b90505b60018111156117bd576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106117795761177961213a565b1a60f81b82828151811061178f5761178f61213a565b60200101906001600160f81b031916908160001a90535060049490941c936117b681612530565b9050611748565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118335760405162461bcd60e51b81526004016108b1906124b2565b61184b600080516020612548833981519152806119eb565b6118716000805160206125688339815191526000805160206125488339815191526119eb565b6118976000805160206125888339815191526000805160206125488339815191526119eb565b6118bd6000805160206125a88339815191526000805160206125488339815191526119eb565b6118d560008051602061254883398151915230611a36565b6001600160a01b038116156118fc576118fc60008051602061254883398151915282611a36565b60005b835181101561196d5761193960008051602061256883398151915285838151811061192c5761192c61213a565b6020026020010151611a36565b61195d6000805160206125a883398151915285838151811061192c5761192c61213a565b6119668161220a565b90506118ff565b5060005b82518110156119ae5761199e60008051602061258883398151915284838151811061192c5761192c61213a565b6119a78161220a565b9050611971565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efa565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114db565b80356001600160a01b0381168114611a5757600080fd5b919050565b60008083601f840112611a6e57600080fd5b5081356001600160401b03811115611a8557600080fd5b602083019150836020828501011115611a9d57600080fd5b9250929050565b600080600080600080600060c0888a031215611abf57600080fd5b611ac888611a40565b96506020880135955060408801356001600160401b03811115611aea57600080fd5b611af68a828b01611a5c565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2a57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5b57600080fd5b611b6487611a40565b95506020870135945060408701356001600160401b03811115611b8657600080fd5b611b9289828a01611a5c565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bbf57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0457611c04611bc6565b604052919050565b600082601f830112611c1d57600080fd5b81356001600160401b03811115611c3657611c36611bc6565b611c49601f8201601f1916602001611bdc565b818152846020838601011115611c5e57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9157600080fd5b611c9a85611a40565b9350611ca860208601611a40565b92506040850135915060608501356001600160401b03811115611cca57600080fd5b611cd687828801611c0c565b91505092959194509250565b60008060408385031215611cf557600080fd5b82359150611d0560208401611a40565b90509250929050565b60008083601f840112611d2057600080fd5b5081356001600160401b03811115611d3757600080fd5b6020830191508360208260051b8501011115611a9d57600080fd5b600080600080600080600080600060c08a8c031215611d7057600080fd5b89356001600160401b0380821115611d8757600080fd5b611d938d838e01611d0e565b909b50995060208c0135915080821115611dac57600080fd5b611db88d838e01611d0e565b909950975060408c0135915080821115611dd157600080fd5b50611dde8c828d01611d0e565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1957600080fd5b84356001600160401b0380821115611e3057600080fd5b611e3c88838901611a5c565b90965094506020870135915080821115611e5557600080fd5b50611e6287828801611a5c565b95989497509550505050565b60008060008060008060008060a0898b031215611e8a57600080fd5b88356001600160401b0380821115611ea157600080fd5b611ead8c838d01611d0e565b909a50985060208b0135915080821115611ec657600080fd5b611ed28c838d01611d0e565b909850965060408b0135915080821115611eeb57600080fd5b50611ef88b828c01611d0e565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2757600080fd5b813560206001600160401b03821115611f4257611f42611bc6565b8160051b611f51828201611bdc565b9283528481018201928281019087851115611f6b57600080fd5b83870192505b84831015611f8a57823582529183019190830190611f71565b979650505050505050565b600080600080600060a08688031215611fad57600080fd5b611fb686611a40565b9450611fc460208701611a40565b935060408601356001600160401b0380821115611fe057600080fd5b611fec89838a01611f16565b9450606088013591508082111561200257600080fd5b61200e89838a01611f16565b9350608088013591508082111561202457600080fd5b5061203188828901611c0c565b9150509295509295909350565b600080600080600060a0868803121561205657600080fd5b61205f86611a40565b945061206d60208701611a40565b9350604086013592506060860135915060808601356001600160401b0381111561209657600080fd5b61203188828901611c0c565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f360a0830186886120a2565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121306060830184866120a2565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a557600080fd5b6107fb82611a40565b6000808335601e198436030181126121c557600080fd5b8301803591506001600160401b038211156121df57600080fd5b602001915036819003821315611a9d57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221c5761221c6121f4565b5060010190565b6040815260006122376040830186886120a2565b8281036020840152611f8a8185876120a2565b818352600060208085019450848460051b86018460005b878110156122cb5783830389528135601e1988360301811261228257600080fd5b870185810190356001600160401b0381111561229d57600080fd5b8036038213156122ac57600080fd5b6122b78582846120a2565b9a87019a9450505090840190600101612261565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b811015612319576001600160a01b0361230484611a40565b168252602092830192909101906001016122eb565b5083810360208501528881526001600160fb1b0389111561233957600080fd5b8860051b9150818a60208301370182810360209081016040850152612361908201878961224a565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f4565b60005b838110156123a757818101518382015260200161238f565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e881601785016020880161238c565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241981602884016020880161238c565b01602801949350505050565b602081526000825180602084015261244481604085016020870161238c565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161250f81846020870161238c565b9190910192915050565b8082028115828204841417610733576107336121f4565b60008161253f5761253f6121f4565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/TokenHubContract b/core/systemcontracts/feynman/rialto/TokenHubContract new file mode 100644 index 0000000000..5e3af0c363 --- /dev/null +++ b/core/systemcontracts/feynman/rialto/TokenHubContract @@ -0,0 +1 @@ +6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113da565b34801561081957600080fd5b506107776113e0565b34801561082e57600080fd5b506106366113e5565b34801561084357600080fd5b506104d06113f0565b34801561085857600080fd5b506104d06113f6565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fc565b34801561089757600080fd5b50610636611417565b3480156108ac57600080fd5b50610777611420565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611425565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118fa565b348015610a0257600080fd5b50610777611900565b348015610a1757600080fd5b50610636611905565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190b565b348015610a5657600080fd5b506104d061198c565b348015610a6b57600080fd5b50610777611992565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611997565b348015610abf57600080fd5b506104d0611c47565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4d565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d95565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efe565b348015610bd157600080fd5b50610636611f84565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f89565b348015610c1f57600080fd5b50610777612146565b348015610c3457600080fd5b5061063661214b565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612157565b348015610c8257600080fd5b506104d0612295565b348015610c9757600080fd5b506104d061229b565b348015610cac57600080fd5b506107776122a1565b348015610cc157600080fd5b506109cd6122a6565b348015610cd657600080fd5b506107776122af565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b4565b348015610d3257600080fd5b506104d0612334565b348015610d4757600080fd5b506104d061233a565b348015610d5c57600080fd5b506104a26122a1565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612340565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e8565b348015610e7557600080fd5b50610636612868565b348015610e8a57600080fd5b50610636612872565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612878565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288a565b348015610f0557600080fd5b506104d06128a5565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ab565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297b565b348015610fda57600080fd5b506104d0612c4f565b348015610fef57600080fd5b506104d0612c55565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5b565b34801561102e57600080fd5b50610486612cfb565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9b565b34801561107657600080fd5b50610777612dad565b34801561108b57600080fd5b50610777612db2565b3480156110a057600080fd5b50610777612db7565b3480156110b557600080fd5b506104d0612dbc565b3480156110ca57600080fd5b50610636612dc2565b3480156110df57600080fd5b50610636612dc8565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd6565b34801561112757600080fd5b506104d0612efd565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0392505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b6102ca81565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146b576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b8685146114a95760405162461bcd60e51b815260040180806020018281038252603b815260200180615354603b913960400191505060405180910390fd5b8683146114e75760405162461bcd60e51b815260040180806020018281038252603f815260200180615266603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115335760405162461bcd60e51b81526004018080602001828103825260248152602001806151e26024913960400191505060405180910390fd5b6402540be4003406156115775760405162461bcd60e51b81526004018080602001828103825260408152602001806154576040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115aa578160200160208202803683370190505b50905060005b84811015611685576402540be4008b8b838181106115ca57fe5b90506020020135816115d857fe5b06156116155760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a5603c913960400191505060405180910390fd5b61163a8b8b8381811061162457fe5b905060200201358561302790919063ffffffff16565b93506116666402540be4008c8c8481811061165157fe5b9050602002013561308190919063ffffffff16565b82828151811061167257fe5b60209081029190910101526001016115b0565b506001546116aa9061169d908663ffffffff6130c316565b849063ffffffff61302716565b3410156116e85760405162461bcd60e51b81526004018080602001828103825260568152602001806154016056913960600191505060405180910390fd5b6116f8348463ffffffff61311c16565b9150611702615020565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c68461315e565b6117db876402540be40063ffffffff61308116565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611839578181015183820152602001611821565b50505050905090810190601f1680156118665780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188757600080fd5b505af115801561189b573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194d5760405162461bcd60e51b815260040180806020018281038252603381526020018061513a6033913960400191505060405180910390fd5b8115611984576040516120019083156108fc029084906000818181858888f19350505050158015611982573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119dc576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b3361300014611a1c5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523b602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a635760405162461bcd60e51b81526004018080602001828103825260358152602001806152066035913960400191505060405180910390fd5b60006221272160e91b8414611bcd576000848152600460205260409020546001600160a01b031680611ad6576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c42565b6001600160a01b038116600090815260026020526040902054611af98482613419565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4457600080fd5b505afa158015611b58573d6000803e3d6000fd5b505050506040513d6020811015611b6e57600080fd5b50511015611bba576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc686838588613459565b5050611c40565b611be2826402540be40063ffffffff6130c316565b905080471015611c30576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3e85828487613459565b505b505b505050565b61200381565b60005460ff16611c92576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b3361200014611cd25760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b60ff831660031415611d2257611d1d82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f192505050565b611c42565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd55760405162461bcd60e51b815260040180806020018281038252602b81526020018061523b602b913960400191505060405180910390fd5b60006221272160e91b8314611e4057506000828152600460205260409020546001600160a01b031680611e40576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eab576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3e5760405162461bcd60e51b81526004018080602001828103825260238152602001806153be6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b603c81565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc357600080fd5b505afa158015611fd7573d6000803e3d6000fd5b505050506040513d6020811015611fed57600080fd5b50516001600160a01b0316331461204b576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211612099576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120ef576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219d576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b33611005146121dd5760405162461bcd60e51b815260040180806020018281038252602f81526020018061516d602f913960400191505060405180910390fd5b60004783106121ec57476121ee565b825b9050670de0b6b3a764000081111561220a57600091505061228f565b801561228c576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612246573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fa576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123805760405162461bcd60e51b815260040180806020018281038252602e815260200180615302602e913960400191505060405180910390fd5b602081146123d5576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124dd576020820151670de0b6b3a7640000811180159061248457506402540be4008106155b6124d5576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612753565b61255187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061354d9050565b156125ed57604080516020601f87018190048102820181019092528581526000916125949188888083850183828082843760009201919091525061363492505050565b905062093a808111156125e5576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612753565b61265987878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061354d9050565b1561271657604080516020601f870181900481028201810190925285815260009161269c9188888083850183828082843760009201919091525061363492505050565b905068056bc75e2d631000008110156126e65760405162461bcd60e51b815260040180806020018281038252602281526020018061519c6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612753565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128285760405162461bcd60e51b81526004018080602001828103825260238152602001806153be6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f0576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b33612000146129305760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b60ff831660031415611d2257611d1d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363992505050565b60085460ff16600214156129c7576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a3f576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a98576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0b576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afb576040519150601f19603f3d011682016040523d82523d6000602084013e612b00565b606091505b505080915050612b9e565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6e57600080fd5b5087f1158015612b82573d6000803e3d6000fd5b50505050506040513d6020811015612b9957600080fd5b505190505b80612bf0576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb3576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf3576040516120029083156108fc029084906000818181858888f19350505050158015612ce9573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d53576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6657828160ff1681518110612e3a57fe5b01602001516001600160f81b03191615612e5957816001019150612e5e565b612e66565b600101612e1f565b5060608160ff166040519080825280601f01601f191660200182016040528015612e97576020820181803683370190505b50905060005b8260ff168160ff161015612ef357838160ff1681518110612eba57fe5b602001015160f81c60f81b828260ff1681518110612ed457fe5b60200101906001600160f81b031916908160001a905350600101612e9d565b5095945050505050565b61100481565b6060612f0d61506c565b6000612f1884613730565b9150915080612f6e576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f798361386f565b905063ffffffff81161561300d576040808401516020808601516001600160a01b03166000908152600290915291822054612fb49190613bd5565b9050612fbe6150a1565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300181613c0e565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cea565b6000826130d25750600061228f565b828202828482816130df57fe5b041461228c5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e16021913960400191505060405180910390fd5b600061228c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8c565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613179575050835190915061319b90613de6565b816000815181106131a857fe5b60200260200101819052506131c983602001516001600160a01b0316613df9565b816001815181106131d657fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322157816020015b606081526020019060019003908161320c5790505b50905060005b8281101561326e5761324f8660400151828151811061324257fe5b6020026020010151613de6565b82828151811061325b57fe5b6020908102919091010152600101613227565b5061327881613e1c565b8360028151811061328557fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c657816020015b60608152602001906001900390816132b15790505b50905060005b8381101561331c576132fd876060015182815181106132e757fe5b60200260200101516001600160a01b0316613df9565b82828151811061330957fe5b60209081029190910101526001016132cc565b5061332681613e1c565b8460038151811061333357fe5b602002602001018190525060608360405190808252806020026020018201604052801561337457816020015b606081526020019060019003908161335f5790505b50905060005b848110156133b457613395886080015182815181106132e757fe5b8282815181106133a157fe5b602090810291909101015260010161337a565b506133be81613e1c565b856004815181106133cb57fe5b60200260200101819052506133ed8760a0015167ffffffffffffffff16613de6565b856005815181106133fa57fe5b602002602001018190525061340e85613e1c565b979650505050505050565b600060088211156134425761343b836007198401600a0a63ffffffff6130c316565b905061228f565b61228c836008849003600a0a63ffffffff61308116565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613490908463ffffffff61302716565b815542603c016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134f96150c8565b600061350483613ea6565b91509150806135445760405162461bcd60e51b81526004018080602001828103825260248152602001806153306024913960400191505060405180910390fd5b611c4282614071565b6000816040516020018082805190602001908083835b602083106135825780518252601f199092019160209182019101613563565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f05780518252601f1990920191602091820191016135d1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613641615020565b600061364c836144f5565b915091508061368c5760405162461bcd60e51b81526004018080602001828103825260248152602001806151be6024913960400191505060405180910390fd5b6136946150c8565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613715576136f2856040015182815181106136e457fe5b602002602001015183613419565b8560400151828151811061370257fe5b60209081029190910101526001016136c4565b506080840151604083015260056060830152611c3e82614071565b61373861506c565b600061374261506c565b61374a6150ff565b61375b61375686614759565b61477e565b90506000805b61376a836147c8565b15613862578061378c57613785613780846147e9565b614837565b845261385a565b80600114156137b9576137a66137a1846147e9565b6148ee565b6001600160a01b0316602085015261385a565b80600214156137d8576137ce613780846147e9565b604085015261385a565b8060031415613800576137ed6137a1846147e9565b6001600160a01b0316606085015261385a565b8060041415613828576138156137a1846147e9565b6001600160a01b0316608085015261385a565b80600514156138555761383d613780846147e9565b67ffffffffffffffff1660a08501526001915061385a565b613862565b600101613761565b5091935090915050915091565b60208101516000906001600160a01b03166139b3578160a0015167ffffffffffffffff164211156138a2575060016113b2565b81604001514710156138b6575060036113b2565b6138bf82614908565b61393457606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391a576040519150601f19603f3d011682016040523d82523d6000602084013e61391f565b606091505b50509050806139325750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d1575060016113b2565b81516020808401516001600160a01b0316600090815260039091526040902054146139fe575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a4e57600080fd5b5086fa158015613a62573d6000803e3d6000fd5b50505050506040513d6020811015613a7957600080fd5b50516040840151909150811015613a945750600390506113b2565b613a9d83614908565b613b5457600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1257600080fd5b5087f1158015613b26573d6000803e3d6000fd5b50505050506040513d6020811015613b3d57600080fd5b5051905080613b525750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bf75761343b836007198401600a0a63ffffffff61308116565b61228c836008849003600a0a63ffffffff6130c316565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c295750508351909150613c4b90613de6565b81600081518110613c5857fe5b6020026020010181905250613c708360200151613de6565b81600181518110613c7d57fe5b6020026020010181905250613c9e83604001516001600160a01b0316613df9565b81600281518110613cab57fe5b6020026020010181905250613cc9836060015163ffffffff16613de6565b81600381518110613cd657fe5b602002602001018190525061126281613e1c565b60008183613d765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3b578181015183820152602001613d23565b50505050905090810190601f168015613d685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8257fe5b0495945050505050565b60008184841115613dde5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3b578181015183820152602001613d23565b505050900390565b606061228f613df483614a76565b614b5c565b60408051600560a21b831860148201526034810190915260609061126281614b5c565b6060815160001415613e3d57506040805160008152602081019091526113b2565b606082600081518110613e4c57fe5b602002602001015190506000600190505b8351811015613e8d57613e8382858381518110613e7657fe5b6020026020010151614bae565b9150600101613e5d565b50611262613ea0825160c060ff16614c2b565b82614bae565b613eae6150c8565b6000613eb86150c8565b613ec06150ff565b613ecc61375686614759565b90506000805b613edb836147c8565b156138625780613f0157613ef16137a1846147e9565b6001600160a01b03168452614069565b8060011415613fa2576060613f1d613f18856147e9565b614d23565b90508051604051908082528060200260200182016040528015613f4a578160200160208202803683370190505b50602086015260005b8151811015613f9b57613f78828281518110613f6b57fe5b6020026020010151614837565b86602001518281518110613f8857fe5b6020908102919091010152600101613f53565b5050614069565b8060021415614044576060613fb9613f18856147e9565b90508051604051908082528060200260200182016040528015613fe6578160200160208202803683370190505b50604086015260005b8151811015613f9b5761401482828151811061400757fe5b60200260200101516148ee565b8660400151828151811061402457fe5b6001600160a01b0390921660209283029190910190910152600101613fef565b806003141561385557614059613780846147e9565b63ffffffff166060850152600191505b600101613ed2565b80516001600160a01b031661429b5760005b816020015151811015614295576000826040015182815181106140a257fe5b60200260200101516001600160a01b0316612710846020015184815181106140c657fe5b60209081029190910101516040516000818181858888f193505050503d806000811461410e576040519150601f19603f3d011682016040523d82523d6000602084013e614113565b606091505b50509050806141d6577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415257fe5b60200260200101518560200151858151811061416a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428c565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420c57fe5b60200260200101518560200151858151811061422457fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614083565b506144f2565b60005b8160200151518110156144f057600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d357fe5b6020026020010151866020015186815181106142eb57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434257600080fd5b5087f1158015614356573d6000803e3d6000fd5b50505050506040513d602081101561436d57600080fd5b505190508015614431577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143ad57fe5b6020026020010151856020015185815181106143c557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144e7565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446757fe5b60200260200101518560200151858151811061447f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161429e565b505b50565b6144fd615020565b6000614507615020565b61450f6150ff565b61451b61375686614759565b90506000805b61452a836147c8565b15613862578061454757614540613780846147e9565b8452614751565b806001141561456f5761455c6137a1846147e9565b6001600160a01b03166020850152614751565b80600214156145fe576060614586613f18856147e9565b905080516040519080825280602002602001820160405280156145b3578160200160208202803683370190505b50604086015260005b81518110156145f7576145d4828281518110613f6b57fe5b866040015182815181106145e457fe5b60209081029190910101526001016145bc565b5050614751565b8060031415614693576060614615613f18856147e9565b90508051604051908082528060200260200182016040528015614642578160200160208202803683370190505b50606086015260005b81518110156145f75761466382828151811061400757fe5b8660600151828151811061467357fe5b6001600160a01b039092166020928302919091019091015260010161464b565b80600414156147285760606146aa613f18856147e9565b905080516040519080825280602002602001820160405280156146d7578160200160208202803683370190505b50608086015260005b81518110156145f7576146f882828151811061400757fe5b8660800151828151811061470857fe5b6001600160a01b03909216602092830291909101909101526001016146e0565b80600514156138555761473d613780846147e9565b67ffffffffffffffff1660a0850152600191505b600101614521565b61476161511f565b506040805180820190915281518152602082810190820152919050565b6147866150ff565b61478f82614df4565b61479857600080fd5b60006147a78360200151614e2e565b60208085015160408051808201909152868152920190820152915050919050565b60006147d261511f565b505080518051602091820151919092015191011190565b6147f161511f565b6147fa826147c8565b61480357600080fd5b6020820151600061481382614e91565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484c57508151602110155b61485557600080fd5b60006148648360200151614e2e565b905080836000015110156148bf576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e557826020036101000a820491505b50949350505050565b80516000906015146148ff57600080fd5b61228f82614837565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149415750600554155b156149835760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b15750808360400151105b156149c05760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a069163ffffffff61302716565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614aba57506018614ade565b6fffffffffffffffffffffffffffffffff198416614ada57506010614ade565b5060005b6020811015614b1457818181518110614af357fe5b01602001516001600160f81b03191615614b0c57614b14565b600101614ade565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b49576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b8e5750607f60f81b82600081518110614b7c57fe5b01602001516001600160f81b03191611155b15614b9a5750806113b2565b61228f614bac8351608060ff16614c2b565b835b6060806040519050835180825260208201818101602087015b81831015614bdf578051835260209283019201614bc7565b50855184518101855292509050808201602086015b81831015614c0c578051835260209283019201614bf4565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7b576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd55782840160f81b81600081518110614cb757fe5b60200101906001600160f81b031916908160001a905350905061228f565b6060614ce085614a76565b90508381510160370160f81b82600081518110614cf957fe5b60200101906001600160f81b031916908160001a905350614d1a8282614bae565b95945050505050565b6060614d2e82614df4565b614d3757600080fd5b6000614d4283614fc4565b9050606081604051908082528060200260200182016040528015614d8057816020015b614d6d61511f565b815260200190600190039081614d655790505b5090506000614d928560200151614e2e565b60208601510190506000805b84811015614de957614daf83614e91565b9150604051806040016040528083815260200184815250848281518110614dd257fe5b602090810291909101015291810191600101614d9e565b509195945050505050565b8051600090614e05575060006113b2565b6020820151805160001a9060c0821015614e24576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e485760009150506113b2565b60b8811080614e63575060c08110801590614e63575060f881105b15614e725760019150506113b2565b60c0811015614e865760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eac5760019150614fbd565b60b8811015614ec157607e1981019150614fbd565b60c0811015614f3b57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f35576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fbd565b60f8811015614f505760be1981019150614fbd565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbb576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd5575060006113b2565b60008090506000614fe98460200151614e2e565b602085015185519181019250015b808210156150175761500882614e91565b82019150826001019250614ff7565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061511261511f565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/TokenRecoverPortalContract b/core/systemcontracts/feynman/rialto/TokenRecoverPortalContract new file mode 100644 index 0000000000..02ccf7703f --- /dev/null +++ b/core/systemcontracts/feynman/rialto/TokenRecoverPortalContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b610118610144366004611696565b610328565b61016c610157366004611696565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a366004611696565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116b1565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b81525081565b60405161012d919061172d565b6101186104b3565b610118610613565b60695461016c9060ff1681565b610118610227366004611789565b61069f565b60335460ff1661016c565b61011861024536600461183a565b610abe565b61016c610258366004611914565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e1e565b6105ca61dead610e4b565b8015610610576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610643576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561066757604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106c557604051630f22c43960e41b8152611007600482015260240161054c565b61072f6040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610e9a9050565b156107f9576014811461075d5783838383604051630a5a604160e01b815260040161054c9493929190611956565b60006107a3601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610ef49050565b90506001600160a01b0381166107d45784848484604051630a5a604160e01b815260040161054c9493929190611956565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a7b565b61085e6040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610e9a9050565b1561092e5760695460ff1615610887576040516379b3306f60e11b815260040160405180910390fd5b602081146108b05783838383604051630a5a604160e01b815260040161054c9493929190611956565b604080516020601f84018190048102820181019092528281526000916108f1918585808385018382808284376000920191909152509293925050610ef49050565b9050806109195784848484604051630a5a604160e01b815260040161054c9493929190611956565b6068556069805460ff19166001179055610a7b565b6109a66040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610e9a9050565b15610a5a57601481146109d45783838383604051630a5a604160e01b815260040161054c9493929190611956565b6000610a1a601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610ef49050565b90506001600160a01b038116610a4b5784848484604051630a5a604160e01b815260040161054c9493929190611956565b610a5481610ef9565b50610a7b565b838383836040516325ee20d560e21b815260040161054c9493929190611956565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ab09493929190611956565b60405180910390a150505050565b60695460ff16610ae15760405163678f619760e11b815260040160405180910390fd5b606854610b015760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b2a57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b4e57604051631785c68160e01b815260040160405180910390fd5b610b56610f60565b6000610be489898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bdf8e8e33610fb9565b6110da565b90506000818c8c604051602001610bfd93929190611988565b604051602081830303815290604052805190602001209050610c2e816000908152606a602052604090205460ff1690565b15610c4b57604051623e493160e81b815260040160405180910390fd5b610cf33389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111b292505050565b610d348484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112bd565b610d51576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610db257600080fd5b505af1158015610dc6573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610dff94939291906119af565b60405180910390a15050610e1260018055565b50505050505050505050565b600054610100900460ff16610e455760405162461bcd60e51b815260040161054c906119e7565b60018055565b600054610100900460ff16610e725760405162461bcd60e51b815260040161054c906119e7565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ead9190611a32565b6040516020818303038152906040528051906020012083604051602001610ed49190611a32565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fb25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152506110168560405160200161100091815260200190565b60405160208183030381529060405260006112d3565b6040516bffffffffffffffffffffffff19606087901b16602082015261104f9060340160405160208183030381529060405260016112d3565b6110658860405160200161100091815260200190565b6040516020016110789493929190611a4e565b60408051601f198184030181529082905261109291611a32565b602060405180830381855afa1580156110af573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110d29190611b7d565b949350505050565b606083516021146110fe57604051638152ea1b60e01b815260040160405180910390fd5b825160401461112057604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161115e93929190611bac565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111a757600080fd5b509695505050505050565b606060005b825181101561121057818382815181106111d3576111d3611bef565b60200260200101516040516020016111ec929190611c05565b6040516020818303038152906040529150808061120890611c3d565b9150506111b7565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152508787866068548660405160200161125c96959493929190611c56565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661128d86836114a5565b6001600160a01b0316146112b4576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112ca858461153f565b14949350505050565b60606000835160026112e59190611cc7565b67ffffffffffffffff8111156112fd576112fd611b96565b6040519080825280601f01601f191660200182016040528015611327576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561146d5781825187838151811061137357611373611bef565b0160200151611385919060f81c611cf4565b8151811061139557611395611bef565b01602001516001600160f81b031916836113b0836002611cc7565b815181106113c0576113c0611bef565b60200101906001600160f81b031916908160001a9053508182518783815181106113ec576113ec611bef565b01602001516113fe919060f81c611d08565b8151811061140e5761140e611bef565b01602001516001600160f81b03191683611429836002611cc7565b611434906001611d1c565b8151811061144457611444611bef565b60200101906001600160f81b031916908160001a9053508061146581611c3d565b915050611355565b50831561149d57816040516020016114859190611d2f565b60405160208183030381529060405292505050610eee565b509392505050565b600082516041146114c9576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b8110156114f2576114ef601b82611d59565b90505b601b8160ff1610806115075750601c8160ff16115b15611525576040516356b00a4f60e11b815260040160405180910390fd5b600061153386838686611584565b50979650505050505050565b600081815b845181101561149d576115708286838151811061156357611563611bef565b6020026020010151611648565b91508061157c81611c3d565b915050611544565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115bb575060009050600361163f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561160f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116385760006001925092505061163f565b9150600090505b94509492505050565b6000818310611664576000828152602084905260409020611673565b60008381526020839052604090205b9392505050565b80356001600160a01b038116811461169157600080fd5b919050565b6000602082840312156116a857600080fd5b6116738261167a565b600080604083850312156116c457600080fd5b823591506116d46020840161167a565b90509250929050565b60005b838110156116f85781810151838201526020016116e0565b50506000910152565b600081518084526117198160208601602086016116dd565b601f01601f19169290920160200192915050565b6020815260006116736020830184611701565b60008083601f84011261175257600080fd5b50813567ffffffffffffffff81111561176a57600080fd5b60208301915083602082850101111561178257600080fd5b9250929050565b6000806000806040858703121561179f57600080fd5b843567ffffffffffffffff808211156117b757600080fd5b6117c388838901611740565b909650945060208701359150808211156117dc57600080fd5b506117e987828801611740565b95989497509550505050565b60008083601f84011261180757600080fd5b50813567ffffffffffffffff81111561181f57600080fd5b6020830191508360208260051b850101111561178257600080fd5b60008060008060008060008060008060c08b8d03121561185957600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561187f57600080fd5b61188b8e838f01611740565b909a50985060608d01359150808211156118a457600080fd5b6118b08e838f01611740565b909850965060808d01359150808211156118c957600080fd5b6118d58e838f01611740565b909650945060a08d01359150808211156118ee57600080fd5b506118fb8d828e016117f5565b915080935050809150509295989b9194979a5092959850565b60006020828403121561192657600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061196a60408301868861192d565b828103602084015261197d81858761192d565b979650505050505050565b6000845161199a8184602089016116dd565b91909101928352506020820152604001919050565b6080815260006119c26080830187611701565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a448184602087016116dd565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611a91816022850160208a016116dd565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611ae281604d840160208a016116dd565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b1281605c8401602089016116dd565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b4581606e8401602088016116dd565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611b8f57600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bbe8184602089016116dd565b845190830190611bd28183602089016116dd565b8451910190611be58183602088016116dd565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c178184602088016116dd565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c4f57611c4f611c27565b5060010190565b60008751611c68818460208c016116dd565b606088901b6bffffffffffffffffffffffff19169083019081528651611c95816014840160208b016116dd565b0160148101869052603481018590528351611cb78160548401602088016116dd565b0160540198975050505050505050565b8082028115828204841417610eee57610eee611c27565b634e487b7160e01b600052601260045260246000fd5b600082611d0357611d03611cde565b500490565b600082611d1757611d17611cde565b500690565b80820180821115610eee57610eee611c27565b61060f60f31b815260008251611d4c8160028501602087016116dd565b9190910160020192915050565b60ff8181168382160190811115610eee57610eee611c2756fea164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/rialto/ValidatorContract b/core/systemcontracts/feynman/rialto/ValidatorContract new file mode 100644 index 0000000000..dc5486f824 --- /dev/null +++ b/core/systemcontracts/feynman/rialto/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618f97565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618fc1565b34801561057757600080fd5b50610580610e42565b60405161054091906182aa565b34801561059957600080fd5b506105ad6105a8366004618190565b610e48565b604051610540919061843d565b3480156105c657600080fd5b506105cf611144565b6040516105409190618432565b3480156105e857600080fd5b5061051c6105f7366004617f9e565b61114d565b34801561060857600080fd5b50610533611823565b34801561061d57600080fd5b5061055e611829565b34801561063257600080fd5b5061058061182e565b34801561064757600080fd5b5061051c610656366004617efe565b611834565b34801561066757600080fd5b5061051c610676366004617f36565b6118e1565b34801561068757600080fd5b506105cf61069636600461813d565b611c2a565b3480156106a757600080fd5b506105cf6106b636600461813d565b611cf9565b3480156106c757600080fd5b5061051c6106d6366004617efe565b611daa565b3480156106e757600080fd5b506106f0611f0f565b604051610540929190618348565b34801561070a57600080fd5b506107136121eb565b6040516105409190618fd2565b34801561072c57600080fd5b506105806121f0565b34801561074157600080fd5b506105336121f6565b34801561075657600080fd5b5061075f6121fc565b6040516105409190618f88565b34801561077857600080fd5b50610713612202565b34801561078d57600080fd5b506106f0612207565b3480156107a257600080fd5b50610533612393565b3480156107b757600080fd5b50610580612399565b3480156107cc57600080fd5b5061058061239f565b3480156107e157600080fd5b506105cf6107f0366004617efe565b6123a5565b34801561080157600080fd5b50610533610810366004617efe565b6123da565b34801561082157600080fd5b5061071361242b565b34801561083657600080fd5b5061055e612430565b34801561084b57600080fd5b50610533612435565b34801561086057600080fd5b506105ad61086f36600461813d565b61243b565b34801561088057600080fd5b506105336124e1565b34801561089557600080fd5b506108a96108a436600461813d565b6124e7565b604051610540969594939291906182d7565b3480156108c757600080fd5b5061058061254b565b3480156108dc57600080fd5b50610713612551565b3480156108f157600080fd5b50610713612556565b34801561090657600080fd5b5061058061255b565b34801561091b57600080fd5b50610533612561565b34801561093057600080fd5b50610713612567565b34801561094557600080fd5b5061053361256c565b34801561095a57600080fd5b50610580612572565b34801561096f57600080fd5b5061055e612578565b34801561098457600080fd5b5061053361257d565b34801561099957600080fd5b5061051c6109a8366004618190565b612583565b3480156109b957600080fd5b506105336125e4565b3480156109ce57600080fd5b506105336125ea565b3480156109e357600080fd5b506105cf6125f0565b3480156109f857600080fd5b506105336125f9565b348015610a0d57600080fd5b50610533610a1c366004617efe565b6125ff565b348015610a2d57600080fd5b5061051c61263f565b348015610a4257600080fd5b50610713612753565b348015610a5757600080fd5b50610580612758565b348015610a6c57600080fd5b5061053361275e565b348015610a8157600080fd5b50610533612763565b348015610a9657600080fd5b50610580612768565b348015610aab57600080fd5b506105ad61276e565b348015610ac057600080fd5b506105cf61278a565b348015610ad557600080fd5b50610580612793565b348015610aea57600080fd5b50610580612799565b348015610aff57600080fd5b5061053361279f565b348015610b1457600080fd5b5061055e61242b565b348015610b2957600080fd5b5061051c610b383660046180e1565b6127a8565b348015610b4957600080fd5b50610533610b58366004617efe565b613061565b348015610b6957600080fd5b50610533613073565b348015610b7e57600080fd5b50610b87613080565b6040516105409190618335565b348015610ba057600080fd5b5061053361316c565b348015610bb557600080fd5b50610533613171565b348015610bca57600080fd5b50610533612551565b348015610bdf57600080fd5b50610580613177565b348015610bf457600080fd5b506105ad610c0336600461813d565b61317d565b348015610c1457600080fd5b5061053361318a565b348015610c2957600080fd5b506105336131c9565b348015610c3e57600080fd5b506105336131d5565b348015610c5357600080fd5b506105806131db565b348015610c6857600080fd5b506105806131e1565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c6131e7565b348015610ca757600080fd5b50610533613478565b348015610cbc57600080fd5b506105cf610ccb3660046180a2565b61347e565b348015610cdc57600080fd5b5061051c610ceb366004617efe565b613604565b348015610cfc57600080fd5b5061055e613708565b348015610d1157600080fd5b5061071361370d565b61051c610d28366004617efe565b613712565b348015610d3957600080fd5b50610533613a91565b348015610d4e57600080fd5b50610580613a97565b348015610d6357600080fd5b5061071361275e565b348015610d7857600080fd5b50610580613a9d565b348015610d8d57600080fd5b50610da1610d9c36600461813d565b613aa3565b60405161054093929190618fa0565b348015610dbc57600080fd5b50610580613b65565b6000610dd0336125ff565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ba3565b60405180910390fd5b6000610e2561318a565b9050610e32338383613b6b565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e1290618664565b600b54610f2b57610e7c617aaa565b60015460005b81811015610f2757600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff1916911515919091179055604086015180518794610f03936000805160206190c4833981519152909101920190617ad9565b506060820151610f199060038301906013617b53565b505050806001019050610e82565b5050505b610f33617b80565b6000610f7485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613e3092505050565b9150915080610f9057610f876064613fec565b9250505061113d565b815160009060ff16610fb557610fae8360200151846040015161404d565b9050611109565b825160ff166001141561110557826020015151600114610ffa57600080516020619084833981519152604051610fea90618a5c565b60405180910390a1506067611100565b6000836020015160008151811061100d57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061106e575060018082038154811061104e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110ac576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26110f9565b60006110bb836001840361520f565b9050806110f7576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b611109565b5060655b63ffffffff811661112e575050604080516000815260208101909152915061113d9050565b61113781613fec565b93505050505b9392505050565b60075460ff1681565b33411461116c5760405162461bcd60e51b8152600401610e1290618df3565b3a1561118a5760405162461bcd60e51b8152600401610e1290618ae2565b82516040805182815260208084028201019091526060908280156111c857816020015b6111b5617ba4565b8152602001906001900390816111ad5790505b50905060005b82811015611272576040518060c001604052808783815181106111ed57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061122f57fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061125f57fe5b60209081029190910101526001016111ce565b5060405163d31f968d60e01b81526120009063d31f968d9061129d9061100090600890600401618319565b60206040518083038186803b1580156112b557600080fd5b505afa1580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190618082565b156116105780516015548181111561138f57815b8181101561138d57601580548061131457fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061136757fe5b6001900381819060005260206000200160006113839190617bd9565b9055600101611301565b505b60005b828110156115cf578181106114b75760158482815181106113af57fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a00151600390910155855160169087908390811061147f57fe5b602090810291909101810151825460018101845560009384529282902081516114b19491909101929190910190617ad9565b506115c7565b8381815181106114c357fe5b6020026020010151601582815481106114d857fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a090910151600390910155855186908290811061159357fe5b6020026020010151601682815481106115a857fe5b9060005260206000200190805190602001906115c5929190617ad9565b505b600101611392565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516115ff9190618f97565b60405180910390a150505050610e32565b60608061161d83866155d2565b9150915060005b6001548110156117135760006001828154811061163d57fe5b90600052602060002090600402016003015490508060001461170a5760006001838154811061166857fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab826001858154811061169c57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116d7926001600160a01b0390921691016182aa565b6000604051808303818588803b1580156116f057600080fd5b505af1158015611704573d6000803e3d6000fd5b50505050505b50600101611624565b504715611781577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516117499190618f97565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561177f573d6000803e3d6000fd5b505b6000600381905560055581511561179c5761179c8282615ab9565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117d957600080fd5b505af11580156117ed573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118555760405162461bcd60e51b8152600401610e1290618f51565b60005b6015548110156118dd57816001600160a01b03166015828154811061187957fe5b60009182526020909120600490910201546001600160a01b031614156118d5576001601582815481106118a857fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118dd565b600101611858565b5050565b3341146119005760405162461bcd60e51b8152600401610e1290618df3565b60105443116119215760405162461bcd60e51b8152600401610e12906187f7565b3a1561193f5760405162461bcd60e51b8152600401610e1290618ae2565b60005460ff166119615760405162461bcd60e51b8152600401610e1290618664565b60006110023168056bc75e2d63100000811115611998576119918168056bc75e2d6310000063ffffffff6162a816565b915061199f565b5050611c20565b6040516309a99b4f60e41b815261100290639a99b4f0906119c690309086906004016182be565b602060405180830381600087803b1580156119e057600080fd5b505af11580156119f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a189190618155565b915081611a26575050611c20565b6000805b84811015611a5457858582818110611a3e57fe5b9050602002013582019150806001019050611a2a565b5080611a6257505050611c20565b6000806000805b89811015611c185784898983818110611a7e57fe5b90506020020135880281611a8e57fe5b0493508a8a82818110611a9d57fe5b9050602002016020810190611ab29190617efe565b6001600160a01b03811660009081526004602052604090205490935091508115611bce576000600180840381548110611ae757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b5457836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b479190618f97565b60405180910390a2611bc8565b600354611b67908663ffffffff6162ea16565b6003908155810154611b7f908663ffffffff6162ea16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611bbf908890618f97565b60405180910390a25b50611c10565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c079190618f97565b60405180910390a25b600101611a69565b505050505050505b5050436010555050565b6001546000908210611c3e57506000611cf4565b60006001600160a01b031660018381548110611c5657fe5b60009182526020909120600490910201546001600160a01b03161480611c8657506008541580611c865750600a54155b80611c95575060085460095410155b80611ca65750611ca482611cf9565b155b80611ccf57506000600b8381548110611cbb57fe5b906000526020600020906016020160000154115b80611ce357506001611cdf613080565b5111155b15611cf057506000611cf4565b5060015b919050565b6001546000908210611d0d57506000611cf4565b600b548210611d4a5760018281548110611d2357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611cf4565b60018281548110611d5757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611da45750600b8281548110611d8b57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e6857611db9617aaa565b60015460005b81811015611e6457600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff1916911515919091179055604086015180518794611e40936000805160206190c4833981519152909101920190617ad9565b506060820151611e569060038301906013617b53565b505050806001019050611dbf565b5050505b336110011480611e79575033612002145b611e955760405162461bcd60e51b8152600401610e129061869b565b6001600160a01b03811660009081526004602052604090205480611eb95750611f0c565b6001810390506000600b8281548110611ece57fe5b600091825260209091206001601690920201015460ff169050611ef1838361520f565b8015611efa5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f625760018181548110611f3057fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f5a576001909101905b600101611f1b565b50606081604051908082528060200260200182016040528015611f8f578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fc857816020015b6060815260200190600190039081611fb35790505b50600b54600094509091508414156121435760005b8481101561213d5760018181548110611ff257fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612135576001818154811061202257fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061204d57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061207a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121125780601f106120e757610100808354040283529160200191612112565b820191906000526020600020905b8154815290600101906020018083116120f557829003601f168201915b505050505082858151811061212357fe5b60209081029190910101526001909301925b600101611fdd565b506121df565b60005b848110156121dd576001818154811061215b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121d5576001818154811061218b57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121b657fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612146565b505b909450925050505b9091565b600181565b61100181565b60085481565b6102ca81565b600881565b6060806000600e549050600080600c5411612223576015612227565b600c545b90506060612233613080565b905060606122408261630f565b9050828251116122575790945092506121e7915050565b83838351031015612269578282510393505b831561229f576014430461228583838388880360008a8a61647d565b61229d8383838888038989038a8b8b8b51030161647d565b505b6060836040519080825280602002602001820160405280156122cb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561230457816020015b60608152602001906001900390816122ef5790505b50905060005b858110156123855784818151811061231e57fe5b602002602001015183828151811061233257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061235e57fe5b602002602001015182828151811061237257fe5b602090810291909101015260010161230a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123cd576000915050611cf4565b6000190161113d81611cf9565b6001600160a01b03811660009081526004602052604081205480612402576000915050611cf4565b60018082038154811061241157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061244857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124d95780601f106124ae576101008083540402835291602001916124d9565b820191906000526020600020905b8154815290600101906020018083116124bc57829003601f168201915b505050505081565b60105481565b600181815481106124f457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125a45760405162461bcd60e51b8152600401610e1290618da4565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125d793929190618fe0565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126355760405162461bcd60e51b8152600401610e1290618d2c565b6000190192915050565b600b546126fd5761264e617aaa565b60015460005b818110156126f957600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff19169115159190911790556040860151805187946126d5936000805160206190c4833981519152909101920190617ad9565b5060608201516126eb9060038301906013617b53565b505050806001019050612654565b5050505b60085461270a5760036008555b600a54612717576002600a555b6000612722336125ff565b905061272d81611c2a565b6127495760405162461bcd60e51b8152600401610e1290618a19565b611f0c33826165d4565b600981565b61100781565b600381565b601481565b61100681565b6040518060a00160405280607881526020016191046078913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ca5760405162461bcd60e51b8152600401610e1290618664565b33611007146127eb5760405162461bcd60e51b8152600401610e1290618b10565b61285584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b6020820152915061666c9050565b156128f2576020811461287a5760405162461bcd60e51b8152600401610e1290618ce6565b604080516020601f84018190048102820181019092528281526000916128b8918585808385018382808284376000920191909152506166c592505050565b9050606481101580156128ce5750620186a08111155b6128ea5760405162461bcd60e51b8152600401610e1290618909565b60025561301e565b61295284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b6020820152915061666c9050565b156129f557602081146129775760405162461bcd60e51b8152600401610e1290618482565b604080516020601f84018190048102820181019092528281526000916129b5918585808385018382808284376000920191909152506166c592505050565b90506127106129cf600f54836162ea90919063ffffffff16565b11156129ed5760405162461bcd60e51b8152600401610e12906184b9565b60065561301e565b612a5f84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b6020820152915061666c9050565b15612af95760208114612a845760405162461bcd60e51b8152600401610e1290618521565b604080516020601f8401819004810282018101909252828152600091612ac2918585808385018382808284376000920191909152506166c592505050565b600c5490915080612ad1575060155b808210612af05760405162461bcd60e51b8152600401610e1290618861565b5060085561301e565b612b6284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b6020820152915061666c9050565b15612bfb5760208114612b875760405162461bcd60e51b8152600401610e12906185ea565b604080516020601f8401819004810282018101909252828152600091612bc5918585808385018382808284376000920191909152506166c592505050565b9050600081118015612bd75750600a81105b612bf35760405162461bcd60e51b8152600401610e1290618e84565b600a5561301e565b612c6f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e64696461746573000000000000006020820152915061666c9050565b15612cfe5760208114612c945760405162461bcd60e51b8152600401610e129061859e565b604080516020601f8401819004810282018101909252828152600091612cd2918585808385018382808284376000920191909152506166c592505050565b9050600d54811115612cf65760405162461bcd60e51b8152600401610e129061897f565b600e5561301e565b612d6784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b6020820152915061666c9050565b15612de95760208114612d8c5760405162461bcd60e51b8152600401610e1290618b5e565b604080516020601f8401819004810282018101909252828152600091612dca918585808385018382808284376000920191909152506166c592505050565b600d819055600e54909150811015612de357600d54600e555b5061301e565b612e4d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b6020820152915061666c9050565b15612efb5760208114612e725760405162461bcd60e51b8152600401610e129061862f565b604080516020601f8401819004810282018101909252828152600091612eb0918585808385018382808284376000920191909152506166c592505050565b905060008111612ed25760405162461bcd60e51b8152600401610e1290618709565b6064811115612ef35760405162461bcd60e51b8152600401610e1290618751565b600c5561301e565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b6020820152915061666c9050565b156130065760208114612f885760405162461bcd60e51b8152600401610e1290618e40565b604080516020601f8401819004810282018101909252828152600091612fc6918585808385018382808284376000920191909152506166c592505050565b9050612710612fe0600654836162ea90919063ffffffff16565b1115612ffe5760405162461bcd60e51b8152600401610e1290618c47565b600f5561301e565b60405162461bcd60e51b8152600401610e1290618ee1565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130539493929190618450565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130af5761309b81611cf9565b156130a7578160010191505b60010161308a565b506060816040519080825280602002602001820160405280156130dc578160200160208202803683370190505b5090506000915060005b83811015613163576130f781611cf9565b1561315b576001818154811061310957fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061313457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b6001016130e6565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061244857fe5b6000613194613080565b519050600080600c54116131a95760156131ad565b600c545b9050808211156131bb578091505b816131c557600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561320a5760405162461bcd60e51b8152600401610e1290618c10565b613212617b80565b60006132356040518060a001604052806078815260200161910460789139613e30565b91509150806132565760405162461bcd60e51b8152600401610e1290618d63565b61325e617aaa565b60005b83602001515181101561345f57600b805460018101825560009190915282516000805160206190a483398151915260169092029182019081556020808501516000805160206190e48339815191528401805460ff19169115159190911790556040850151805186946132e7936000805160206190c4833981519152909101920190617ad9565b5060608201516132fd9060038301906013617b53565b5050508360400151818151811061331057fe5b6020026020010151600b828154811061332557fe5b90600052602060002090601602016002019080519060200190613349929190617ad9565b5060018460200151828151811061335c57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591870151805191850193918590811061343257fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613261565b50506103e860025550506000805460ff19166001179055565b600d5481565b601354600090815b818110156135875761356f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506013805490925085915081106134d757fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156135655780601f1061353a57610100808354040283529160200191613565565b820191906000526020600020905b81548152906001019060200180831161354857829003601f168201915b50505050506166ca565b1561357f57600192505050611da4565b600101613486565b5060125460005b818110156135f8576135df86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506012805490925085915081106134d757fe5b156135f05760019350505050611da4565b60010161358e565b50600095945050505050565b33611001146136255760405162461bcd60e51b8152600401610e1290618f08565b600b546136e357613634617aaa565b60015460005b818110156136df57600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff19169115159190911790556040860151805187946136bb936000805160206190c4833981519152909101920190617ad9565b5060608201516136d19060038301906013617b53565b50505080600101905061363a565b5050505b60006136ee8261672e565b90506136f981611c2a565b156118dd576118dd82826165d4565b606581565b601181565b3341146137315760405162461bcd60e51b8152600401610e1290618df3565b60005460ff166137535760405162461bcd60e51b8152600401610e1290618664565b600034116137735760405162461bcd60e51b8152600401610e1290618950565b3a156137915760405162461bcd60e51b8152600401610e1290618ae2565b6001600160a01b03811660009081526004602052604090205460145434919060ff166137d157610271600f556103e86006556014805460ff191660011790555b6000821180156137e357506000600f54115b15613895576000613811612710613805600f54346168b190919063ffffffff16565b9063ffffffff6168eb16565b90508015613893576040516110029082156108fc029083906000818181858888f19350505050158015613848573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516138789190618f97565b60405180910390a1613890838263ffffffff6162a816565b92505b505b6000821180156138a757506000600654115b1561394d5760006138c9612710613805600654346168b190919063ffffffff16565b9050801561394b5760405161dead9082156108fc029083906000818181858888f19350505050158015613900573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516139309190618f97565b60405180910390a1613948838263ffffffff6162a816565b92505b505b8015613a4b57600060018083038154811061396457fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156139d157836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139c49190618f97565b60405180910390a2613a45565b6003546139e4908463ffffffff6162ea16565b60039081558101546139fc908463ffffffff6162ea16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590613a3c908690618f97565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b483604051613a849190618f97565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b8181548110613ab057fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613b5b5780601f10613b3057610100808354040283529160200191613b5b565b820191906000526020600020905b815481529060010190602001808311613b3e57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613b7c575081155b80613b875750600954155b15613b945750600061113d565b6000613bce600a5461380585613805600b8981548110613bb057fe5b6000918252602090912060169091020154439063ffffffff6162a816565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613c0d57600080fd5b505afa158015613c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c45919061816d565b9150915060009350808310613da457613c5e878761520f565b5060405163436aa28360e11b8152600090612002906386d5450690613c87908b906004016182aa565b60206040518083038186803b158015613c9f57600080fd5b505afa158015613cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cd79190617f1a565b6001600160a01b031614613d43576040516313d13bdb60e31b815261100190639e89ded890613d0c908a9087906004016182be565b600060405180830381600087803b158015613d2657600080fd5b505af1158015613d3a573d6000803e3d6000fd5b50505050613d9b565b6040516305bfb49960e41b815261100190635bfb499090613d68908a906004016182aa565b600060405180830381600087803b158015613d8257600080fd5b505af1158015613d96573d6000803e3d6000fd5b505050505b60019350613db6565b818310613db657613db48761672e565b505b60098054600019019055600b80546000919088908110613dd257fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613e38617b80565b6000613e42617b80565b613e4a617c1d565b613e5b613e568661692d565b616952565b90506000805b613e6a8361699c565b15613fde5780613e8f57613e85613e80846169bd565b616a0b565b60ff168452613fd6565b8060011415613fd1576060613eab613ea6856169bd565b616a8b565b90508051604051908082528060200260200182016040528015613ee857816020015b613ed5617ba4565b815260200190600190039081613ecd5790505b5085602001819052508051604051908082528060200260200182016040528015613f2657816020015b6060815260200190600190039081613f115790505b50604086015260005b8151811015613fc657613f40617ba4565b60606000613f60858581518110613f5357fe5b6020026020010151616b5c565b92509250925080613f80578860009a509a50505050505050505050613fe7565b8289602001518581518110613f9157fe5b60200260200101819052508189604001518581518110613fad57fe5b6020026020010181905250505050806001019050613f2f565b506001925050613fd6565b613fde565b600101613e61565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161400657905050905061402c8363ffffffff16616c76565b8160008151811061403957fe5b602002602001018190525061113d81616c89565b600060648351111561408457600080516020619084833981519152604051614074906187ae565b60405180910390a1506066611da4565b60005b83518110156141225760005b81811015614119578481815181106140a757fe5b6020026020010151600001516001600160a01b03168583815181106140c857fe5b6020026020010151600001516001600160a01b03161415614111576000805160206190848339815191526040516140fe906188be565b60405180910390a1606692505050611da4565b600101614093565b50600101614087565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141d45760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161414a565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156142a95760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156142955780601f1061426a57610100808354040283529160200191614295565b820191906000526020600020905b81548152906001019060200180831161427857829003601f168201915b5050505050815260200190600101906141fe565b50505050905060005b8251811015614306578281815181106142c757fe5b6020026020010151606001516003028382815181106142e257fe5b60209081029190910101516001600160401b039091166060909101526001016142b2565b5060608061431689898686616d13565b9150915061432482826155d2565b60015460408051828152602080840282010190915292985090965060009550859450925060609150828015614363578160200160208202803683370190505b50905060005b828110156144f45760006001600160a01b03166120026001600160a01b03166386d545066001848154811061439a57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b1681526143d5926001600160a01b0390921691016182aa565b60206040518083038186803b1580156143ed57600080fd5b505afa158015614401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144259190617f1a565b6001600160a01b03161461448757600182828151811061444157fe5b602002602001019060ff16908160ff16815250506001818154811061446257fe5b906000526020600020906004020160030154600014614482578360010193505b6144ec565b67016345785d8a00006001828154811061449d57fe5b906000526020600020906004020160030154106144bf578460010194506144ec565b600181815481106144cc57fe5b9060005260206000209060040201600301546000146144ec578360010193505b600101614369565b50606084604051908082528060200260200182016040528015614521578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614550578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561457f578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156145ae578160200160208202803683370190505b50905060006060886040519080825280602002602001820160405280156145df578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561460e578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561465657600080fd5b505afa15801561466a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061468e9190618155565b905067016345785d8a00008111156146da576000805160206190848339815191526040516146bb90618bcf565b60405180910390a160689e505050505050505050505050505050611da4565b60005b8a811015614a6e578981815181106146f157fe5b602002602001015160ff16600114156147e7576001818154811061471157fe5b9060005260206000209060040201600301546000146147e2576001818154811061473757fe5b600091825260209091206004909102015484516001600160a01b039091169085908e90811061476257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061478f57fe5b906000526020600020906004020160030154838d815181106147ad57fe5b60200260200101818152505060018a8d815181106147c757fe5b602002602001019060ff16908160ff16815250508b6001019b505b614a66565b67016345785d8a0000600182815481106147fd57fe5b90600052602060002090600402016003015410614982576001818154811061482157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061485257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061488757fe5b906000526020600020906004020160030154816148a057fe5b06600183815481106148ae57fe5b9060005260206000209060040201600301540390506148d683826162a890919063ffffffff16565b898f815181106148e257fe5b602002602001018181525050600182815481106148fb57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061492c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061495957fe5b6020908102919091010152614974868263ffffffff6162ea16565b95508d6001019d5050614a66565b6001818154811061498f57fe5b906000526020600020906004020160030154600014614a6657600181815481106149b557fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d815181106149e657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110614a1357fe5b906000526020600020906004020160030154838d81518110614a3157fe5b60200260200101818152505060008a8d81518110614a4b57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6001016146dd565b5060008415614ce4576002546040516303702b2960e51b815261100491636e056520918891614aa8918e918e918d914201906004016183b8565b6020604051808303818588803b158015614ac157600080fd5b505af193505050508015614af2575060408051601f3d908101601f19168201909252614aef91810190618082565b60015b614c69576040516000815260443d1015614b0e57506000614ba9565b60046000803e60005160e01c6308c379a08114614b2f576000915050614ba9565b60043d036004833e81513d60248201116001600160401b0382111715614b5a57600092505050614ba9565b80830180516001600160401b03811115614b7b576000945050505050614ba9565b8060208301013d8601811115614b9957600095505050505050614ba9565b601f01601f191660405250925050505b80614bb45750614bf6565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614be8919061843d565b60405180910390a250614c64565b3d808015614c20576040519150601f19603f3d011682016040523d82523d6000602084013e614c25565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614c5a919061843d565b60405180910390a2505b614ce4565b8015614cab577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614c9e9190618f97565b60405180910390a1614ce2565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614cd990618567565b60405180910390a25b505b8015614e9a5760005b8751811015614e98576000888281518110614d0457fe5b60200260200101519050600060018281548110614d1d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614d4e57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614e0a5760018281548110614d8f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614dde57fe5b906000526020600020906004020160030154604051614dfd9190618f97565b60405180910390a2614e8e565b60018281548110614e1757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614e6657fe5b906000526020600020906004020160030154604051614e859190618f97565b60405180910390a25b5050600101614ced565b505b8351156150905760005b845181101561508e578a8181518110614eb957fe5b602002602001015160ff1660011415614f58576120026001600160a01b031663092193ab858381518110614ee957fe5b6020026020010151878481518110614efd57fe5b60200260200101516040518363ffffffff1660e01b8152600401614f2191906182aa565b6000604051808303818588803b158015614f3a57600080fd5b505af1158015614f4e573d6000803e3d6000fd5b5050505050615086565b6000858281518110614f6657fe5b60200260200101516001600160a01b03166108fc868481518110614f8657fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561501c57858281518110614fbc57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614ffa57fe5b602002602001015160405161500f9190618f97565b60405180910390a2615084565b85828151811061502857fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d86848151811061506657fe5b602002602001015160405161507b9190618f97565b60405180910390a25b505b600101614ea4565b505b5050505050505050505050505060005b6001548110156150fd57600181815481106150b757fe5b9060005260206000209060040201600301546000146150f5576000600182815481106150df57fe5b9060005260206000209060040201600301819055505b6001016150a0565b50471561516b577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516151339190618f97565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015615169573d6000803e3d6000fd5b505b60006003819055600555815115615186576151868282615ab9565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156151c357600080fd5b505af11580156151d7573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061521f57fe5b90600052602060002090600402016003015490506000600180805490500390506001615249613080565b511161527e5760006001858154811061525e57fe5b906000526020600020906004020160030181905550600092505050611da4565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516152b79190618f97565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156154a457600181600101815481106152f857fe5b90600052602060002090600402016001828154811061531357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106153d457fe5b9060005260206000209060160201600b82815481106153ef57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615446938386019390821615610100026000190190911604617c3d565b5061545960038281019084016013617cb2565b5090505080600101600460006001848154811061547257fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016152da565b5060018054806154b057fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061550357fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906155356002830182617bd9565b615543600383016000617cdc565b50509055600081838161555257fe5b04905080156155c65760015460005b818110156155c35761559a836001838154811061557a57fe5b9060005260206000209060040201600301546162ea90919063ffffffff16565b600182815481106155a757fe5b6000918252602090912060036004909202010155600101615561565b50505b50600195945050505050565b6060806000808080806155e361318a565b6001549091505b801561581257600181039250600b838154811061560357fe5b600091825260209091206001601690920201015460ff1661562357615809565b6001838154811061563057fe5b60009182526020909120600490910201546001600160a01b03169450615657858484613b6b565b93508361566357615809565b60405163436aa28360e11b81526000908190612002906386d545069061568d908a906004016182aa565b60206040518083038186803b1580156156a557600080fd5b505afa1580156156b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156dd9190617f1a565b90506001600160a01b03811615615766576040516302ceee9160e11b81526120029063059ddd22906157139084906004016182aa565b60206040518083038186803b15801561572b57600080fd5b505afa15801561573f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906157639190617f1a565b91505b60005b8c5181101561580557876001600160a01b03168d828151811061578857fe5b6020026020010151600001516001600160a01b031614806157d15750826001600160a01b03168d82815181106157ba57fe5b6020026020010151600001516001600160a01b0316145b156157fd5760018d82815181106157e457fe5b6020908102919091010151901515608090910152615805565b600101615769565b5050505b600019016155ea565b5060005b895181101561587f5789818151811061582b57fe5b6020026020010151608001518061586b575060006001600160a01b03168a828151811061585457fe5b6020026020010151600001516001600160a01b0316145b15615877578560010195505b600101615816565b50885185106159675760408051600180825281830190925290816020015b6158a5617ba4565b81526020019060019003908161589d575050604080516001808252818301909252919850602082015b60608152602001906001900390816158ce579050509550886000815181106158f257fe5b60200260200101518760008151811061590757fe5b60200260200101819052508760008151811061591f57fe5b60200260200101518660008151811061593457fe5b602002602001018190525060008760008151811061594e57fe5b6020908102919091010151901515608090910152615aac565b848951036040519080825280602002602001820160405280156159a457816020015b615991617ba4565b8152602001906001900390816159895790505b509650848951036040519080825280602002602001820160405280156159de57816020015b60608152602001906001900390816159c95790505b5095506000915060005b8951811015615aaa578981815181106159fd57fe5b602002602001015160800151158015615a40575060006001600160a01b03168a8281518110615a2857fe5b6020026020010151600001516001600160a01b031614155b15615aa257898181518110615a5157fe5b6020026020010151888481518110615a6557fe5b6020026020010181905250888181518110615a7c57fe5b6020026020010151878481518110615a9057fe5b60200260200101819052508260010192505b6001016159e8565b505b50505050505b9250929050565b600154825160005b82811015615bd6576001615ad3617ba4565b60018381548110615ae057fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615baa57878181518110615b7057fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ba25760009250615baa565b600101615b5c565b508115615bcc5780516001600160a01b03166000908152600460205260408120555b5050600101615ac1565b5080821115615c9557805b82811015615c93576001805480615bf457fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615c4757fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615c796002830182617bd9565b615c87600383016000617cdc565b50509055600101615be1565b505b6000818310615ca45781615ca6565b825b905060005b8181101561604a57615d58868281518110615cc257fe5b602002602001015160018381548110615cd757fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526170df565b615f0c578060010160046000888481518110615d7057fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615dac57fe5b602002602001015160018281548110615dc157fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615e7c57fe5b6020026020010151600b8281548110615e9157fe5b90600052602060002090601602016002019080519060200190615eb5929190617ad9565b506000600b8281548110615ec557fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615ef657fe5b6000918252602090912060169091020155616042565b858181518110615f1857fe5b60200260200101516060015160018281548110615f3157fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615ff7858281518110615f7557fe5b6020026020010151600b8381548110615f8a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156135655780601f1061353a57610100808354040283529160200191613565565b6160425784818151811061600757fe5b6020026020010151600b828154811061601c57fe5b90600052602060002090601602016002019080519060200190616040929190617ad9565b505b600101615cab565b50828211156162225761605b617aaa565b835b8381101561621f5785818151811061607157fe5b60200260200101518260400181905250600187828151811061608f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206190a48339815191528101918255858301516000805160206190e48339815191528201805491151560ff19909216919091179055928501518051869492936161c5936000805160206190c483398151915201920190617ad9565b5060608201516161db9060038301906013617b53565b50505080600101600460008984815181106161f257fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161605d565b50505b61622a61713b565b616232617323565b6000600981905560015493505b838110156162a0576000600b828154811061625657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061628757fe5b600091825260209091206016909102015560010161623f565b505050505050565b600061113d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617511565b60008282018381101561113d5760405162461bcd60e51b8152600401610e12906186d2565b60015481516040805182815260208084028201019091526060929190839082801561634e57816020015b60608152602001906001900390816163395790505b50600b549091508314616365579250611cf4915050565b60005b8281101561647457600b60016004600089858151811061638457fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106163b857fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156164505780601f1061642557610100808354040283529160200191616450565b820191906000526020600020905b81548152906001019060200180831161643357829003601f168201915b505050505082828151811061646157fe5b6020908102919091010152600101616368565b50949350505050565b60005b828110156165ca57600082878388016040516020016164a092919061829c565b6040516020818303038152906040528051906020012060001c816164c057fe5b069050808501828701146165c157600089838801815181106164de57fe5b60200260200101519050606089848901815181106164f857fe5b602002602001015190508a8388018151811061651057fe5b60200260200101518b858a018151811061652657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061655557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061658357fe5b60200260200101518a858a018151811061659957fe5b6020026020010181905250808a848901815181106165b357fe5b602002602001018190525050505b50600101616480565b5050505050505050565b600980546001908101909155600b8054839081106165ee57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061662457fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161667f9190618280565b60405160208183030381529060405280519060200120836040516020016166a69190618280565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166e65760009250616724565b600160208701838101602088015b60028483851001141561671f5780518351146167135760009650600093505b602092830192016166f4565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061675757506000199050611cf4565b60018103905060006001828154811061676c57fe5b906000526020600020906004020160030154905060006001838154811061678f57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d906167e8908590618f97565b60405180910390a28061680057829350505050611cf4565b600081838161680b57fe5b04905080156168a75760005b8481101561685957616830826001838154811061557a57fe5b6001828154811061683d57fe5b6000918252602090912060036004909202010155600101616817565b50600180549085015b818110156168a45761687b836001838154811061557a57fe5b6001828154811061688857fe5b6000918252602090912060036004909202010155600101616862565b50505b5091949350505050565b6000826168c057506000611da4565b828202828482816168cd57fe5b041461113d5760405162461bcd60e51b8152600401610e1290618aa1565b600061113d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061753d565b616935617ceb565b506040805180820190915281518152602082810190820152919050565b61695a617c1d565b61696382617574565b61696c57600080fd5b600061697b83602001516175ae565b60208085015160408051808201909152868152920190820152915050919050565b60006169a6617ceb565b505080518051602091820151919092015191011190565b6169c5617ceb565b6169ce8261699c565b6169d757600080fd5b602082015160006169e782617611565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590616a2057508151602110155b616a2957600080fd5b6000616a3883602001516175ae565b90508083600001511015616a5e5760405162461bcd60e51b8152600401610e1290618caf565b82516020808501518301805192849003929183101561647457506020919091036101000a90049392505050565b6060616a9682617574565b616a9f57600080fd5b6000616aaa836176f2565b9050606081604051908082528060200260200182016040528015616ae857816020015b616ad5617ceb565b815260200190600190039081616acd5790505b5090506000616afa85602001516175ae565b60208601510190506000805b84811015616b5157616b1783617611565b9150604051806040016040528083815260200184815250848281518110616b3a57fe5b602090810291909101015291810191600101616b06565b509195945050505050565b616b64617ba4565b60606000616b70617ba4565b6060616b7a617c1d565b616b8387616952565b90506000805b616b928361699c565b15616c675780616bbd57616bad616ba8846169bd565b61774e565b6001600160a01b03168552616c5f565b8060011415616be557616bd2616ba8846169bd565b6001600160a01b03166020860152616c5f565b8060021415616c0d57616bfa616ba8846169bd565b6001600160a01b03166040860152616c5f565b8060031415616c3957616c22613e80846169bd565b6001600160401b0316606086015260019150616c5f565b8060041415616c5a57616c53616c4e846169bd565b617768565b9350616c5f565b616c67565b600101616b89565b50929791965091945092505050565b6060611da4616c84836177d8565b6178be565b6060815160001415616caa5750604080516000815260208101909152611cf4565b606082600081518110616cb957fe5b602002602001015190506000600190505b8351811015616cfa57616cf082858381518110616ce357fe5b6020026020010151617910565b9150600101616cca565b5061113d616d0d825160c060ff1661798d565b82617910565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616d5357600080fd5b505afa158015616d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616d8b9190618155565b90508085518851011015616da0575083518651015b606081604051908082528060200260200182016040528015616ddc57816020015b616dc9617ba4565b815260200190600190039081616dc15790505b509050606082604051908082528060200260200182016040528015616e1557816020015b6060815260200190600190039081616e005790505b50905060008060005b8b51831080616e2d5750895182105b8015616e3857508581105b156170cd578b51831415616ea857898281518110616e5257fe5b6020026020010151858281518110616e6657fe5b6020026020010181905250888281518110616e7d57fe5b6020026020010151848281518110616e9157fe5b602090810291909101015260019182019101616e1e565b8951821415616f13578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602090810291909101015260019283019201616e1e565b898281518110616f1f57fe5b6020026020010151606001516001600160401b03168c8481518110616f4057fe5b6020026020010151606001516001600160401b03161115616fbc578b8381518110616f6757fe5b6020026020010151858281518110616f7b57fe5b60200260200101819052508a8381518110616f9257fe5b6020026020010151848281518110616fa657fe5b60200260200101819052508260010192506170c5565b898281518110616fc857fe5b6020026020010151606001516001600160401b03168c8481518110616fe957fe5b6020026020010151606001516001600160401b031610156170655789828151811061701057fe5b602002602001015185828151811061702457fe5b602002602001018190525088828151811061703b57fe5b602002602001015184828151811061704f57fe5b60200260200101819052508160010191506170c5565b89828151811061707157fe5b6020026020010151600001516001600160a01b03168c848151811061709257fe5b6020026020010151600001516001600160a01b031610156170b9578b8381518110616f6757fe5b898281518110616e5257fe5b600101616e1e565b50929a91995090975050505050505050565b805182516000916001600160a01b039182169116148015617119575081602001516001600160a01b031683602001516001600160a01b0316145b801561113d5750506040908101519101516001600160a01b0390811691161490565b6012546013548082111561718657805b8281101561718457601280548061715e57fe5b60019003818190600052602060002001600061717a9190617bd9565b905560010161714b565b505b60008183106171955781617197565b825b905060005b818110156172af57617254601282815481106171b457fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156172425780601f1061721757610100808354040283529160200191617242565b820191906000526020600020905b81548152906001019060200180831161722557829003601f168201915b5050505050601383815481106134d757fe5b6172a7576013818154811061726557fe5b906000526020600020016012828154811061727c57fe5b9060005260206000200190805460018160011615610100020316600290046172a5929190617c3d565b505b60010161719c565b5082821115610e3257825b8281101561731d576012601382815481106172d157fe5b6000918252602080832084546001818101875595855291909320929091018054617314949390920192909160026101009282161592909202600019011604617c3d565b506001016172ba565b50505050565b601354600b548082111561736e57805b8281101561736c57601380548061734657fe5b6001900381819060005260206000200160006173629190617bd9565b9055600101617333565b505b600081831061737d578161737f565b825b905060005b8181101561749e5761743c6013828154811061739c57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561742a5780601f106173ff5761010080835404028352916020019161742a565b820191906000526020600020905b81548152906001019060200180831161740d57829003601f168201915b5050505050600b8381548110615f8a57fe5b61749657600b818154811061744d57fe5b90600052602060002090601602016002016013828154811061746b57fe5b906000526020600020019080546001816001161561010002031660029004617494929190617c3d565b505b600101617384565b5082821115610e3257825b8281101561731d576013600b82815481106174c057fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461750895939094019390926000199082161561010002011604617c3d565b506001016174a9565b600081848411156175355760405162461bcd60e51b8152600401610e12919061843d565b505050900390565b6000818361755e5760405162461bcd60e51b8152600401610e12919061843d565b50600083858161756a57fe5b0495945050505050565b805160009061758557506000611cf4565b6020820151805160001a9060c08210156175a457600092505050611cf4565b5060019392505050565b8051600090811a60808110156175c8576000915050611cf4565b60b88110806175e3575060c081108015906175e3575060f881105b156175f2576001915050611cf4565b60c08110156176065760b519019050611cf4565b60f519019050611cf4565b80516000908190811a608081101561762c57600191506176eb565b60b881101561764157607e19810191506176eb565b60c081101561769257600060b78203600186019550806020036101000a86510491506001810182019350508083101561768c5760405162461bcd60e51b8152600401610e12906189ee565b506176eb565b60f88110156176a75760be19810191506176eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156176e95760405162461bcd60e51b8152600401610e12906189ee565b505b5092915050565b805160009061770357506000611cf4565b6000809050600061771784602001516175ae565b602085015185519181019250015b808210156177455761773682617611565b82019150826001019250617725565b50909392505050565b805160009060151461775f57600080fd5b611da482616a0b565b805160609061777657600080fd5b600061778583602001516175ae565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156177bc576020820181803683370190505b5090506000816020019050616474848760200151018285617a5f565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661781c57506018617840565b6fffffffffffffffffffffffffffffffff19841661783c57506010617840565b5060005b60208110156178765781818151811061785557fe5b01602001516001600160f81b0319161561786e57617876565b600101617840565b60008160200390506060816040519080825280601f01601f1916602001820160405280156178ab576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178f05750607f60f81b826000815181106178de57fe5b01602001516001600160f81b03191611155b156178fc575080611cf4565b611da461790e8351608060ff1661798d565b835b6060806040519050835180825260208201818101602087015b81831015617941578051835260209283019201617929565b50855184518101855292509050808201602086015b8183101561796e578051835260209283019201617956565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106179b75760405162461bcd60e51b8152600401610e1290618839565b60408051600180825281830190925260609160208201818036833701905050905060378411617a115782840160f81b816000815181106179f357fe5b60200101906001600160f81b031916908160001a9053509050611da4565b6060617a1c856177d8565b90508381510160370160f81b82600081518110617a3557fe5b60200101906001600160f81b031916908160001a905350617a568282617910565b95945050505050565b80617a6957610e32565b5b60208110617a89578251825260209283019290910190601f1901617a6a565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617ad4617d05565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617b1a57805160ff1916838001178555617b47565b82800160010185558215617b47579182015b82811115617b47578251825591602001919060010190617b2c565b506131c5929150617d24565b8260138101928215617b475791602002820182811115617b47578251825591602001919060010190617b2c565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617bff5750611f0c565b601f016020900490600052602060002090810190611f0c9190617d24565b6040518060400160405280617c30617ceb565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617c765780548555617b47565b82800160010185558215617b4757600052602060002091601f016020900482015b82811115617b47578254825591600101919060010190617c97565b8260138101928215617b475791820182811115617b47578254825591600101919060010190617c97565b50611f0c906013810190617d24565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61316991905b808211156131c55760008155600101617d2a565b8035611da48161906e565b60008083601f840112617d5a578182fd5b5081356001600160401b03811115617d70578182fd5b6020830191508360208083028501011115615ab257600080fd5b6000601f8381840112617d9b578182fd5b8235617dae617da982619023565b618ffd565b818152925060208084019085810160005b84811015617e40578135880189603f820112617dda57600080fd5b838101356001600160401b03811115617df257600080fd5b617e03818901601f19168601618ffd565b81815260408c81848601011115617e1957600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617dbf565b50505050505092915050565b600082601f830112617e5c578081fd5b8135617e6a617da982619023565b818152915060208083019084810181840286018201871015617e8b57600080fd5b6000805b85811015617e405782356001600160401b0381168114617ead578283fd5b85529383019391830191600101617e8f565b60008083601f840112617ed0578182fd5b5081356001600160401b03811115617ee6578182fd5b602083019150836020828501011115615ab257600080fd5b600060208284031215617f0f578081fd5b813561113d8161906e565b600060208284031215617f2b578081fd5b815161113d8161906e565b60008060008060408587031215617f4b578283fd5b84356001600160401b0380821115617f61578485fd5b617f6d88838901617d49565b90965094506020870135915080821115617f85578384fd5b50617f9287828801617d49565b95989497509550505050565b600080600060608486031215617fb2578283fd5b83356001600160401b0380821115617fc8578485fd5b81860187601f820112617fd9578586fd5b80359250617fe9617da984619023565b80848252602080830192508084018b82838902870101111561800957898afd5b8994505b868510156180335761801f8c82617d3e565b84526001949094019392810192810161800d565b50909750880135935050508082111561804a578384fd5b61805687838801617e4c565b9350604086013591508082111561806b578283fd5b5061807886828701617d8a565b9150509250925092565b600060208284031215618093578081fd5b8151801515811461113d578182fd5b600080602083850312156180b4578182fd5b82356001600160401b038111156180c9578283fd5b6180d585828601617ebf565b90969095509350505050565b600080600080604085870312156180f6578384fd5b84356001600160401b038082111561810c578586fd5b61811888838901617ebf565b90965094506020870135915080821115618130578384fd5b50617f9287828801617ebf565b60006020828403121561814e578081fd5b5035919050565b600060208284031215618166578081fd5b5051919050565b6000806040838503121561817f578182fd5b505080516020909101519092909150565b6000806000604084860312156181a4578081fd5b833560ff811681146181b4578182fd5b925060208401356001600160401b038111156181ce578182fd5b6181da86828701617ebf565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561821f5781516001600160a01b0316875295820195908201906001016181fa565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261826c816020860160208601619042565b601f01601f19169290920160200192915050565b60008251618292818460208701619042565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261113d60208301846181e7565b60006040825261835b60408301856181e7565b602083820381850152818551808452828401915082838202850101838801865b838110156183a957601f19878403018552618397838351618254565b9486019492509085019060010161837b565b50909998505050505050505050565b6000608082526183cb60808301876181e7565b828103602084810191909152865180835287820192820190845b81811015618401578451835293830193918301916001016183e5565b5050848103604086015261841581886181e7565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261113d6020830184618254565b60006040825261846460408301868861822a565b828103602084015261847781858761822a565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152617a566060830184618254565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152617a5660408301848661822a565b6040518181016001600160401b038111828210171561901b57600080fd5b604052919050565b60006001600160401b03821115619038578081fd5b5060209081020190565b60005b8381101561905d578181015183820152602001619045565b8381111561731d5750506000910152565b6001600160a01b0381168114611f0c57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaf87680f873f871949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d79164b085e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman/types.go b/core/systemcontracts/feynman/types.go new file mode 100644 index 0000000000..35d73f50bd --- /dev/null +++ b/core/systemcontracts/feynman/types.go @@ -0,0 +1,87 @@ +package feynman + +import _ "embed" + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/ValidatorContract + MainnetValidatorContract string + //go:embed mainnet/SlashContract + MainnetSlashContract string + //go:embed mainnet/TokenHubContract + MainnetTokenHubContract string + //go:embed mainnet/GovHubContract + MainnetGovHubContract string + //go:embed mainnet/CrossChainContract + MainnetCrossChainContract string + //go:embed mainnet/StakingContract + MainnetStakingContract string + //go:embed mainnet/StakeHubContract + MainnetStakeHubContract string + //go:embed mainnet/StakeCreditContract + MainnetStakeCreditContract string + //go:embed mainnet/GovernorContract + MainnetGovernorContract string + //go:embed mainnet/GovTokenContract + MainnetGovTokenContract string + //go:embed mainnet/TimelockContract + MainnetTimelockContract string + //go:embed mainnet/TokenRecoverPortalContract + MainnetTokenRecoverPortalContract string +) + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/ValidatorContract + ChapelValidatorContract string + //go:embed chapel/SlashContract + ChapelSlashContract string + //go:embed chapel/TokenHubContract + ChapelTokenHubContract string + //go:embed chapel/GovHubContract + ChapelGovHubContract string + //go:embed chapel/CrossChainContract + ChapelCrossChainContract string + //go:embed chapel/StakingContract + ChapelStakingContract string + //go:embed chapel/StakeHubContract + ChapelStakeHubContract string + //go:embed chapel/StakeCreditContract + ChapelStakeCreditContract string + //go:embed chapel/GovernorContract + ChapelGovernorContract string + //go:embed chapel/GovTokenContract + ChapelGovTokenContract string + //go:embed chapel/TimelockContract + ChapelTimelockContract string + //go:embed chapel/TokenRecoverPortalContract + ChapelTokenRecoverPortalContract string +) + +// contract codes for Rialto upgrade +var ( + //go:embed rialto/ValidatorContract + RialtoValidatorContract string + //go:embed rialto/SlashContract + RialtoSlashContract string + //go:embed rialto/TokenHubContract + RialtoTokenHubContract string + //go:embed rialto/GovHubContract + RialtoGovHubContract string + //go:embed rialto/CrossChainContract + RialtoCrossChainContract string + //go:embed rialto/StakingContract + RialtoStakingContract string + //go:embed rialto/StakeHubContract + RialtoStakeHubContract string + //go:embed rialto/StakeCreditContract + RialtoStakeCreditContract string + //go:embed rialto/GovernorContract + RialtoGovernorContract string + //go:embed rialto/GovTokenContract + RialtoGovTokenContract string + //go:embed rialto/TimelockContract + RialtoTimelockContract string + //go:embed rialto/TokenRecoverPortalContract + RialtoTokenRecoverPortalContract string +) diff --git a/core/systemcontracts/feynman_fix/chapel/StakeHubContract b/core/systemcontracts/feynman_fix/chapel/StakeHubContract new file mode 100644 index 0000000000..33c5c95260 --- /dev/null +++ b/core/systemcontracts/feynman_fix/chapel/StakeHubContract @@ -0,0 +1 @@ +608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bef578063fb50b31f1462000c14578063fc0c5ff11462000c39578063ff69ab611462000c5157600080fd5b8063e992aaf51462000b6c578063efdbf0e11462000b84578063f1f74d841462000bc0578063f1fad1041462000bd857600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000aff578063daacdb661462000b17578063dbda7fb31462000b2f578063e8f67c3b1462000b5457600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab5578063d7c2dfc81462000ada57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c69565b3480156200042057600080fd5b50620004386200043236600462009440565b62000cfb565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009440565b62001110565b348015620004a057600080fd5b50620003f4620004b2366004620094a4565b6200174e565b348015620004c557600080fd5b50620004dd620004d7366004620094e9565b62001a7a565b6040516200044c91906200959c565b348015620004f957600080fd5b50620004386200050b36600462009692565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f46200058136600462009440565b62001ded565b3480156200059457600080fd5b50620003f4620005a636600462009440565b62001e6f565b348015620005b957600080fd5b50620003f4620005cb36600462009440565b62002054565b348015620005de57600080fd5b5062000605620005f036600462009440565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f46200063536600462009440565b62002231565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f462000684366004620096e7565b620022ad565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c136600462009725565b620028ca565b348015620006d457600080fd5b50620003f4620006e636600462009795565b6200369c565b348015620006f957600080fd5b50620007116200070b366004620097b5565b620038a4565b6040516200044c94939291906200981e565b620003f462000734366004620098da565b62003f36565b3480156200074757600080fd5b506200046d6200075936600462009440565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a36600462009440565b62004580565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e236600462009440565b6200462a565b348015620007f557600080fd5b50620003f46200080736600462009440565b62004a43565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004c15565b3480156200084a57600080fd5b50620003f46200085c366004620094e9565b62004f2c565b3480156200086f57600080fd5b50620003f462004f96565b3480156200088757600080fd5b50620004386200089936600462009440565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f1366004620096e7565b6200502e565b620003f462000908366004620099b2565b620050e7565b3480156200091b57600080fd5b50620009336200092d36600462009440565b62005771565b6040516200044c9190620099f0565b3480156200094f57600080fd5b50620003f462000961366004620096e7565b62005a5e565b3480156200097457600080fd5b50620003f46200098636600462009a6d565b62005acb565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009b26565b6200696a565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a08366004620097b5565b62006b37565b6040516200044c9392919062009b82565b34801562000a2c57600080fd5b50620003f462000a3e36600462009440565b62006d13565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b36600462009440565b62006fd5565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d61271081565b34801562000ac257600080fd5b50620003f462000ad436600462009bdf565b62007405565b34801562000ae757600080fd5b50620003f462000af936600462009cc8565b62007609565b34801562000b0c57600080fd5b506200046d603b5481565b34801562000b2457600080fd5b506200046d60495481565b34801562000b3c57600080fd5b506200043862000b4e36600462009440565b620076ff565b34801562000b6157600080fd5b506200046d60355481565b34801562000b7957600080fd5b506200046d603a5481565b34801562000b9157600080fd5b506200046d62000ba336600462009692565b805160208183018101805160468252928201919093012091525481565b34801562000bcd57600080fd5b506200046d603e5481565b34801562000be557600080fd5b5062000652601181565b34801562000bfc57600080fd5b506200046d62000c0e366004620096e7565b62007b16565b34801562000c2157600080fd5b50620003f462000c3336600462009a6d565b62007b87565b34801562000c4657600080fd5b506200046d60395481565b34801562000c5e57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9c576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc657604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d669062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000d949062009d2e565b801562000de55780601f1062000db95761010080835404028352916020019162000de5565b820191906000526020600020905b81548152906001019060200180831162000dc757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e109062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3e9062009d2e565b801562000e8f5780601f1062000e635761010080835404028352916020019162000e8f565b820191906000526020600020905b81548152906001019060200180831162000e7157829003601f168201915b5050505050815260200160018201805462000eaa9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed89062009d2e565b801562000f295780601f1062000efd5761010080835404028352916020019162000f29565b820191906000526020600020905b81548152906001019060200180831162000f0b57829003601f168201915b5050505050815260200160028201805462000f449062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000f729062009d2e565b801562000fc35780601f1062000f975761010080835404028352916020019162000fc3565b820191906000526020600020905b81548152906001019060200180831162000fa557829003601f168201915b5050505050815260200160038201805462000fde9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200100c9062009d2e565b80156200105d5780601f1062001031576101008083540402835291602001916200105d565b820191906000526020600020905b8154815290600101906020018083116200103f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e9575050509190925250509051949350505050565b33611000146200113c57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e39062009d2e565b8015620012345780601f10620012085761010080835404028352916020019162001234565b820191906000526020600020905b8154815290600101906020018083116200121657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d9062009d2e565b8015620012de5780601f10620012b257610100808354040283529160200191620012de565b820191906000526020600020905b815481529060010190602001808311620012c057829003601f168201915b50505050508152602001600182018054620012f99062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620013279062009d2e565b8015620013785780601f106200134c5761010080835404028352916020019162001378565b820191906000526020600020905b8154815290600101906020018083116200135a57829003601f168201915b50505050508152602001600282018054620013939062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c19062009d2e565b8015620014125780601f10620013e65761010080835404028352916020019162001412565b820191906000526020600020905b815481529060010190602001808311620013f457829003601f168201915b505050505081526020016003820180546200142d9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200145b9062009d2e565b8015620014ac5780601f106200148057610100808354040283529160200191620014ac565b820191906000526020600020905b8154815290600101906020018083116200148e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001538575050509190925250505060408101519091506001600160a01b031615806200157557508060e001515b156200163257604051611002903490600081818185875af1925050503d8060008114620015bf576040519150601f19603f3d011682016040523d82523d6000602084013e620015c4565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016259060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168957600080fd5b505af11580156200169e573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016df91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017149190869060040162009d64565b600060405180830381600087803b1580156200172f57600080fd5b505af115801562001744573d6000803e3d6000fd5b5050505050505b50565b33611001146200177657604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff1615620017a157604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b792919062009d7e565b908152604051908190036020019020546001600160a01b03169050620017df603f8262007ddb565b620017fd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001825620151804262009da4565b604a546000828152604b602052604090205491925011620018595760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187a90849062009dc7565b909155505060405160469062001894908790879062009d7e565b908152602001604051809103902054600014158015620018e55750426201518060468787604051620018c892919062009d7e565b908152602001604051809103902054620018e3919062009dc7565b105b156200190457604051631898eb6b60e01b815260040160405180910390fd5b6000806200191485600262007dfe565b91509150816200193757604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b0919062009ddd565b9050620019be858362007e88565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019fe9392919062009e0d565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3c916001600160a01b0316908a9060040162009d64565b600060405180830381600087803b15801562001a5757600080fd5b505af115801562001a6c573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa457604051630f22c43960e41b8152612000600482015260240162001133565b60005462010000900460ff161562001acf57604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b209187908790819084018382808284376000920191909152506200804f92505050565b915091508062001b435760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b69575050604080516000815260208101909152905062001ddc565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b999160040190815260200190565b6020604051808303816000875af115801562001bb9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bdf919062009e3c565b90508062001c865782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3b92919062009e5c565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001ddc95505050505050565b600062001c9384620081b2565b9050600081600481111562001cac5762001cac62009df7565b0362001cce575050604080516000815260208101909152925062001ddc915050565b6040516000906110049047908381818185875af1925050503d806000811462001d14576040519150601f19603f3d011682016040523d82523d6000602084013e62001d19565b606091505b505090508062001d3c576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d8f92919062009e5c565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001ddc975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e20576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ecc5760405163b1d02c3d60e01b815260040160405180910390fd5b8062001eda603f8262007ddb565b62001ef85760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3657604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fac919062009ddd565b101562001fcc576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001ff25760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201690849062009e83565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200207f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020b15760405163b1d02c3d60e01b815260040160405180910390fd5b33620020bf603f8262007ddb565b620020dd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200210557604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214657506001600160a01b03821660009081526047602052604090205460ff165b156200216557604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218b90620151809062009dc7565b1115620021ab57604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b0316331462002264576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200230a5760405163b1d02c3d60e01b815260040160405180910390fd5b8162002318603f8262007ddb565b620023365760405163056e881160e01b815260040160405180910390fd5b816000036200235857604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023c09062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620023ee9062009d2e565b80156200243f5780601f1062002413576101008083540402835291602001916200243f565b820191906000526020600020905b8154815290600101906020018083116200242157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200246a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620024989062009d2e565b8015620024e95780601f10620024bd57610100808354040283529160200191620024e9565b820191906000526020600020905b815481529060010190602001808311620024cb57829003601f168201915b50505050508152602001600182018054620025049062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620025329062009d2e565b8015620025835780601f10620025575761010080835404028352916020019162002583565b820191906000526020600020905b8154815290600101906020018083116200256557829003601f168201915b505050505081526020016002820180546200259e9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cc9062009d2e565b80156200261d5780601f10620025f1576101008083540402835291602001916200261d565b820191906000526020600020905b815481529060010190602001808311620025ff57829003601f168201915b50505050508152602001600382018054620026389062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620026669062009d2e565b8015620026b75780601f106200268b57610100808354040283529160200191620026b7565b820191906000526020600020905b8154815290600101906020018083116200269957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002743575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e3919062009ddd565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002834929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b0316036200286157620028618662008808565b6040808301519051633041949b60e01b815261200591633041949b916200288e9190879060040162009d64565b600060405180830381600087803b158015620028a957600080fd5b505af1158015620028be573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028f557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620029275760405163b1d02c3d60e01b815260040160405180910390fd5b8362002935603f8262007ddb565b620029535760405163056e881160e01b815260040160405180910390fd5b8362002961603f8262007ddb565b6200297f5760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029af57604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029e25760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a4a9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002a789062009d2e565b801562002ac95780601f1062002a9d5761010080835404028352916020019162002ac9565b820191906000526020600020905b81548152906001019060200180831162002aab57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002af49062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002b229062009d2e565b801562002b735780601f1062002b475761010080835404028352916020019162002b73565b820191906000526020600020905b81548152906001019060200180831162002b5557829003601f168201915b5050505050815260200160018201805462002b8e9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbc9062009d2e565b801562002c0d5780601f1062002be15761010080835404028352916020019162002c0d565b820191906000526020600020905b81548152906001019060200180831162002bef57829003601f168201915b5050505050815260200160028201805462002c289062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002c569062009d2e565b801562002ca75780601f1062002c7b5761010080835404028352916020019162002ca7565b820191906000526020600020905b81548152906001019060200180831162002c8957829003601f168201915b5050505050815260200160038201805462002cc29062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002cf09062009d2e565b801562002d415780601f1062002d155761010080835404028352916020019162002d41565b820191906000526020600020905b81548152906001019060200180831162002d2357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dcd57505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e589062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002e869062009d2e565b801562002ed75780601f1062002eab5761010080835404028352916020019162002ed7565b820191906000526020600020905b81548152906001019060200180831162002eb957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002f029062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002f309062009d2e565b801562002f815780601f1062002f555761010080835404028352916020019162002f81565b820191906000526020600020905b81548152906001019060200180831162002f6357829003601f168201915b5050505050815260200160018201805462002f9c9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002fca9062009d2e565b80156200301b5780601f1062002fef576101008083540402835291602001916200301b565b820191906000526020600020905b81548152906001019060200180831162002ffd57829003601f168201915b50505050508152602001600282018054620030369062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620030649062009d2e565b8015620030b55780601f106200308957610100808354040283529160200191620030b5565b820191906000526020600020905b8154815290600101906020018083116200309757829003601f168201915b50505050508152602001600382018054620030d09062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620030fe9062009d2e565b80156200314f5780601f1062003123576101008083540402835291602001916200314f565b820191906000526020600020905b8154815290600101906020018083116200313157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031db5750505050508152505090508060e0015180156200321e5750876001600160a01b0316836001600160a01b031614155b156200323d57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af115801562003294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032ba919062009ddd565b9050603754811015620032e05760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200337557506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa1580156200334d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003373919062009ddd565b105b1562003394576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a5483620033a9919062009e99565b620033b5919062009da4565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200340a576040519150601f19603f3d011682016040523d82523d6000602084013e6200340f565b606091505b505090508062003432576040516312171d8360e31b815260040160405180910390fd5b6200343e828462009e83565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af115801562003494573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034bb919062009ddd565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003520939291909283526020830191909152604082015260600190565b60405180910390a460408051600280825260608201835260009260208301908036833701905050905086604001518160008151811062003564576200356462009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250508560400151816001815181106200359f576200359f62009eb3565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035e09084908c9060040162009ec9565b600060405180830381600087803b158015620035fb57600080fd5b505af115801562003610573d6000803e3d6000fd5b505050508a1562003682576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364d92919062009d64565b600060405180830381600087803b1580156200366857600080fd5b505af11580156200367d573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036c757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036f95760405163b1d02c3d60e01b815260040160405180910390fd5b3362003707603f8262007ddb565b620037255760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374b90620151809062009dc7565b11156200376b57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b90910481169085161115620037a55760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037e3576009820154620037dd9086906001600160401b031662009ef5565b620037fd565b6009820154620037fd906001600160401b03168662009ef5565b60098301546001600160401b039182169250600160801b900416811115620038385760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038b7603f6200892e565b90508086101562003f2d578415620038d05784620038d2565b805b9450600085620038e3888462009e83565b11620038fb57620038f5878362009e83565b620038fd565b855b9050806001600160401b038111156200391a576200391a620095b1565b60405190808252806020026020018201604052801562003944578160200160208202803683370190505b509450806001600160401b03811115620039625762003962620095b1565b6040519080825280602002602001820160405280156200398c578160200160208202803683370190505b509350806001600160401b03811115620039aa57620039aa620095b1565b604051908082528060200260200182016040528015620039df57816020015b6060815260200190600190039081620039c95790505b50925060005b8181101562003f2a57600062003a0962003a00838b62009dc7565b603f9062008939565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a769062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003aa49062009d2e565b801562003af55780601f1062003ac95761010080835404028352916020019162003af5565b820191906000526020600020905b81548152906001019060200180831162003ad757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b209062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003b4e9062009d2e565b801562003b9f5780601f1062003b735761010080835404028352916020019162003b9f565b820191906000526020600020905b81548152906001019060200180831162003b8157829003601f168201915b5050505050815260200160018201805462003bba9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003be89062009d2e565b801562003c395780601f1062003c0d5761010080835404028352916020019162003c39565b820191906000526020600020905b81548152906001019060200180831162003c1b57829003601f168201915b5050505050815260200160028201805462003c549062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003c829062009d2e565b801562003cd35780601f1062003ca75761010080835404028352916020019162003cd3565b820191906000526020600020905b81548152906001019060200180831162003cb557829003601f168201915b5050505050815260200160038201805462003cee9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003d1c9062009d2e565b801562003d6d5780601f1062003d415761010080835404028352916020019162003d6d565b820191906000526020600020905b81548152906001019060200180831162003d4f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003df9575050505050815250509050806000015188848151811062003e325762003e3262009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ecb5780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ec5919062009ddd565b62003ece565b60005b87848151811062003ee35762003ee362009eb3565b602002602001018181525050806080015186848151811062003f095762003f0962009eb3565b602002602001018190525050508062003f229062009f18565b9050620039e5565b50505b92959194509250565b60005462010000900460ff161562003f6157604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f935760405163b1d02c3d60e01b815260040160405180910390fd5b3362003fa1603f8262007ddb565b1562003fc057604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b03888116600090815260436020526040902054161515806200400157506001600160a01b03881660009081526047602052604090205460ff165b156200402057604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200403f92919062009d7e565b908152604051908190036020019020546001600160a01b0316141580620040895750604887876040516200407592919062009d7e565b9081526040519081900360200190205460ff165b15620040a8576040516311fdb94760e01b815260040160405180910390fd5b6000620040b6838062009f34565b604051602001620040c992919062009d7e565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041135760405163c0bf414360e01b815260040160405180910390fd5b600062004129670de0b6b3a76400003462009e83565b90506036548110156200414f576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200417757604051636520611b60e11b815260040160405180910390fd5b6113886200418c604087016020880162009795565b6001600160401b03161180620041d25750620041af604086016020870162009795565b6001600160401b0316620041c7602087018762009795565b6001600160401b0316115b80620042115750620041eb604086016020870162009795565b6001600160401b031662004206606087016040880162009795565b6001600160401b0316115b15620042305760405163dc81db8560e01b815260040160405180910390fd5b6200427b62004240858062009f34565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200894792505050565b6200429957604051635dba5ad760e01b815260040160405180910390fd5b620042a8838a8a8a8a62008ae9565b620042c657604051631647e3cb60e11b815260040160405180910390fd5b60006200431484620042d9878062009f34565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c1992505050565b905062004323603f8562008d1a565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043a38b8d8362009fdc565b508560058201620043b582826200a0a4565b5087905060098201620043c982826200a1dd565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b0319169288169290921790915551859060459062004417908e908e9062009d7e565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200449a9291906200a2ad565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b7b4833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b7b4833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b906200453e908590899060040162009d64565b600060405180830381600087803b1580156200455957600080fd5b505af11580156200456e573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045ab603f8262007ddb565b620045c95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620046979062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620046c59062009d2e565b8015620047165780601f10620046ea5761010080835404028352916020019162004716565b820191906000526020600020905b815481529060010190602001808311620046f857829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047419062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200476f9062009d2e565b8015620047c05780601f106200479457610100808354040283529160200191620047c0565b820191906000526020600020905b815481529060010190602001808311620047a257829003601f168201915b50505050508152602001600182018054620047db9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620048099062009d2e565b80156200485a5780601f106200482e576101008083540402835291602001916200485a565b820191906000526020600020905b8154815290600101906020018083116200483c57829003601f168201915b50505050508152602001600282018054620048759062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a39062009d2e565b8015620048f45780601f10620048c857610100808354040283529160200191620048f4565b820191906000526020600020905b815481529060010190602001808311620048d657829003601f168201915b505050505081526020016003820180546200490f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200493d9062009d2e565b80156200498e5780601f1062004962576101008083540402835291602001916200498e565b820191906000526020600020905b8154815290600101906020018083116200497057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a1a5750505091909252505050608001519392505050565b336110011462004a6b57604051630f22c43960e41b8152611001600482015260240162001133565b6001600160a01b038082166000908152604360205260409020541662004a93603f8262007ddb565b62004ab15760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b14573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b3a919062009ddd565b90506000603d544262004b4e919062009dc7565b905062004b5c838262007e88565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b9c9392919062009e0d565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bda916001600160a01b031690889060040162009d64565b600060405180830381600087803b15801562004bf557600080fd5b505af115801562004c0a573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c365750600054600160ff909116105b8062004c525750303b15801562004c52575060005460ff166001145b62004cb75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001133565b6000805460ff19166001179055801562004cdb576000805461ff0019166101001790555b33411462004cfc5760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d1c576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755600960385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562069780603e55604a5560408051610220810190915261020080825260609182916200b5b4602083013980602001905181019062004dad91906200a2e9565b915060405180610360016040528061034081526020016200b7d4610340913980602001905181019062004de191906200a38d565b905060005b825181101562004e505760016047600085848151811062004e0b5762004e0b62009eb3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e488162009f18565b905062004de6565b5060005b815181101562004ec1576001604883838151811062004e775762004e7762009eb3565b602002602001015160405162004e8e91906200a48a565b908152604051908190036020019020805491151560ff1990921691909117905562004eb98162009f18565b905062004e54565b5062004ee17330151da466ec8ab345bef3d6983023e050fb067362008d31565b505080156200174b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f5457604051630f22c43960e41b8152612000600482015260240162001133565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f89939291906200a4a8565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fc9576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004ff457604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200503d603f8462007ddb565b6200505b5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050de919062009ddd565b90505b92915050565b60005462010000900460ff16156200511257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051445760405163b1d02c3d60e01b815260040160405180910390fd5b8162005152603f8262007ddb565b620051705760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051965760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051fe9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200522c9062009d2e565b80156200527d5780601f1062005251576101008083540402835291602001916200527d565b820191906000526020600020905b8154815290600101906020018083116200525f57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052a89062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d69062009d2e565b8015620053275780601f10620052fb5761010080835404028352916020019162005327565b820191906000526020600020905b8154815290600101906020018083116200530957829003601f168201915b50505050508152602001600182018054620053429062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620053709062009d2e565b8015620053c15780601f106200539557610100808354040283529160200191620053c1565b820191906000526020600020905b815481529060010190602001808311620053a357829003601f168201915b50505050508152602001600282018054620053dc9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200540a9062009d2e565b80156200545b5780601f106200542f576101008083540402835291602001916200545b565b820191906000526020600020905b8154815290600101906020018083116200543d57829003601f168201915b50505050508152602001600382018054620054769062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620054a49062009d2e565b8015620054f55780601f10620054c957610100808354040283529160200191620054f5565b820191906000526020600020905b815481529060010190602001808311620054d757829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055815750505050508152505090508060e001518015620055c45750856001600160a01b0316826001600160a01b031614155b15620055e357604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005634573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200565b919062009ddd565b9050826001600160a01b0316876001600160a01b03166000805160206200b7b483398151915283876040516200569b929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056d09190879060040162009d64565b600060405180830381600087803b158015620056eb57600080fd5b505af115801562005700573d6000803e3d6000fd5b50505050851562001744576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057349086908b9060040162009d64565b600060405180830381600087803b1580156200574f57600080fd5b505af115801562005764573d6000803e3d6000fd5b5050505050505050505050565b6200579d6040518060800160405280606081526020016060815260200160608152602001606081525090565b81620057ab603f8262007ddb565b620057c95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620058009062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200582e9062009d2e565b80156200587f5780601f1062005853576101008083540402835291602001916200587f565b820191906000526020600020905b8154815290600101906020018083116200586157829003601f168201915b505050505081526020016001820180546200589a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620058c89062009d2e565b8015620059195780601f10620058ed5761010080835404028352916020019162005919565b820191906000526020600020905b815481529060010190602001808311620058fb57829003601f168201915b50505050508152602001600282018054620059349062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620059629062009d2e565b8015620059b35780601f106200598757610100808354040283529160200191620059b3565b820191906000526020600020905b8154815290600101906020018083116200599557829003601f168201915b50505050508152602001600382018054620059ce9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620059fc9062009d2e565b801562005a4d5780601f1062005a215761010080835404028352916020019162005a4d565b820191906000526020600020905b81548152906001019060200180831162005a2f57829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a8957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005abb5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ac7828262008dca565b5050565b336110071462005af357604051630f22c43960e41b8152611007600482015260240162001133565b62005b606040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005c1b576020811462005b925783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005bd591858580838501838280828437600092019190915250929392505062008f339050565b90506108fc81108062005be9575061271081115b1562005c125784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60355562006925565b62005c8c6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005d56576020811462005cbe5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005d0191858580838501838280828437600092019190915250929392505062008f339050565b9050683635c9adc5dea0000081108062005d24575069152d02c7e14af680000081115b1562005d4d5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60365562006925565b62005dc9604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005e90576020811462005dfb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005e3e91858580838501838280828437600092019190915250929392505062008f339050565b905067016345785d8a000081108062005e5e5750678ac7230489e8000081115b1562005e875784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60375562006925565b62005f01604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005fb9576020811462005f335783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005f7691858580838501838280828437600092019190915250929392505062008f339050565b905080158062005f8757506101f481115b1562005fb05784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60385562006925565b620060226040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620060df5760208114620060545783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200609791858580838501838280828437600092019190915250929392505062008f339050565b90506203f480811080620060ad575062278d0081115b15620060d65784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60395562006925565b6200614d60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620061fa57602081146200617f5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f8401819004810282018101909252828152600091620061c291858580838501838280828437600092019190915250929392505062008f339050565b90506064811115620061f15784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603a5562006925565b6200626a60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b156200632b57602081146200629c5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f8401819004810282018101909252828152600091620062df91858580838501838280828437600092019190915250929392505062008f339050565b9050674563918244f40000811080620062f95750603c5481115b15620063225784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603b5562006925565b620063996040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b156200645c5760208114620063cb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200640e91858580838501838280828437600092019190915250929392505062008f339050565b905068056bc75e2d631000008110806200642a5750603b548111155b15620064535784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603c5562006925565b620064c96040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620065865760208114620064fb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200653e91858580838501838280828437600092019190915250929392505062008f339050565b90506202a300811080620065545750603e548110155b156200657d5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603d5562006925565b620065f16040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620066ae5760208114620066235783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200666691858580838501838280828437600092019190915250929392505062008f339050565b9050620d2f008110806200667c5750603d548111155b15620066a55784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603e5562006925565b620067286040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620067d457602081146200675a5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200679d91858580838501838280828437600092019190915250929392505062008f339050565b905080600003620067cb5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b604a5562006925565b620068426040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620069025760148114620068745783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b6000620068bc601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f339050565b90506001600160a01b038116620068f05784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b620068fb8162008f38565b5062006925565b838383836040516325ee20d560e21b81526004016200113394939291906200a4c7565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200695c94939291906200a4c7565b60405180910390a150505050565b60005462010000900460ff16156200699557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069c75760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069e557620069e5620095b1565b60405190808252806020026020018201604052801562006a0f578160200160208202803683370190505b5090506000805b8381101562006b0d5762006a5887878381811062006a385762006a3862009eb3565b905060200201602081019062006a4f919062009440565b603f9062007ddb565b62006a765760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a8f5762006a8f62009eb3565b905060200201602081019062006aa6919062009440565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ae25762006ae262009eb3565b6001600160a01b039092166020928302919091019091015262006b058162009f18565b905062006a16565b50604051634484077560e01b8152612005906344840775906200288e908590889060040162009ec9565b606080600062006b48603f6200892e565b90508085101562006d0c57831562006b61578362006b63565b805b935060008462006b74878462009e83565b1162006b8c5762006b86868362009e83565b62006b8e565b845b9050806001600160401b0381111562006bab5762006bab620095b1565b60405190808252806020026020018201604052801562006bd5578160200160208202803683370190505b509350806001600160401b0381111562006bf35762006bf3620095b1565b60405190808252806020026020018201604052801562006c1d578160200160208202803683370190505b50925060005b8181101562006d095762006c3c62003a00828962009dc7565b85828151811062006c515762006c5162009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c8a5762006c8a62009eb3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006cde5762006cde62009eb3565b6001600160a01b039092166020928302919091019091015262006d018162009f18565b905062006c23565b50505b9250925092565b336110011462006d3b57604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff161562006d6657604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d8e603f8262007ddb565b62006dac5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dd4620151804262009da4565b604a546000828152604b60205260409020549192501162006e085760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e2990849062009dc7565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e7e57506001600160a01b038416600090815260446020526040902054429062006e7c90620151809062009dc7565b105b1562006e9d576040516330abb81d60e21b815260040160405180910390fd5b60008062006ead85600062007dfe565b915091508162006ed057604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f23573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f49919062009ddd565b905062006f57858362007e88565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f979392919062009e0d565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005734916001600160a01b0316908a9060040162009d64565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070469062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620070749062009d2e565b8015620070c55780601f106200709957610100808354040283529160200191620070c5565b820191906000526020600020905b815481529060010190602001808311620070a757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070f09062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200711e9062009d2e565b80156200716f5780601f1062007143576101008083540402835291602001916200716f565b820191906000526020600020905b8154815290600101906020018083116200715157829003601f168201915b505050505081526020016001820180546200718a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620071b89062009d2e565b8015620072095780601f10620071dd5761010080835404028352916020019162007209565b820191906000526020600020905b815481529060010190602001808311620071eb57829003601f168201915b50505050508152602001600282018054620072249062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620072529062009d2e565b8015620072a35780601f106200727757610100808354040283529160200191620072a3565b820191906000526020600020905b8154815290600101906020018083116200728557829003601f168201915b50505050508152602001600382018054620072be9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620072ec9062009d2e565b80156200733d5780601f1062007311576101008083540402835291602001916200733d565b820191906000526020600020905b8154815290600101906020018083116200731f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073c95750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200743057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620074625760405163b1d02c3d60e01b815260040160405180910390fd5b3362007470603f8262007ddb565b6200748e5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620074b490620151809062009dc7565b1115620074d457604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074e59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620075139062009d2e565b8015620075645780601f10620075385761010080835404028352916020019162007564565b820191906000526020600020905b8154815290600101906020018083116200754657829003601f168201915b50505082875250859160058401915081906200758190826200a4f2565b50602082015160018201906200759890826200a4f2565b5060408201516002820190620075af90826200a4f2565b5060608201516003820190620075c690826200a4f2565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200763457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076665760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007687576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076f857620076e5858583818110620076ac57620076ac62009eb3565b9050602002016020810190620076c3919062009440565b848484818110620076d857620076d862009eb3565b9050602002013562008dca565b620076f08162009f18565b90506200768a565b5050505050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492938493909160808401916200776a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620077989062009d2e565b8015620077e95780601f10620077bd57610100808354040283529160200191620077e9565b820191906000526020600020905b815481529060010190602001808311620077cb57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620078149062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620078429062009d2e565b8015620078935780601f10620078675761010080835404028352916020019162007893565b820191906000526020600020905b8154815290600101906020018083116200787557829003601f168201915b50505050508152602001600182018054620078ae9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620078dc9062009d2e565b80156200792d5780601f1062007901576101008083540402835291602001916200792d565b820191906000526020600020905b8154815290600101906020018083116200790f57829003601f168201915b50505050508152602001600282018054620079489062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620079769062009d2e565b8015620079c75780601f106200799b57610100808354040283529160200191620079c7565b820191906000526020600020905b815481529060010190602001808311620079a957829003601f168201915b50505050508152602001600382018054620079e29062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462007a109062009d2e565b801562007a615780601f1062007a355761010080835404028352916020019162007a61565b820191906000526020600020905b81548152906001019060200180831162007a4357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007aed5750505091909252505050604001519392505050565b600062007b25603f8462007ddb565b62007b435760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200509a565b60005462010000900460ff161562007bb257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007be45760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bf2603f8262007ddb565b62007c105760405163056e881160e01b815260040160405180910390fd5b3362007c20818787878762008ae9565b62007c3e57604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c5d92919062009d7e565b908152604051908190036020019020546001600160a01b031614158062007ca757506048868660405162007c9392919062009d7e565b9081526040519081900360200190205460ff165b1562007cc6576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cf590620151809062009dc7565b111562007d1557604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d2b91906200a5ba565b908152604051908190036020019020556004810162007d4c87898362009fdc565b5042600c820155604051829060459062007d6a908a908a9062009d7e565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007dca908a908a906200a2ad565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050de565b6000806000848460405160200162007e189291906200a638565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e585760008093509350505062007e81565b603e5462007e67904262009dc7565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007ecf57600080fd5b505af115801562007ee4573d6000803e3d6000fd5b505050506000600162007ef8603f6200892e565b62007f04919062009e83565b604954108015915062007fc25760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f58573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f7e919062009e3c565b62007fc25760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fd757600b83018290555b600a83015460ff166200804a57600a8301805460ff19166001908117909155604980546000906200800a90849062009dc7565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080c19062008fa4565b90506000805b620080d28362009017565b15620081a557806000036200810757620080f6620080f0846200903d565b620090a1565b6001600160a01b0316845262008192565b8060010362008133576200811f620080f0846200903d565b6001600160a01b0316602085015262008192565b806002036200815f576200814b620080f0846200903d565b6001600160a01b0316604085015262008192565b806003036200818c576200817d62008177846200903d565b620090b9565b60608501526001915062008192565b620081a5565b6200819d8162009f18565b9050620080c7565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081ea575060208201516001600160a01b0316155b15620081f857506004919050565b81516200820890603f9062007ddb565b6200821557506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082819062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620082af9062009d2e565b8015620083005780601f10620082d45761010080835404028352916020019162008300565b820191906000526020600020905b815481529060010190602001808311620082e257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200832b9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620083599062009d2e565b8015620083aa5780601f106200837e57610100808354040283529160200191620083aa565b820191906000526020600020905b8154815290600101906020018083116200838c57829003601f168201915b50505050508152602001600182018054620083c59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620083f39062009d2e565b8015620084445780601f10620084185761010080835404028352916020019162008444565b820191906000526020600020905b8154815290600101906020018083116200842657829003601f168201915b505050505081526020016002820180546200845f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200848d9062009d2e565b8015620084de5780601f10620084b257610100808354040283529160200191620084de565b820191906000526020600020905b815481529060010190602001808311620084c057829003601f168201915b50505050508152602001600382018054620084f99062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620085279062009d2e565b8015620085785780601f106200854c5761010080835404028352916020019162008578565b820191906000526020600020905b8154815290600101906020018083116200855a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620086045750505050508152505090508060e0015180156200864f575082600001516001600160a01b031683602001516001600160a01b031614155b156200865e5750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086ba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086e1919062009ddd565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b7b48339815191528387606001516040516200872d929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008790929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087ca9290919060040162009d64565b600060405180830381600087803b158015620087e557600080fd5b505af1158015620087fa573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008832575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008882573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620088a8919062009ddd565b101562005ac757620088ca81603d5442620088c4919062009dc7565b62007e88565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b1580156200891157600080fd5b505af115801562008926573d6000803e3d6000fd5b505050505050565b6000620050e1825490565b6000620050de838362009191565b6000808290506003815110806200895f575060098151115b156200896e5750600092915050565b60418160008151811062008986576200898662009eb3565b016020015160f81c1080620089b85750605a81600081518110620089ae57620089ae62009eb3565b016020015160f81c115b15620089c75750600092915050565b60015b815181101562008adf576030828281518110620089eb57620089eb62009eb3565b016020015160f81c108062008a1c5750603982828151811062008a125762008a1262009eb3565b016020015160f81c115b801562008a6c5750604182828151811062008a3b5762008a3b62009eb3565b016020015160f81c108062008a6c5750605a82828151811062008a625762008a6262009eb3565b016020015160f81c115b801562008abc5750606182828151811062008a8b5762008a8b62009eb3565b016020015160f81c108062008abc5750607a82828151811062008ab25762008ab262009eb3565b016020015160f81c115b1562008acc575060009392505050565b62008ad78162009f18565b9050620089ca565b5060019392505050565b600060308414158062008afd575060608214155b1562008b0c5750600062008c10565b60008686864660405160200162008b2794939291906200a676565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b819594939291906200a6a3565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bcb57600080fd5b5060008160008151811062008be45762008be462009eb3565b016020015160f81c90506001811462008c065760009550505050505062008c10565b6001955050505050505b95945050505050565b60008061200361dead60405162008c30906200941c565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c73573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008ca79291906200a6db565b6000604051808303818588803b15801562008cc157600080fd5b505af115801562008cd6573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050de836001600160a01b038416620091be565b600054610100900460ff1662008d9e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001133565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dd8603f8262007ddb565b62008df65760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e80919062009ddd565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008ec891815260200190565b60405180910390a350505050565b60008160405160200162008eeb91906200a48a565b604051602081830303815290604052805190602001208360405160200162008f1491906200a48a565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fd28262009210565b62008fdc57600080fd5b600062008fed836020015162009243565b836020015162008ffe919062009dc7565b6040805180820190915293845260208401525090919050565b805180516020820151600092916200902f9162009dc7565b836020015110915050919050565b60408051808201909152600080825260208201526200905c8262009017565b6200906657600080fd5b602082015160006200907882620092d2565b905062009086818362009dc7565b60209485015260408051808201909152908152928301525090565b8051600090601514620090b357600080fd5b620050e1825b805160009015801590620090cf57508151602110155b620090d957600080fd5b6000620090ea836020015162009243565b90508083600001511015620091425760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001133565b82516000906200915490839062009e83565b90506000808386602001516200916b919062009dc7565b90508051915060208310156200918857826020036101000a820491505b50949350505050565b6000826000018281548110620091ab57620091ab62009eb3565b9060005260206000200154905092915050565b60008181526001830160205260408120546200920757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050e1565b506000620050e1565b805160009081036200922457506000919050565b6020820151805160001a9060c082101562008adf575060009392505050565b8051600090811a60808110156200925d5750600092915050565b60b88110806200927a575060c081108015906200927a575060f881105b15620092895750600192915050565b60c0811015620092c457620092a1600160b86200a701565b620092b09060ff168262009e83565b620092bd90600162009dc7565b9392505050565b620092a1600160f86200a701565b80516000908190811a6080811015620092ef576001915062009415565b60b88110156200931b576200930660808262009e83565b6200931390600162009dc7565b915062009415565b60c08110156200939457600060b78203600186019550806020036101000a8651049150600181018201935050808310156200938d5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b5062009415565b60f8811015620093ab576200930660c08262009e83565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620094135760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b505b5092915050565b610e96806200a71e83390190565b6001600160a01b03811681146200174b57600080fd5b6000602082840312156200945357600080fd5b8135620092bd816200942a565b60008083601f8401126200947357600080fd5b5081356001600160401b038111156200948b57600080fd5b60208301915083602082850101111562007e8157600080fd5b60008060208385031215620094b857600080fd5b82356001600160401b03811115620094cf57600080fd5b620094dd8582860162009460565b90969095509350505050565b600080600060408486031215620094ff57600080fd5b833560ff811681146200951157600080fd5b925060208401356001600160401b038111156200952d57600080fd5b6200953b8682870162009460565b9497909650939450505050565b60005b83811015620095655781810151838201526020016200954b565b50506000910152565b600081518084526200958881602086016020860162009548565b601f01601f19169290920160200192915050565b602081526000620050de60208301846200956e565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095ec57620095ec620095b1565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200961d576200961d620095b1565b604052919050565b60006001600160401b03821115620096415762009641620095b1565b50601f01601f191660200190565b600062009666620096608462009625565b620095f2565b90508281528383830111156200967b57600080fd5b828260208301376000602084830101529392505050565b600060208284031215620096a557600080fd5b81356001600160401b03811115620096bc57600080fd5b8201601f81018413620096ce57600080fd5b620096df848235602084016200964f565b949350505050565b60008060408385031215620096fb57600080fd5b823562009708816200942a565b946020939093013593505050565b80151581146200174b57600080fd5b600080600080608085870312156200973c57600080fd5b843562009749816200942a565b935060208501356200975b816200942a565b9250604085013591506060850135620097748162009716565b939692955090935050565b6001600160401b03811681146200174b57600080fd5b600060208284031215620097a857600080fd5b8135620092bd816200977f565b60008060408385031215620097c957600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620098135781516001600160a01b031687529582019590820190600101620097ec565b509495945050505050565b608081526000620098336080830187620097d8565b82810360208481019190915286518083528782019282019060005b818110156200986c578451835293830193918301916001016200984e565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098c157601f19858403018752620098ae8383516200956e565b968601969250908501906001016200988f565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098f757600080fd5b883562009904816200942a565b975060208901356001600160401b03808211156200992157600080fd5b6200992f8c838d0162009460565b909950975060408b01359150808211156200994957600080fd5b620099578c838d0162009460565b90975095508591506060605f19840112156200997257600080fd5b60608b01945060c08b01359250808311156200998d57600080fd5b505088016080818b031215620099a257600080fd5b8091505092959891949750929550565b60008060408385031215620099c657600080fd5b8235620099d3816200942a565b91506020830135620099e58162009716565b809150509250929050565b60208152600082516080602084015262009a0e60a08401826200956e565b90506020840151601f198085840301604086015262009a2e83836200956e565b9250604086015191508085840301606086015262009a4d83836200956e565b925060608601519150808584030160808601525062008c1082826200956e565b6000806000806040858703121562009a8457600080fd5b84356001600160401b038082111562009a9c57600080fd5b62009aaa8883890162009460565b9096509450602087013591508082111562009ac457600080fd5b5062009ad38782880162009460565b95989497509550505050565b60008083601f84011262009af257600080fd5b5081356001600160401b0381111562009b0a57600080fd5b6020830191508360208260051b850101111562007e8157600080fd5b60008060006040848603121562009b3c57600080fd5b83356001600160401b0381111562009b5357600080fd5b62009b618682870162009adf565b909450925050602084013562009b77816200942a565b809150509250925092565b60608152600062009b976060830186620097d8565b828103602084015262009bab8186620097d8565b915050826040830152949350505050565b600082601f83011262009bce57600080fd5b620050de838335602085016200964f565b60006020828403121562009bf257600080fd5b81356001600160401b038082111562009c0a57600080fd5b908301906080828603121562009c1f57600080fd5b62009c29620095c7565b82358281111562009c3957600080fd5b62009c478782860162009bbc565b82525060208301358281111562009c5d57600080fd5b62009c6b8782860162009bbc565b60208301525060408301358281111562009c8457600080fd5b62009c928782860162009bbc565b60408301525060608301358281111562009cab57600080fd5b62009cb98782860162009bbc565b60608301525095945050505050565b6000806000806040858703121562009cdf57600080fd5b84356001600160401b038082111562009cf757600080fd5b62009d058883890162009adf565b9096509450602087013591508082111562009d1f57600080fd5b5062009ad38782880162009adf565b600181811c9082168062009d4357607f821691505b6020821081036200462457634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dc257634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050e157620050e162009d8e565b60006020828403121562009df057600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e2e5762009e2e62009df7565b826040830152949350505050565b60006020828403121562009e4f57600080fd5b8151620092bd8162009716565b828152604081016005831062009e765762009e7662009df7565b8260208301529392505050565b81810381811115620050e157620050e162009d8e565b8082028115828204841417620050e157620050e162009d8e565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ede6040830185620097d8565b905060018060a01b03831660208301529392505050565b6001600160401b0382811682821603908082111562009415576200941562009d8e565b60006001820162009f2d5762009f2d62009d8e565b5060010190565b6000808335601e1984360301811262009f4c57600080fd5b8301803591506001600160401b0382111562009f6757600080fd5b60200191503681900382131562007e8157600080fd5b601f8211156200804a57600081815260208120601f850160051c8101602086101562009fa65750805b601f850160051c820191505b81811015620089265782815560010162009fb2565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009ff65762009ff6620095b1565b6200a00e836200a007835462009d2e565b8362009f7d565b6000601f8411600181146200a04157600085156200a02c5750838201355b6200a038868262009fc7565b845550620076f8565b600083815260209020601f19861690835b828110156200a07457868501358255602094850194600190920191016200a052565b50868210156200a0925760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a0b0828362009f34565b6001600160401b038111156200a0ca576200a0ca620095b1565b6200a0e2816200a0db855462009d2e565b8562009f7d565b6000601f8211600181146200a11557600083156200a1005750838201355b6200a10c848262009fc7565b8655506200a172565b600085815260209020601f19841690835b828110156200a14857868501358255602094850194600190920191016200a126565b50848210156200a1665760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a185602083018362009f34565b6200a19581836001860162009fdc565b50506200a1a6604083018362009f34565b6200a1b681836002860162009fdc565b50506200a1c7606083018362009f34565b6200a1d781836003860162009fdc565b50505050565b81356200a1ea816200977f565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a217816200977f565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a257816200977f565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096df6020830184866200a284565b60006001600160401b038211156200a2df576200a2df620095b1565b5060051b60200190565b600060208083850312156200a2fd57600080fd5b82516001600160401b038111156200a31457600080fd5b8301601f810185136200a32657600080fd5b80516200a33762009660826200a2c3565b81815260059190911b820183019083810190878311156200a35757600080fd5b928401925b828410156200a3825783516200a372816200942a565b825292840192908401906200a35c565b979650505050505050565b600060208083850312156200a3a157600080fd5b82516001600160401b03808211156200a3b957600080fd5b818501915085601f8301126200a3ce57600080fd5b81516200a3df62009660826200a2c3565b81815260059190911b830184019084810190888311156200a3ff57600080fd5b8585015b838110156200a47d578051858111156200a41d5760008081fd5b8601603f81018b136200a4305760008081fd5b8781015160406200a445620096608362009625565b8281528d828486010111156200a45b5760008081fd5b6200a46c838c830184870162009548565b86525050509186019186016200a403565b5098975050505050505050565b600082516200a49e81846020870162009548565b9190910192915050565b60ff8416815260406020820152600062008c106040830184866200a284565b6040815260006200a4dd6040830186886200a284565b82810360208401526200a3828185876200a284565b81516001600160401b038111156200a50e576200a50e620095b1565b6200a526816200a51f845462009d2e565b8462009f7d565b602080601f8311600181146200a55a57600084156200a5455750858301515b6200a551858262009fc7565b86555062008926565b600085815260208120601f198616915b828110156200a58b578886015182559484019460019091019084016200a56a565b50858210156200a5aa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5ca8162009d2e565b600182811680156200a5e557600181146200a5fb576200a62c565b60ff19841687528215158302870194506200a62c565b8760005260208060002060005b858110156200a6235781548a8201529084019082016200a608565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a662576200a66262009df7565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6b7818460208b0162009548565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096df908301846200956e565b60ff8281168282160390811115620050e157620050e162009d8e56fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000001284214b9b9c85549ab3d2b972df0deef66ac2c9000000000000000000000000a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0000000000000000000000000980a75ecd1309ea12fa2ed87a8744fbfc9b863d5000000000000000000000000b71b214cb885500844365e95cd9942c7276e7fd800000000000000000000000035552c16704d214347f29fa77f77da6d75d7c752000000000000000000000000f474cf03cceff28abc65c9cbae594f725c80e12d00000000000000000000000096c5d20b2a975c050e4220be276ace4892f4b41a00000000000000000000000047788386d0ed6c748e03a53160b4b30ed3748cc5000000000000000000000000bdfbc016c1bd481f5d8ca6f754f4b200a7ed66ce000000000000000000000000372e4887005ec21a5aff9ff62eda9e7713e3643700000000000000000000000055c968cf3430f3ba0534ef49ff4b3fbc9086c7ce000000000000000000000000136bd6343049c9690569db79dcd9208a57d342ad000000000000000000000000977ecef7de795cd248d77fd0d080ce3a35dec013000000000000000000000000b334ced91dff560bc9b5b3c30ae613bf335f181324d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000308e82934ca974fdcd97f3309de967d3c9c43fa711a8d673af5d75465844bf8969c8d1948d903748ac7b8b1720fa64e50c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b973c2d38487e58fd6e145491b110080fb14ac915a0411fc78f19e09a399ddee0d20c63a75d8f930f1694544ad2dc01b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003089037a9ace3b590165ea1c0c5ac72bf600b7c88c1e435f41932c1132aae1bfa0bb68e46b96ccb12c3415e4d82af717d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2750ec6dded3dcdc2f351782310b0eadc077db59abca0f0cd26776e2e7acb9f3bce40b1fa5221fd1561226c6263cc5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b742ad4855bae330426b823e742da31f816cc83bc16d69a9134be0cfb4a1d17ec34f1b5b32d5c20440b8536b1e88f0f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096c9b86c3400e529bfe184056e257c07940bb664636f689e8d2027c834681f8f878b73445261034e946bb2d901b4b87800000000000000000000000000000000a164736f6c6343000811000a \ No newline at end of file diff --git a/core/systemcontracts/feynman_fix/chapel/ValidatorContract b/core/systemcontracts/feynman_fix/chapel/ValidatorContract new file mode 100644 index 0000000000..990546f7b0 --- /dev/null +++ b/core/systemcontracts/feynman_fix/chapel/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ed8565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f02565b34801561057757600080fd5b50610580610e42565b60405161054091906181eb565b34801561059957600080fd5b506105ad6105a83660046180d1565b610e48565b604051610540919061837e565b3480156105c657600080fd5b506105cf611165565b6040516105409190618373565b3480156105e857600080fd5b5061051c6105f7366004617edf565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e3f565b611855565b34801561066757600080fd5b5061051c610676366004617e77565b611902565b34801561068757600080fd5b506105cf61069636600461807e565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461807e565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e3f565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618289565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f13565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ec9565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e3f565b6123c5565b34801561080157600080fd5b50610533610810366004617e3f565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461807e565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461807e565b612507565b60405161054096959493929190618218565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180d1565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e3f565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b38366004618022565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e3f565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618276565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461807e565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fe3565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e3f565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e3f565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461807e565b6139e4565b60405161054093929190618ee1565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ae4565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185a5565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618ce5565b600b54610f4c57610e9d6179eb565b60015460005b81811015610f4857600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff1916911515919091179055604086015180518794610f24936000805160206191b0833981519152909101920190617a1a565b506060820151610f3a9060038301906013617a94565b505050806001019050610ea3565b5050505b610f54617ac1565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7192505050565b9150915080610fb157610fa86064613f2d565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f8e565b905061112a565b825160ff16600114156111265782602001515160011461101b5760008051602061917083398151915260405161100b9061899d565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc8360018403615150565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f2d565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d34565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a23565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617ae5565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be906110009060089060040161825a565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fc3565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b1a565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a1a565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a1a565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ed8565b60405180910390a150505050610e32565b60608061163e8386615513565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181eb565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd82826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e92565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d34565b60105443116119425760405162461bcd60e51b8152600401610e1290618738565b3a156119605760405162461bcd60e51b8152600401610e1290618a23565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185a5565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161e916565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e790309086906004016181ff565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190618096565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e3f565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ed8565b60405180910390a2611be9565b600354611b88908663ffffffff61622b16565b6003908155810154611ba0908663ffffffff61622b16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ed8565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ed8565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179eb565b60015460005b81811015611e8557600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff1916911515919091179055604086015180518794611e61936000805160206191b0833981519152909101920190617a1a565b506060820151611e779060038301906013617a94565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185dc565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f128383615150565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b9050606061226082616250565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163be565b6122bd8383838888038989038a8b8b8b5103016163be565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618ce5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f21565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c6d565b6000190192915050565b600b5461271d5761266e6179eb565b60015460005b8181101561271957600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff19169115159190911790556040860151805187946126f5936000805160206191b0833981519152909101920190617a1a565b50606082015161270b9060038301906013617a94565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e129061895a565b611f2d3382616515565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618fc56101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185a5565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a51565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165ad9050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c27565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061660692505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e129061884a565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165ad9050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183c3565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061660692505050565b90506127106129f2600f548361622b90919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e12906183fa565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165ad9050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e1290618462565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061660692505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187a2565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165ad9050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e129061852b565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061660692505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dc5565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165ad9050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184df565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061660692505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188c0565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165ad9050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618a9f565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061660692505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165ad9050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e1290618570565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061660692505050565b905060008111612ef55760405162461bcd60e51b8152600401610e129061864a565b6064811115612f165760405162461bcd60e51b8152600401610e1290618692565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165ad9050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d81565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061660692505050565b90506127106130036006548361622b90919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b88565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e22565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130769493929190618391565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b51565b613235617ac1565b600061325b604051806101e001604052806101ab8152602001618fc56101ab9139613d71565b915091508061327c5760405162461bcd60e51b8152600401610e1290618ca4565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050505061660b565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e49565b600b54613624576135756179eb565b60015460005b8181101561362057600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff19169115159190911790556040860151805187946135fc936000805160206191b0833981519152909101920190617a1a565b5060608201516136129060038301906013617a94565b50505080600101905061357b565b5050505b600061362f8261666f565b905061363a81611c4b565b156118fe576118fe8282616515565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d34565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185a5565b600034116136b45760405162461bcd60e51b8152600401610e1290618891565b3a156136d25760405162461bcd60e51b8152600401610e1290618a23565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167f290919063ffffffff16565b9063ffffffff61682c16565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ed8565b60405180910390a16137d1838263ffffffff6161e916565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167f290919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ed8565b60405180910390a1613889838263ffffffff6161e916565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ed8565b60405180910390a2613986565b600354613925908463ffffffff61622b16565b600390815581015461393d908463ffffffff61622b16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ed8565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ed8565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b6000613b0f600a5461374685613746600b8981548110613af157fe5b6000918252602090912060169091020154439063ffffffff6161e916565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b4e57600080fd5b505afa158015613b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8691906180ae565b9150915060009350808310613ce557613b9f8787615150565b5060405163436aa28360e11b8152600090612002906386d5450690613bc8908b906004016181eb565b60206040518083038186803b158015613be057600080fd5b505afa158015613bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c189190617e5b565b6001600160a01b031614613c84576040516313d13bdb60e31b815261100190639e89ded890613c4d908a9087906004016181ff565b600060405180830381600087803b158015613c6757600080fd5b505af1158015613c7b573d6000803e3d6000fd5b50505050613cdc565b6040516305bfb49960e41b815261100190635bfb499090613ca9908a906004016181eb565b600060405180830381600087803b158015613cc357600080fd5b505af1158015613cd7573d6000803e3d6000fd5b505050505b60019350613cf7565b818310613cf757613cf58761666f565b505b60098054600019019055600b80546000919088908110613d1357fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613d79617ac1565b6000613d83617ac1565b613d8b617b5e565b613d9c613d978661686e565b616893565b90506000805b613dab836168dd565b15613f1f5780613dd057613dc6613dc1846168fe565b61694c565b60ff168452613f17565b8060011415613f12576060613dec613de7856168fe565b6169cc565b90508051604051908082528060200260200182016040528015613e2957816020015b613e16617ae5565b815260200190600190039081613e0e5790505b5085602001819052508051604051908082528060200260200182016040528015613e6757816020015b6060815260200190600190039081613e525790505b50604086015260005b8151811015613f0757613e81617ae5565b60606000613ea1858581518110613e9457fe5b6020026020010151616a9d565b92509250925080613ec1578860009a509a50505050505050505050613f28565b8289602001518581518110613ed257fe5b60200260200101819052508189604001518581518110613eee57fe5b6020026020010181905250505050806001019050613e70565b506001925050613f17565b613f1f565b600101613da2565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f47579050509050613f6d8363ffffffff16616bb7565b81600081518110613f7a57fe5b602002602001018190525061115e81616bca565b6000606483511115613fc557600080516020619170833981519152604051613fb5906186ef565b60405180910390a1506066611dc5565b60005b83518110156140635760005b8181101561405a57848181518110613fe857fe5b6020026020010151600001516001600160a01b031685838151811061400957fe5b6020026020010151600001516001600160a01b031614156140525760008051602061917083398151915260405161403f906187ff565b60405180910390a1606692505050611dc5565b600101613fd4565b50600101613fc8565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141155760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161408b565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141ea5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141d65780601f106141ab576101008083540402835291602001916141d6565b820191906000526020600020905b8154815290600101906020018083116141b957829003601f168201915b50505050508152602001906001019061413f565b50505050905060005b82518110156142475782818151811061420857fe5b60200260200101516060015160030283828151811061422357fe5b60209081029190910101516001600160401b039091166060909101526001016141f3565b5060608061425789898686616c54565b915091506142658282615513565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142a4578160200160208202803683370190505b50905060005b828110156144355760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142db57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614316926001600160a01b0390921691016181eb565b60206040518083038186803b15801561432e57600080fd5b505afa158015614342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143669190617e5b565b6001600160a01b0316146143c857600182828151811061438257fe5b602002602001019060ff16908160ff1681525050600181815481106143a357fe5b9060005260206000209060040201600301546000146143c3578360010193505b61442d565b67016345785d8a0000600182815481106143de57fe5b906000526020600020906004020160030154106144005784600101945061442d565b6001818154811061440d57fe5b90600052602060002090600402016003015460001461442d578360010193505b6001016142aa565b50606084604051908082528060200260200182016040528015614462578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614491578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144c0578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144ef578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614520578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561454f578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561459757600080fd5b505afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf9190618096565b905067016345785d8a000081111561461b576000805160206191708339815191526040516145fc90618b10565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149af5789818151811061463257fe5b602002602001015160ff1660011415614728576001818154811061465257fe5b906000526020600020906004020160030154600014614723576001818154811061467857fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146a357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146d057fe5b906000526020600020906004020160030154838d815181106146ee57fe5b60200260200101818152505060018a8d8151811061470857fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149a7565b67016345785d8a00006001828154811061473e57fe5b906000526020600020906004020160030154106148c3576001818154811061476257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147c857fe5b906000526020600020906004020160030154816147e157fe5b06600183815481106147ef57fe5b90600052602060002090600402016003015403905061481783826161e990919063ffffffff16565b898f8151811061482357fe5b6020026020010181815250506001828154811061483c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061486d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061489a57fe5b60209081029190910101526148b5868263ffffffff61622b16565b95508d6001019d50506149a7565b600181815481106148d057fe5b9060005260206000209060040201600301546000146149a757600181815481106148f657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061492757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061495457fe5b906000526020600020906004020160030154838d8151811061497257fe5b60200260200101818152505060008a8d8151811061498c57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161461e565b5060008415614c25576002546040516303702b2960e51b815261100491636e0565209188916149e9918e918e918d914201906004016182f9565b6020604051808303818588803b158015614a0257600080fd5b505af193505050508015614a33575060408051601f3d908101601f19168201909252614a3091810190617fc3565b60015b614baa576040516000815260443d1015614a4f57506000614aea565b60046000803e60005160e01c6308c379a08114614a70576000915050614aea565b60043d036004833e81513d60248201116001600160401b0382111715614a9b57600092505050614aea565b80830180516001600160401b03811115614abc576000945050505050614aea565b8060208301013d8601811115614ada57600095505050505050614aea565b601f01601f191660405250925050505b80614af55750614b37565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b29919061837e565b60405180910390a250614ba5565b3d808015614b61576040519150601f19603f3d011682016040523d82523d6000602084013e614b66565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614b9b919061837e565b60405180910390a2505b614c25565b8015614bec577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bdf9190618ed8565b60405180910390a1614c23565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c1a906184a8565b60405180910390a25b505b8015614ddb5760005b8751811015614dd9576000888281518110614c4557fe5b60200260200101519050600060018281548110614c5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c8f57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d4b5760018281548110614cd057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d1f57fe5b906000526020600020906004020160030154604051614d3e9190618ed8565b60405180910390a2614dcf565b60018281548110614d5857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614da757fe5b906000526020600020906004020160030154604051614dc69190618ed8565b60405180910390a25b5050600101614c2e565b505b835115614fd15760005b8451811015614fcf578a8181518110614dfa57fe5b602002602001015160ff1660011415614e99576120026001600160a01b031663092193ab858381518110614e2a57fe5b6020026020010151878481518110614e3e57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6291906181eb565b6000604051808303818588803b158015614e7b57600080fd5b505af1158015614e8f573d6000803e3d6000fd5b5050505050614fc7565b6000858281518110614ea757fe5b60200260200101516001600160a01b03166108fc868481518110614ec757fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f5d57858281518110614efd57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f3b57fe5b6020026020010151604051614f509190618ed8565b60405180910390a2614fc5565b858281518110614f6957fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fa757fe5b6020026020010151604051614fbc9190618ed8565b60405180910390a25b505b600101614de5565b505b5050505050505050505050505060005b60015481101561503e5760018181548110614ff857fe5b9060005260206000209060040201600301546000146150365760006001828154811061502057fe5b9060005260206000209060040201600301819055505b600101614fe1565b5047156150ac577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150749190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150aa573d6000803e3d6000fd5b505b600060038190556005558151156150c7576150c782826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561510457600080fd5b505af1158015615118573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516057fe5b9060005260206000209060040201600301549050600060018080549050039050600161518a6130a3565b51116151bf5760006001858154811061519f57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516151f89190618ed8565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153e5576001816001018154811061523957fe5b90600052602060002090600402016001828154811061525457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061531557fe5b9060005260206000209060160201600b828154811061533057fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615387938386019390821615610100026000190190911604617b7e565b5061539a60038281019084016013617bf3565b509050508060010160046000600184815481106153b357fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161521b565b5060018054806153f157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061544457fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154766002830182617b1a565b615484600383016000617c1d565b50509055600081838161549357fe5b04905080156155075760015460005b81811015615504576154db83600183815481106154bb57fe5b90600052602060002090600402016003015461622b90919063ffffffff16565b600182815481106154e857fe5b60009182526020909120600360049092020101556001016154a2565b50505b50600195945050505050565b6060806000808080806155246131ad565b6001549091505b801561575357600181039250600b838154811061554457fe5b600091825260209091206001601690920201015460ff166155645761574a565b6001838154811061557157fe5b60009182526020909120600490910201546001600160a01b03169450615598858484613aac565b9350836155a45761574a565b60405163436aa28360e11b81526000908190612002906386d54506906155ce908a906004016181eb565b60206040518083038186803b1580156155e657600080fd5b505afa1580156155fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061561e9190617e5b565b90506001600160a01b038116156156a7576040516302ceee9160e11b81526120029063059ddd22906156549084906004016181eb565b60206040518083038186803b15801561566c57600080fd5b505afa158015615680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156a49190617e5b565b91505b60005b8c5181101561574657876001600160a01b03168d82815181106156c957fe5b6020026020010151600001516001600160a01b031614806157125750826001600160a01b03168d82815181106156fb57fe5b6020026020010151600001516001600160a01b0316145b1561573e5760018d828151811061572557fe5b6020908102919091010151901515608090910152615746565b6001016156aa565b5050505b6000190161552b565b5060005b89518110156157c05789818151811061576c57fe5b602002602001015160800151806157ac575060006001600160a01b03168a828151811061579557fe5b6020026020010151600001516001600160a01b0316145b156157b8578560010195505b600101615757565b50885185106158a85760408051600180825281830190925290816020015b6157e6617ae5565b8152602001906001900390816157de575050604080516001808252818301909252919850602082015b606081526020019060019003908161580f5790505095508860008151811061583357fe5b60200260200101518760008151811061584857fe5b60200260200101819052508760008151811061586057fe5b60200260200101518660008151811061587557fe5b602002602001018190525060008760008151811061588f57fe5b60209081029190910101519015156080909101526159ed565b848951036040519080825280602002602001820160405280156158e557816020015b6158d2617ae5565b8152602001906001900390816158ca5790505b5096508489510360405190808252806020026020018201604052801561591f57816020015b606081526020019060019003908161590a5790505b5095506000915060005b89518110156159eb5789818151811061593e57fe5b602002602001015160800151158015615981575060006001600160a01b03168a828151811061596957fe5b6020026020010151600001516001600160a01b031614155b156159e35789818151811061599257fe5b60200260200101518884815181106159a657fe5b60200260200101819052508881815181106159bd57fe5b60200260200101518784815181106159d157fe5b60200260200101819052508260010192505b600101615929565b505b50505050505b9250929050565b600154825160005b82811015615b17576001615a14617ae5565b60018381548110615a2157fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615aeb57878181518110615ab157fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ae35760009250615aeb565b600101615a9d565b508115615b0d5780516001600160a01b03166000908152600460205260408120555b5050600101615a02565b5080821115615bd657805b82811015615bd4576001805480615b3557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b8857fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bba6002830182617b1a565b615bc8600383016000617c1d565b50509055600101615b22565b505b6000818310615be55781615be7565b825b905060005b81811015615f8b57615c99868281518110615c0357fe5b602002602001015160018381548110615c1857fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617020565b615e4d578060010160046000888481518110615cb157fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615ced57fe5b602002602001015160018281548110615d0257fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dbd57fe5b6020026020010151600b8281548110615dd257fe5b90600052602060002090601602016002019080519060200190615df6929190617a1a565b506000600b8281548110615e0657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e3757fe5b6000918252602090912060169091020155615f83565b858181518110615e5957fe5b60200260200101516060015160018281548110615e7257fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f38858281518110615eb657fe5b6020026020010151600b8381548110615ecb57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8357848181518110615f4857fe5b6020026020010151600b8281548110615f5d57fe5b90600052602060002090601602016002019080519060200190615f81929190617a1a565b505b600101615bec565b508282111561616357615f9c6179eb565b835b8381101561616057858181518110615fb257fe5b602002602001015182604001819052506001878281518110615fd057fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206191908339815191528101918255858301516000805160206191d08339815191528201805491151560ff1990921691909117905592850151805186949293616106936000805160206191b083398151915201920190617a1a565b50606082015161611c9060038301906013617a94565b505050806001016004600089848151811061613357fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615f9e565b50505b61616b61707c565b616173617264565b6000600981905560015493505b838110156161e1576000600b828154811061619757fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161c857fe5b6000918252602090912060169091020155600101616180565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617452565b60008282018381101561115e5760405162461bcd60e51b8152600401610e1290618613565b60015481516040805182815260208084028201019091526060929190839082801561628f57816020015b606081526020019060019003908161627a5790505b50600b5490915083146162a6579250611d15915050565b60005b828110156163b557600b6001600460008985815181106162c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106162f957fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163915780601f1061636657610100808354040283529160200191616391565b820191906000526020600020905b81548152906001019060200180831161637457829003601f168201915b50505050508282815181106163a257fe5b60209081029190910101526001016162a9565b50949350505050565b60005b8281101561650b57600082878388016040516020016163e19291906181dd565b6040516020818303038152906040528051906020012060001c8161640157fe5b06905080850182870114616502576000898388018151811061641f57fe5b602002602001015190506060898489018151811061643957fe5b602002602001015190508a8388018151811061645157fe5b60200260200101518b858a018151811061646757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061649657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164c457fe5b60200260200101518a858a01815181106164da57fe5b6020026020010181905250808a848901815181106164f457fe5b602002602001018190525050505b506001016163c1565b5050505050505050565b600980546001908101909155600b80548390811061652f57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061656557fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165c091906181c1565b60405160208183030381529060405280519060200120836040516020016165e791906181c1565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166275760009250616665565b600160208701838101602088015b6002848385100114156166605780518351146166545760009650600093505b60209283019201616635565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061669857506000199050611d15565b6001810390506000600182815481106166ad57fe5b90600052602060002090600402016003015490506000600183815481106166d057fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616729908590618ed8565b60405180910390a28061674157829350505050611d15565b600081838161674c57fe5b04905080156167e85760005b8481101561679a5761677182600183815481106154bb57fe5b6001828154811061677e57fe5b6000918252602090912060036004909202010155600101616758565b50600180549085015b818110156167e5576167bc83600183815481106154bb57fe5b600182815481106167c957fe5b60009182526020909120600360049092020101556001016167a3565b50505b5091949350505050565b60008261680157506000611dc5565b8282028284828161680e57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189e2565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061747e565b616876617c2c565b506040805180820190915281518152602082810190820152919050565b61689b617b5e565b6168a4826174b5565b6168ad57600080fd5b60006168bc83602001516174ef565b60208085015160408051808201909152868152920190820152915050919050565b60006168e7617c2c565b505080518051602091820151919092015191011190565b616906617c2c565b61690f826168dd565b61691857600080fd5b6020820151600061692882617552565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696157508151602110155b61696a57600080fd5b600061697983602001516174ef565b9050808360000151101561699f5760405162461bcd60e51b8152600401610e1290618bf0565b8251602080850151830180519284900392918310156163b557506020919091036101000a90049392505050565b60606169d7826174b5565b6169e057600080fd5b60006169eb83617633565b9050606081604051908082528060200260200182016040528015616a2957816020015b616a16617c2c565b815260200190600190039081616a0e5790505b5090506000616a3b85602001516174ef565b60208601510190506000805b84811015616a9257616a5883617552565b9150604051806040016040528083815260200184815250848281518110616a7b57fe5b602090810291909101015291810191600101616a47565b509195945050505050565b616aa5617ae5565b60606000616ab1617ae5565b6060616abb617b5e565b616ac487616893565b90506000805b616ad3836168dd565b15616ba85780616afe57616aee616ae9846168fe565b61768f565b6001600160a01b03168552616ba0565b8060011415616b2657616b13616ae9846168fe565b6001600160a01b03166020860152616ba0565b8060021415616b4e57616b3b616ae9846168fe565b6001600160a01b03166040860152616ba0565b8060031415616b7a57616b63613dc1846168fe565b6001600160401b0316606086015260019150616ba0565b8060041415616b9b57616b94616b8f846168fe565b6176a9565b9350616ba0565b616ba8565b600101616aca565b50929791965091945092505050565b6060611dc5616bc583617719565b6177ff565b6060815160001415616beb5750604080516000815260208101909152611d15565b606082600081518110616bfa57fe5b602002602001015190506000600190505b8351811015616c3b57616c3182858381518110616c2457fe5b6020026020010151617851565b9150600101616c0b565b5061115e616c4e825160c060ff166178ce565b82617851565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616c9457600080fd5b505afa158015616ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ccc9190618096565b90508085518851011015616ce1575083518651015b606081604051908082528060200260200182016040528015616d1d57816020015b616d0a617ae5565b815260200190600190039081616d025790505b509050606082604051908082528060200260200182016040528015616d5657816020015b6060815260200190600190039081616d415790505b50905060008060005b8b51831080616d6e5750895182105b8015616d7957508581105b1561700e578b51831415616de957898281518110616d9357fe5b6020026020010151858281518110616da757fe5b6020026020010181905250888281518110616dbe57fe5b6020026020010151848281518110616dd257fe5b602090810291909101015260019182019101616d5f565b8951821415616e54578b8381518110616dfe57fe5b6020026020010151858281518110616e1257fe5b60200260200101819052508a8381518110616e2957fe5b6020026020010151848281518110616e3d57fe5b602090810291909101015260019283019201616d5f565b898281518110616e6057fe5b6020026020010151606001516001600160401b03168c8481518110616e8157fe5b6020026020010151606001516001600160401b03161115616efd578b8381518110616ea857fe5b6020026020010151858281518110616ebc57fe5b60200260200101819052508a8381518110616ed357fe5b6020026020010151848281518110616ee757fe5b6020026020010181905250826001019250617006565b898281518110616f0957fe5b6020026020010151606001516001600160401b03168c8481518110616f2a57fe5b6020026020010151606001516001600160401b03161015616fa657898281518110616f5157fe5b6020026020010151858281518110616f6557fe5b6020026020010181905250888281518110616f7c57fe5b6020026020010151848281518110616f9057fe5b6020026020010181905250816001019150617006565b898281518110616fb257fe5b6020026020010151600001516001600160a01b03168c8481518110616fd357fe5b6020026020010151600001516001600160a01b03161015616ffa578b8381518110616ea857fe5b898281518110616d9357fe5b600101616d5f565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561705a575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170c757805b828110156170c557601280548061709f57fe5b6001900381819060005260206000200160006170bb9190617b1a565b905560010161708c565b505b60008183106170d657816170d8565b825b905060005b818110156171f057617195601282815481106170f557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171835780601f1061715857610100808354040283529160200191617183565b820191906000526020600020905b81548152906001019060200180831161716657829003601f168201915b50505050506013838154811061341857fe5b6171e857601381815481106171a657fe5b90600052602060002001601282815481106171bd57fe5b9060005260206000200190805460018160011615610100020316600290046171e6929190617b7e565b505b6001016170dd565b5082821115610e3257825b8281101561725e5760126013828154811061721257fe5b6000918252602080832084546001818101875595855291909320929091018054617255949390920192909160026101009282161592909202600019011604617b7e565b506001016171fb565b50505050565b601354600b54808211156172af57805b828110156172ad57601380548061728757fe5b6001900381819060005260206000200160006172a39190617b1a565b9055600101617274565b505b60008183106172be57816172c0565b825b905060005b818110156173df5761737d601382815481106172dd57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561736b5780601f106173405761010080835404028352916020019161736b565b820191906000526020600020905b81548152906001019060200180831161734e57829003601f168201915b5050505050600b8381548110615ecb57fe5b6173d757600b818154811061738e57fe5b9060005260206000209060160201600201601382815481106173ac57fe5b9060005260206000200190805460018160011615610100020316600290046173d5929190617b7e565b505b6001016172c5565b5082821115610e3257825b8281101561725e576013600b828154811061740157fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461744995939094019390926000199082161561010002011604617b7e565b506001016173ea565b600081848411156174765760405162461bcd60e51b8152600401610e12919061837e565b505050900390565b6000818361749f5760405162461bcd60e51b8152600401610e12919061837e565b5060008385816174ab57fe5b0495945050505050565b80516000906174c657506000611d15565b6020820151805160001a9060c08210156174e557600092505050611d15565b5060019392505050565b8051600090811a6080811015617509576000915050611d15565b60b8811080617524575060c08110801590617524575060f881105b15617533576001915050611d15565b60c08110156175475760b519019050611d15565b60f519019050611d15565b80516000908190811a608081101561756d576001915061762c565b60b881101561758257607e198101915061762c565b60c08110156175d357600060b78203600186019550806020036101000a8651049150600181018201935050808310156175cd5760405162461bcd60e51b8152600401610e129061892f565b5061762c565b60f88110156175e85760be198101915061762c565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561762a5760405162461bcd60e51b8152600401610e129061892f565b505b5092915050565b805160009061764457506000611d15565b6000809050600061765884602001516174ef565b602085015185519181019250015b808210156176865761767782617552565b82019150826001019250617666565b50909392505050565b80516000906015146176a057600080fd5b611dc58261694c565b80516060906176b757600080fd5b60006176c683602001516174ef565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156176fd576020820181803683370190505b50905060008160200190506163b58487602001510182856179a0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661775d57506018617781565b6fffffffffffffffffffffffffffffffff19841661777d57506010617781565b5060005b60208110156177b75781818151811061779657fe5b01602001516001600160f81b031916156177af576177b7565b600101617781565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177ec576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178315750607f60f81b8260008151811061781f57fe5b01602001516001600160f81b03191611155b1561783d575080611d15565b611dc561784f8351608060ff166178ce565b835b6060806040519050835180825260208201818101602087015b8183101561788257805183526020928301920161786a565b50855184518101855292509050808201602086015b818310156178af578051835260209283019201617897565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106178f85760405162461bcd60e51b8152600401610e129061877a565b604080516001808252818301909252606091602082018180368337019050509050603784116179525782840160f81b8160008151811061793457fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061795d85617719565b90508381510160370160f81b8260008151811061797657fe5b60200101906001600160f81b031916908160001a9053506179978282617851565b95945050505050565b806179aa57610e32565b5b602081106179ca578251825260209283019290910190601f19016179ab565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a15617c46565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a5b57805160ff1916838001178555617a88565b82800160010185558215617a88579182015b82811115617a88578251825591602001919060010190617a6d565b506131e8929150617c65565b8260138101928215617a885791602002820182811115617a88578251825591602001919060010190617a6d565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b405750611f2d565b601f016020900490600052602060002090810190611f2d9190617c65565b6040518060400160405280617b71617c2c565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bb75780548555617a88565b82800160010185558215617a8857600052602060002091601f016020900482015b82811115617a88578254825591600101919060010190617bd8565b8260138101928215617a885791820182811115617a88578254825591600101919060010190617bd8565b50611f2d906013810190617c65565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c6b565b8035611dc581618faf565b60008083601f840112617c9b578182fd5b5081356001600160401b03811115617cb1578182fd5b60208301915083602080830285010111156159f357600080fd5b6000601f8381840112617cdc578182fd5b8235617cef617cea82618f64565b618f3e565b818152925060208084019085810160005b84811015617d81578135880189603f820112617d1b57600080fd5b838101356001600160401b03811115617d3357600080fd5b617d44818901601f19168601618f3e565b81815260408c81848601011115617d5a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d00565b50505050505092915050565b600082601f830112617d9d578081fd5b8135617dab617cea82618f64565b818152915060208083019084810181840286018201871015617dcc57600080fd5b6000805b85811015617d815782356001600160401b0381168114617dee578283fd5b85529383019391830191600101617dd0565b60008083601f840112617e11578182fd5b5081356001600160401b03811115617e27578182fd5b6020830191508360208285010111156159f357600080fd5b600060208284031215617e50578081fd5b813561115e81618faf565b600060208284031215617e6c578081fd5b815161115e81618faf565b60008060008060408587031215617e8c578283fd5b84356001600160401b0380821115617ea2578485fd5b617eae88838901617c8a565b90965094506020870135915080821115617ec6578384fd5b50617ed387828801617c8a565b95989497509550505050565b600080600060608486031215617ef3578283fd5b83356001600160401b0380821115617f09578485fd5b81860187601f820112617f1a578586fd5b80359250617f2a617cea84618f64565b80848252602080830192508084018b828389028701011115617f4a57898afd5b8994505b86851015617f7457617f608c82617c7f565b845260019490940193928101928101617f4e565b509097508801359350505080821115617f8b578384fd5b617f9787838801617d8d565b93506040860135915080821115617fac578283fd5b50617fb986828701617ccb565b9150509250925092565b600060208284031215617fd4578081fd5b8151801515811461115e578182fd5b60008060208385031215617ff5578182fd5b82356001600160401b0381111561800a578283fd5b61801685828601617e00565b90969095509350505050565b60008060008060408587031215618037578384fd5b84356001600160401b038082111561804d578586fd5b61805988838901617e00565b90965094506020870135915080821115618071578384fd5b50617ed387828801617e00565b60006020828403121561808f578081fd5b5035919050565b6000602082840312156180a7578081fd5b5051919050565b600080604083850312156180c0578182fd5b505080516020909101519092909150565b6000806000604084860312156180e5578081fd5b833560ff811681146180f5578182fd5b925060208401356001600160401b0381111561810f578182fd5b61811b86828701617e00565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181605781516001600160a01b03168752958201959082019060010161813b565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181ad816020860160208601618f83565b601f01601f19169290920160200192915050565b600082516181d3818460208701618f83565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618128565b60006040825261829c6040830185618128565b602083820381850152818551808452828401915082838202850101838801865b838110156182ea57601f198784030185526182d8838351618195565b948601949250908501906001016182bc565b50909998505050505050505050565b60006080825261830c6080830187618128565b828103602084810191909152865180835287820192820190845b8181101561834257845183529383019391830191600101618326565b505084810360408601526183568188618128565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e6020830184618195565b6000604082526183a560408301868861816b565b82810360208401526183b881858761816b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179976060830184618195565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff851682526040602083015261799760408301848661816b565b6040518181016001600160401b0381118282101715618f5c57600080fd5b604052919050565b60006001600160401b03821115618f79578081fd5b5060209081020190565b60005b83811015618f9e578181015183820152602001618f86565b8381111561725e5750506000910152565b6001600160a01b0381168114611f2d57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/feynman_fix/types.go b/core/systemcontracts/feynman_fix/types.go new file mode 100644 index 0000000000..3dfddd9158 --- /dev/null +++ b/core/systemcontracts/feynman_fix/types.go @@ -0,0 +1,11 @@ +package feynman_fix + +import _ "embed" + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/ValidatorContract + ChapelValidatorContract string + //go:embed chapel/StakeHubContract + ChapelStakeHubContract string +) diff --git a/core/systemcontracts/gibbs/chapel/StakingContract b/core/systemcontracts/gibbs/chapel/StakingContract new file mode 100644 index 0000000000..53b109d94a --- /dev/null +++ b/core/systemcontracts/gibbs/chapel/StakingContract @@ -0,0 +1 @@ +60806040526004361061036f5760003560e01c806370fd5bad116101c6578063b88a802f116100f7578063d7ecfcb611610095578063f45fd80b1161006f578063f45fd80b14610bd0578063f9a2bbc714610c15578063fc3e590814610646578063fd6a687914610c2a57610376565b8063d7ecfcb6146107ee578063dc927faf14610ba6578063edc1a5b014610bbb57610376565b8063c2117d82116100d1578063c2117d8214610abc578063c81b166214610ad1578063c8509d8114610ae6578063d61b9b9314610b6b57610376565b8063b88a802f14610a57578063baaafd3b14610a6c578063bf8546ca14610a8157610376565b806396713da911610164578063a78abc161161013e578063a78abc1614610939578063ab51bb9614610962578063ac43175114610977578063b14315df14610a4257610376565b806396713da9146108fa5780639dc092621461090f578063a1a11bf51461092457610376565b806375d47a0a116101a057806375d47a0a1461084b5780637942fd0514610860578063831d65d11461087557806392b888a4146105f257610376565b806370fd5bad146107ee578063718a8aa81461080357806375aca5931461081857610376565b8063413d9c3a116102a05780635d17c8bd1161023e57806369b635b61161021857806369b635b61461075b5780636bd8f804146107705780636e47b482146107a65780636fb7f7eb146107bb57610376565b80635d17c8bd1461071c5780635d499b1b1461073157806362b171d21461074657610376565b80634bf6c8821161027a5780634bf6c882146106b15780634d99dd16146106c657806351e80672146106f2578063552aaf931461070757610376565b8063413d9c3a1461065b57806343756e5c14610670578063493279b11461068557610376565b8063151817e31161030d578063333ad3e7116102e7578063333ad3e71461061c57806334c43354146106315780633dffc387146105f25780633fdfa7e41461064657610376565b8063151817e3146105c757806317c9efb0146105f25780632fdeb1111461060757610376565b80630bee7a67116103495780630bee7a671461043b5780630e2374a5146104695780631182b8751461049a57806311fe9ec61461059457610376565b8063026e402b1461037b57806302985992146103a9578063047636d1146103d057610376565b3661037657005b600080fd5b6103a76004803603604081101561039157600080fd5b506001600160a01b038135169060200135610c3f565b005b3480156103b557600080fd5b506103be611141565b60408051918252519081900360200190f35b3480156103dc57600080fd5b50610403600480360360208110156103f357600080fd5b50356001600160a01b0316611147565b6040518082606080838360005b83811015610428578181015183820152602001610410565b5050505090500191505060405180910390f35b34801561044757600080fd5b5061045061119b565b6040805163ffffffff9092168252519081900360200190f35b34801561047557600080fd5b5061047e6111a0565b604080516001600160a01b039092168252519081900360200190f35b3480156104a657600080fd5b5061051f600480360360408110156104bd57600080fd5b60ff8235169190810190604081016020820135600160201b8111156104e157600080fd5b8201836020820111156104f357600080fd5b803590602001918460018302840111600160201b8311171561051457600080fd5b5090925090506111a6565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610559578181015183820152602001610541565b50505050905090810190601f1680156105865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a057600080fd5b506103be600480360360208110156105b757600080fd5b50356001600160a01b031661135c565b3480156105d357600080fd5b506105dc611377565b6040805160ff9092168252519081900360200190f35b3480156105fe57600080fd5b506105dc61137c565b34801561061357600080fd5b506103be611381565b34801561062857600080fd5b50610450611387565b34801561063d57600080fd5b506103be61138c565b34801561065257600080fd5b506105dc611397565b34801561066757600080fd5b506103be61139c565b34801561067c57600080fd5b5061047e6113a3565b34801561069157600080fd5b5061069a6113a9565b6040805161ffff9092168252519081900360200190f35b3480156106bd57600080fd5b506105dc6113ae565b6103a7600480360360408110156106dc57600080fd5b506001600160a01b0381351690602001356113b3565b3480156106fe57600080fd5b5061047e61199a565b34801561071357600080fd5b506105dc6119a0565b34801561072857600080fd5b506103be6119a5565b34801561073d57600080fd5b506103be6119ab565b34801561075257600080fd5b506103be6119b4565b34801561076757600080fd5b506103be611aec565b6103a76004803603606081101561078657600080fd5b506001600160a01b03813581169160208101359091169060400135611af2565b3480156107b257600080fd5b5061047e612160565b3480156107c757600080fd5b506103be600480360360208110156107de57600080fd5b50356001600160a01b0316612166565b3480156107fa57600080fd5b506105dc612181565b34801561080f57600080fd5b506105dc612186565b34801561082457600080fd5b506103be6004803603602081101561083b57600080fd5b50356001600160a01b031661218b565b34801561085757600080fd5b5061047e6121a6565b34801561086c57600080fd5b506105dc6121ac565b34801561088157600080fd5b506103a76004803603604081101561089857600080fd5b60ff8235169190810190604081016020820135600160201b8111156108bc57600080fd5b8201836020820111156108ce57600080fd5b803590602001918460018302840111600160201b831117156108ef57600080fd5b5090925090506121b1565b34801561090657600080fd5b506105dc612473565b34801561091b57600080fd5b5061047e612478565b34801561093057600080fd5b5061047e61247e565b34801561094557600080fd5b5061094e612484565b604080519115158252519081900360200190f35b34801561096e57600080fd5b506104506119a0565b34801561098357600080fd5b506103a76004803603604081101561099a57600080fd5b810190602081018135600160201b8111156109b457600080fd5b8201836020820111156109c657600080fd5b803590602001918460018302840111600160201b831117156109e757600080fd5b919390929091602081019035600160201b811115610a0457600080fd5b820183602082011115610a1657600080fd5b803590602001918460018302840111600160201b83111715610a3757600080fd5b50909250905061248d565b348015610a4e57600080fd5b506105dc612a8a565b348015610a6357600080fd5b506103be612a8f565b348015610a7857600080fd5b506103be612bc4565b348015610a8d57600080fd5b506103be60048036036040811015610aa457600080fd5b506001600160a01b0381358116916020013516612bcf565b348015610ac857600080fd5b506103be612bfc565b348015610add57600080fd5b5061047e612c02565b348015610af257600080fd5b506103a760048036036040811015610b0957600080fd5b60ff8235169190810190604081016020820135600160201b811115610b2d57600080fd5b820183602082011115610b3f57600080fd5b803590602001918460018302840111600160201b83111715610b6057600080fd5b509092509050612c08565b348015610b7757600080fd5b506103be60048036036040811015610b8e57600080fd5b506001600160a01b0381358116916020013516612e25565b348015610bb257600080fd5b5061047e612e50565b348015610bc757600080fd5b506103be612e56565b348015610bdc57600080fd5b506103be60048036036060811015610bf357600080fd5b506001600160a01b038135811691602081013582169160409091013516612e63565b348015610c2157600080fd5b5061047e612e98565b348015610c3657600080fd5b5061047e612e9e565b60105460ff1660021415610c8b576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cb357506402540be4008106155b610d04576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d41576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600354821015610d98576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610dac90839063ffffffff612ea416565b341015610df7576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b60405133906108fc9060009081818181818888f19350505050610e55576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610e6c836402540be40063ffffffff612f0516565b90506000610e80348563ffffffff612f4716565b90506000610e9960025483612f4790919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610eb5579050509050610ed533612f89565b81600081518110610ee257fe5b6020026020010181905250610eff876001600160a01b0316612f89565b81600181518110610f0c57fe5b6020026020010181905250610f2084612fac565b81600281518110610f2d57fe5b60200260200101819052506060610f4d6001610f4884612fbf565b613049565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083610fab876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611009578181015183820152602001610ff1565b50505050905090810190601f1680156110365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561105757600080fd5b505af115801561106b573d6000803e3d6000fd5b5061100492506108fc91506110889050898663ffffffff612ea416565b6040518115909202916000818181858888f193505050501580156110b0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156110e1573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff19166001179055505050505050565b60035481565b61114f614dd9565b611157614dd9565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b61200181565b606033612000146111e85760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff16611225576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b61122d614df7565b61127461126f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b6130f4565b905060006112896112848361313e565b61318c565b90506000606060ff8316600414156112ae576112a484613243565b9092509050611305565b60ff8316600514156112c3576112a484613423565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615611351576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff16600214156113ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561142757506402540be4008106155b611478576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff166114b5576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600154341015611503576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210156115be576002548211611556576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b038716845290915290205482146115be576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b0387168452909152902054821115611627576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b038716845290915290205442101561169f576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b60006116b6836402540be40063ffffffff612f0516565b60025490915034906000906116d290839063ffffffff612f4716565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816116ee57905050905061170e33612f89565b8160008151811061171b57fe5b6020026020010181905250611738876001600160a01b0316612f89565b8160018151811061174557fe5b602002602001018190525061175984612fac565b8160028151811061176657fe5b602002602001018190525060606117816002610f4884612fbf565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c90935291208054909101905590506117d242620a8c0063ffffffff612ea416565b3360009081526007602090815260408083206001600160a01b038d16845290915290205561200063f7a251d7601083611816876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561187457818101518382015260200161185c565b50505050905090810190601f1680156118a15780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156118c257600080fd5b505af11580156118d6573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015611909573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561193a573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff19166001179055505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611a03576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611a6a576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290555183156108fc0291849190818181858888f19350505050158015611aa5573d6000803e3d6000fd5b5060408051828152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a26010805460ff1916600117905590565b60035490565b60105460ff1660021415611b3e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611b6657506402540be4008106155b611bb7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611bf4576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611c52576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611ca0576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210158015611cd557503360009081526005602090815260408083206001600160a01b03881684529091529020548211155b611d17576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611d8557503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611dd6576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b6000611ded836402540be40063ffffffff612f0516565b6002549091503490600090611e0990839063ffffffff612f4716565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611e25579050509050611e4533612f89565b81600081518110611e5257fe5b6020026020010181905250611e6f886001600160a01b0316612f89565b81600181518110611e7c57fe5b6020026020010181905250611e99876001600160a01b0316612f89565b81600281518110611ea657fe5b6020026020010181905250611eba84612fac565b81600381518110611ec757fe5b60200260200101819052506060611ee26003610f4884612fbf565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d9093529120805490910190559050611f3342620a8c0063ffffffff612ea416565b3360009081526009602090815260408083206001600160a01b038d81168552908352818420908e168452909152902055611f7642620a8c0063ffffffff612ea416565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908d16845290915290205561200063f7a251d7601083611fc6876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561202457818101518382015260200161200c565b50505050905090810190601f1680156120515780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561207257600080fd5b505af1158015612086573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156120b9573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156120ea573d6000803e3d6000fd5b50876001600160a01b0316896001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158a87604051808381526020018281526020019250505060405180910390a450506010805460ff1916600117905550505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b33612000146121f15760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff1661222e576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612236614df7565b61227861126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b905060008060606000805b61228c8661363f565b156122f757806122a9576122a26112848761313e565b94506122ef565b80600114156122c5576122be6112848761313e565b93506122ef565b80600214156122ea576122df6122da8761313e565b613660565b9250600191506122ef565b6122f7565b600101612283565b8161233d576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b612346836136d0565b612389576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b61239561126f846130cf565b955060006123a56112848861313e565b90506123af614df7565b6123b88861363f565b156123db576123d461126f6123cf6122da8b61313e565b6130cf565b905061241c565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff82166001141561243857612433818888613724565b612466565b60ff82166002141561244f57612433818888613adb565b60ff8216600314156112c357612433818888613da8565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff166124e4576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146125245760405162461bcd60e51b815260040180806020018281038252602e815260200180614f0d602e913960400191505060405180910390fd5b61258584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061410d9050565b156126eb57602081146125df576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161261d918585808385018382808284376000920191909152506141f492505050565b9050600354811061265f5760405162461bcd60e51b815260040180806020018281038252602e815260200180614f3b602e913960400191505060405180910390fd5b600254811161269f5760405162461bcd60e51b815260040180806020018281038252602e815260200180614f69602e913960400191505060405180910390fd5b6402540be4008106156126e35760405162461bcd60e51b815260040180806020018281038252602c815260200180614ee1602c913960400191505060405180910390fd5b6001556129f8565b61274f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061410d9050565b1561287557602081146127a9576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127e7918585808385018382808284376000920191909152506141f492505050565b905060015481106128295760405162461bcd60e51b815260040180806020018281038252602e815260200180614e61602e913960400191505060405180910390fd5b6402540be40081061561286d5760405162461bcd60e51b815260040180806020018281038252602f815260200180614e32602f913960400191505060405180910390fd5b6002556129f8565b6128d984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061410d9050565b156129bb5760208114612933576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612971918585808385018382808284376000920191909152506141f492505050565b905060015481116129b35760405162461bcd60e51b8152600401808060200182810382526031815260200180614e8f6031913960400191505060405180910390fd5b6003556129f8565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612ade576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612b42576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290555183156108fc0291849190818181858888f19350505050158015612b7d573d6000803e3d6000fd5b5060408051828152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a26010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612c485760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff16612c85576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612cc482828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136d092505050565b612d07576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b612d0f614df7565b612d5161126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b90506000612d616112848361313e565b9050612d6b614df7565b612d748361363f565b15612d9257612d8b61126f6123cf6122da8661313e565b9050612dd8565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff821660011415612df257612ded816141f9565b612e1c565b60ff821660021415612e0757612ded81614413565b60ff8216600314156112c357612ded8161453d565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b61100481565b600082820183811015612efe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000612efe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506146a2565b6000612efe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614744565b60408051600560a21b8318601482015260348101909152606090612efe8161479e565b6060612bf6612fba836147f4565b61479e565b6060815160001415612fe05750604080516000815260208101909152611196565b606082600081518110612fef57fe5b602002602001015190506000600190505b8351811015613030576130268285838151811061301957fe5b60200260200101516148da565b9150600101613000565b50612efe613043825160c060ff16614957565b826148da565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816130625790505090506130858460ff16612fac565b8160008151811061309257fe5b60200260200101819052506130a68361479e565b816001815181106130b357fe5b60200260200101819052506130c781612fbf565b949350505050565b6130d7614e17565b506040805180820190915281518152602082810190820152919050565b6130fc614df7565b61310582614a4f565b61310e57600080fd5b600061311d8360200151614a89565b60208085015160408051808201909152868152920190820152915050919050565b613146614e17565b61314f8261363f565b61315857600080fd5b6020820151600061316882614aec565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906131a157508151602110155b6131aa57600080fd5b60006131b98360200151614a89565b90508083600001511015613214576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561323a57826020036101000a820491505b50949350505050565b600060606000806000805b6132578761363f565b156132a957826132795761327261326d8861313e565b614c1f565b915061329e565b82600114156132995761328e6112848861313e565b90506001935061329e565b6132a9565b82600101925061324e565b836132ef576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561333957600080fd5b505af115801561334d573d6000803e3d6000fd5b505050506040513d602081101561336357600080fd5b50519050806133885761337a600484846065614c39565b96509650505050505061341e565b6001600160a01b0383166000908152600660205260409020546133b1908363ffffffff612ea416565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6134398861363f565b156134a257836134565761344f61326d8961313e565b9250613497565b83600114156134725761346b61326d8961313e565b9150613497565b8360021415613492576134876112848961313e565b905060019450613497565b6134a2565b836001019350613430565b846134e8576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561353257600080fd5b505af1158015613546573d6000803e3d6000fd5b505050506040513d602081101561355c57600080fd5b505190508061358257613573600585846065614c39565b9750975050505050505061341e565b6001600160a01b0380851660008181526007602090815260408083209488168352938152838220829055918152600890915220546135c6908363ffffffff612ea416565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b6000613649614e17565b505080518051602091820151919092015191011190565b805160609061366e57600080fd5b600061367d8360200151614a89565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156136b4576020820181803683370190505b509050600081602001905061323a848760200151018285614d35565b8051602080830191909120600e546000908152600a90925260408220548082146136ff57600092505050611196565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6137368861363f565b1561379f57836137535761374c61326d8961313e565b9250613794565b836001141561376f5761376861326d8961313e565b9150613794565b836002141561378f576137846112848961313e565b905060019450613794565b61379f565b83600101935061372d565b846137e5576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006137fc826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156139425760ff87161561386f576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613898908263ffffffff612ea416565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546138da908263ffffffff612ea416565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613ad0565b60ff8816613a94576001600160a01b038416600090815260086020526040902054613973908263ffffffff612ea416565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156139cf57600080fd5b505af11580156139e3573d6000803e3d6000fd5b505050506040513d60208110156139f957600080fd5b5051613a42576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613ad0565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613aed8861363f565b15613b565783613b0a57613b0361326d8961313e565b9250613b4b565b8360011415613b2657613b1f61326d8961313e565b9150613b4b565b8360021415613b4657613b3b6112848961313e565b905060019450613b4b565b613b56565b836001019350613ae4565b84613b9c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613bb3826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff881660011415613d325760ff871615613c26576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613c4f908263ffffffff612f4716565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613c91908263ffffffff612f4716565b6001600160a01b03808616600090815260056020908152604080832093881683529290522055613cca42620a8c0063ffffffff612ea416565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613ad0565b60ff8816613a94576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613ad0565b6000806000806000805b613dbb8961363f565b15613e405784613dd857613dd161326d8a61313e565b9350613e35565b8460011415613df457613ded61326d8a61313e565b9250613e35565b8460021415613e1057613e0961326d8a61313e565b9150613e35565b8460031415613e3057613e256112848a61313e565b905060019550613e35565b613e40565b846001019450613db2565b85613e86576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613e9d826402540be40063ffffffff614d8016565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156140705760ff881615613f10576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054613f46908263ffffffff612f4716565b6001600160a01b03868116600090815260056020908152604080832089851684529091528082209390935590851681522054613f829082612ea4565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613fbb42620a8c0063ffffffff612ea416565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613ffe42620a8c0063ffffffff612ea416565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614101565b60ff8916613a94576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106141425780518252601f199092019160209182019101614123565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106141b05780518252601f199092019160209182019101614191565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61420b8661363f565b1561427457836142285761422161326d8761313e565b9250614269565b83600114156142445761423d61326d8761313e565b9150614269565b8360021415614264576142596112848761313e565b905060019450614269565b614274565b836001019350614202565b846142ba576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142d1826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600b602090815260408083208054600019019055600890915290205490915061430f908263ffffffff612ea416565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561436b57600080fd5b505af115801561437f573d6000803e3d6000fd5b505050506040513d602081101561439557600080fd5b50516143de576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b6144258661363f565b1561448e57836144425761443b61326d8761313e565b9250614483565b836001141561445e5761445761326d8761313e565b9150614483565b836002141561447e576144736112848761313e565b905060019450614483565b61448e565b83600101935061441c565b846144d4576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6145508761363f565b156145d5578461456d5761456661326d8861313e565b93506145ca565b84600114156145895761458261326d8861313e565b92506145ca565b84600214156145a55761459e61326d8861313e565b91506145ca565b84600314156145c5576145ba6112848861313e565b9050600195506145ca565b6145d5565b846001019450614547565b8561461b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b6000818361472e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156146f35781810151838201526020016146db565b50505050905090810190601f1680156147205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161473a57fe5b0495945050505050565b600081848411156147965760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156146f35781810151838201526020016146db565b505050900390565b6060815160011480156147d05750607f60f81b826000815181106147be57fe5b01602001516001600160f81b03191611155b156147dc575080611196565b612bf66147ee8351608060ff16614957565b836148da565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166148385750601861485c565b6fffffffffffffffffffffffffffffffff1984166148585750601061485c565b5060005b60208110156148925781818151811061487157fe5b01602001516001600160f81b0319161561488a57614892565b60010161485c565b60008160200390506060816040519080825280601f01601f1916602001820160405280156148c7576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561490b5780518352602092830192016148f3565b50855184518101855292509050808201602086015b81831015614938578051835260209283019201614920565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106149a7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614a015782840160f81b816000815181106149e357fe5b60200101906001600160f81b031916908160001a9053509050612bf6565b6060614a0c856147f4565b90508381510160370160f81b82600081518110614a2557fe5b60200101906001600160f81b031916908160001a905350614a4682826148da565b95945050505050565b8051600090614a6057506000611196565b6020820151805160001a9060c0821015614a7f57600092505050611196565b5060019392505050565b8051600090811a6080811015614aa3576000915050611196565b60b8811080614abe575060c08110801590614abe575060f881105b15614acd576001915050611196565b60c0811015614ae15760b519019050611196565b60f519019050611196565b80516000908190811a6080811015614b075760019150614c18565b60b8811015614b1c57607e1981019150614c18565b60c0811015614b9657600060b78203600186019550806020036101000a865104915060018101820193505080831015614b90576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614c18565b60f8811015614bab5760be1981019150614c18565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614c16576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614c3057600080fd5b612bf68261318c565b60006060614c52846402540be40063ffffffff612f0516565b60408051600480825260a0820190925291955060609190816020015b6060815260200190600190039081614c6e579050509050614c918760ff16612fac565b81600081518110614c9e57fe5b6020026020010181905250614cbb866001600160a01b0316612f89565b81600181518110614cc857fe5b6020026020010181905250614cdc85612fac565b81600281518110614ce957fe5b6020026020010181905250614d038463ffffffff16612fac565b81600381518110614d1057fe5b60200260200101819052506060614d2682612fbf565b94989497509395505050505050565b80614d3f57612e20565b5b60208110614d5f578251825260209283019290910190601f1901614d40565b915181516020939093036101000a6000190180199091169216919091179052565b600082614d8f57506000612bf6565b82820282848281614d9c57fe5b0414612efe5760405162461bcd60e51b8152600401808060200182810382526021815260200180614ec06021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b6040518060400160405280614e0a614e17565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220066cc7c05d87e3cd20ecf3649deba7ac4ce8b389992969b6006793cbf330c73564736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/gibbs/chapel/TokenHubContract b/core/systemcontracts/gibbs/chapel/TokenHubContract new file mode 100644 index 0000000000..e53b33a120 --- /dev/null +++ b/core/systemcontracts/gibbs/chapel/TokenHubContract @@ -0,0 +1 @@ +60806040526004361061036f5760003560e01c80639a854bbd116101c6578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610d58578063fc3e590814610a3b578063fd6a687914610d8b578063ff9c0027146106ec576103b7565b8063f014847214610d19578063f9a2bbc714610d2e578063fa9e915914610d43576103b7565b8063d9e6dae9116100d1578063d9e6dae91461066e578063dc927faf14610cda578063e1c7392a14610cef578063ebf71d5314610d04576103b7565b8063bd46646114610c0d578063c81b166214610c40578063c8509d8114610c55576103b7565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610b77578063b9fd21e314610bb0578063ba35ead614610bc5578063bbface1f14610bda576103b7565b8063aa7415f514610a50578063ab51bb9614610a97578063ac43175114610aac576103b7565b8063a1a11bf5116101a0578063a1a11bf5146109fc578063a496fba214610a11578063a78abc1614610a26578063a7c9f02d14610a3b576103b7565b80639a854bbd146109995780639a99b4f0146109ae5780639dc09262146109e7576103b7565b806361368475116102a0578063727be1f81161023e578063831d65d111610218578063831d65d1146108c05780638b87b21f146105ed5780638eff336c1461094557806396713da914610984576103b7565b8063727be1f81461086c57806375d47a0a146108965780637942fd05146108ab576103b7565b80636e47b4821161027a5780636e47b4821461082d57806370fd5bad146106ec578063718a8aa81461084257806371d3086314610857576103b7565b8063613684751461066e57806366dea52a146106ec5780636e05652014610701576103b7565b806343a368b91161030d57806350432d32116102e757806350432d321461068357806351e806721461069857806359b92789146106ad5780635d499b1b146106d7576103b7565b806343a368b91461062d578063493279b1146106425780634bf6c8821461066e576103b7565b8063149d14d911610349578063149d14d9146105155780633d7132231461053c5780633dffc387146105ed57806343756e5c14610618576103b7565b80630bee7a67146103bc5780630e2374a5146103ea5780631182b8751461041b576103b7565b366103b75734156103b5576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b3480156103c857600080fd5b506103d1610da0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f657600080fd5b506103ff610da5565b604080516001600160a01b039092168252519081900360200190f35b34801561042757600080fd5b506104a06004803603604081101561043e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561046257600080fd5b82018360208201111561047457600080fd5b803590602001918460018302840111600160201b8311171561049557600080fd5b509092509050610dab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104da5781810151838201526020016104c2565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052157600080fd5b5061052a610ed9565b60408051918252519081900360200190f35b34801561054857600080fd5b506103ff6004803603602081101561055f57600080fd5b810190602081018135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610edf945050505050565b3480156105f957600080fd5b50610602610f03565b6040805160ff9092168252519081900360200190f35b34801561062457600080fd5b506103ff610f08565b34801561063957600080fd5b5061052a610f0e565b34801561064e57600080fd5b50610657610f1a565b6040805161ffff9092168252519081900360200190f35b34801561067a57600080fd5b50610602610f1f565b34801561068f57600080fd5b5061052a610f24565b3480156106a457600080fd5b506103ff610f2f565b3480156106b957600080fd5b506103ff600480360360208110156106d057600080fd5b5035610f35565b3480156106e357600080fd5b5061052a610f50565b3480156106f857600080fd5b50610602610f59565b6108196004803603608081101561071757600080fd5b810190602081018135600160201b81111561073157600080fd5b82018360208201111561074357600080fd5b803590602001918460208302840111600160201b8311171561076457600080fd5b919390929091602081019035600160201b81111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460208302840111600160201b831117156107b457600080fd5b919390929091602081019035600160201b8111156107d157600080fd5b8201836020820111156107e357600080fd5b803590602001918460208302840111600160201b8311171561080457600080fd5b91935091503567ffffffffffffffff16610f5e565b604080519115158252519081900360200190f35b34801561083957600080fd5b506103ff611433565b34801561084e57600080fd5b50610602611439565b34801561086357600080fd5b5061052a61143e565b34801561087857600080fd5b506108196004803603602081101561088f57600080fd5b5035611444565b3480156108a257600080fd5b506103ff6114be565b3480156108b757600080fd5b506106026114c4565b3480156108cc57600080fd5b506103b5600480360360408110156108e357600080fd5b60ff8235169190810190604081016020820135600160201b81111561090757600080fd5b82018360208201111561091957600080fd5b803590602001918460018302840111600160201b8311171561093a57600080fd5b5090925090506114c9565b34801561095157600080fd5b506103b56004803603606081101561096857600080fd5b508035906001600160a01b036020820135169060400135611612565b34801561099057600080fd5b50610602611698565b3480156109a557600080fd5b5061052a61169d565b3480156109ba57600080fd5b5061052a600480360360408110156109d157600080fd5b506001600160a01b0381351690602001356116a9565b3480156109f357600080fd5b506103ff6117e7565b348015610a0857600080fd5b506103ff6117ed565b348015610a1d57600080fd5b506106026117f3565b348015610a3257600080fd5b506108196117f8565b348015610a4757600080fd5b50610602611801565b61081960048036036080811015610a6657600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611806565b348015610aa357600080fd5b506103d16117f3565b348015610ab857600080fd5b506103b560048036036040811015610acf57600080fd5b810190602081018135600160201b811115610ae957600080fd5b820183602082011115610afb57600080fd5b803590602001918460018302840111600160201b83111715610b1c57600080fd5b919390929091602081019035600160201b811115610b3957600080fd5b820183602082011115610b4b57600080fd5b803590602001918460018302840111600160201b83111715610b6c57600080fd5b509092509050611ec7565b348015610b8357600080fd5b506103b560048036036040811015610b9a57600080fd5b50803590602001356001600160a01b0316612136565b348015610bbc57600080fd5b5061052a6121ac565b348015610bd157600080fd5b5061052a6121b6565b348015610be657600080fd5b5061052a60048036036020811015610bfd57600080fd5b50356001600160a01b03166121bc565b348015610c1957600080fd5b5061052a60048036036020811015610c3057600080fd5b50356001600160a01b03166121ce565b348015610c4c57600080fd5b506103ff6121e9565b348015610c6157600080fd5b506103b560048036036040811015610c7857600080fd5b60ff8235169190810190604081016020820135600160201b811115610c9c57600080fd5b820183602082011115610cae57600080fd5b803590602001918460018302840111600160201b83111715610ccf57600080fd5b5090925090506121ef565b348015610ce657600080fd5b506103ff6122bf565b348015610cfb57600080fd5b506103b56122c5565b348015610d1057600080fd5b50610602612365565b348015610d2557600080fd5b5061060261236a565b348015610d3a57600080fd5b506103ff61236f565b348015610d4f57600080fd5b5061052a612375565b348015610d6457600080fd5b506104a060048036036020811015610d7b57600080fd5b50356001600160a01b031661237b565b348015610d9757600080fd5b506103ff6124a2565b606481565b61200181565b60005460609060ff16610df3576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b3361200014610e335760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff841660021415610e8557610e7e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124a892505050565b9050610ed2565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610fa4576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b868514610fe25760405162461bcd60e51b815260040180806020018281038252603b815260200180614878603b913960400191505060405180910390fd5b8683146110205760405162461bcd60e51b815260040180806020018281038252603f81526020018061474b603f913960400191505060405180910390fd5b426078018267ffffffffffffffff16101561106c5760405162461bcd60e51b815260040180806020018281038252602481526020018061463b6024913960400191505060405180910390fd5b6402540be4003406156110b05760405162461bcd60e51b815260040180806020018281038252604081526020018061497b6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156110e3578160200160208202803683370190505b50905060005b848110156111be576402540be4008b8b8381811061110357fe5b905060200201358161111157fe5b061561114e5760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b6111738b8b8381811061115d57fe5b90506020020135856125cc90919063ffffffff16565b935061119f6402540be4008c8c8481811061118a57fe5b9050602002013561262690919063ffffffff16565b8282815181106111ab57fe5b60209081029190910101526001016110e9565b506001546111e3906111d6908663ffffffff61266816565b849063ffffffff6125cc16565b3410156112215760405162461bcd60e51b81526004018080602001828103825260568152602001806149256056913960600191505060405180910390fd5b611231348463ffffffff6126c116565b915061123b614461565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036112ff84612703565b611314876402540be40063ffffffff61262616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137257818101518382015260200161135a565b50505050905090810190601f16801561139f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b600033612001146114865760405162461bcd60e51b815260040180806020018281038252603381526020018061457b6033913960400191505060405180910390fd5b6040516120019083156108fc029084906000818181858888f193505050501580156114b5573d6000803e3d6000fd5b50600192915050565b61100881565b600b81565b60005460ff1661150e576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b336120001461154e5760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff83166003141561159e5761159982828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129be92505050565b61160d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146116525760405162461bcd60e51b81526004018080602001828103825260238152602001806148e26023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166116ef576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b336110051461172f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806145ae602f913960400191505060405180910390fd5b600047831061173e5747611740565b825b9050670de0b6b3a764000081111561175c5760009150506117e1565b80156117de576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611798573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff1661184c576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156118985760405162461bcd60e51b815260040180806020018281038252602481526020018061463b6024913960400191505060405180910390fd5b6402540be4003406156118dc5760405162461bcd60e51b815260040180806020018281038252604081526020018061497b6040913960400191505060405180910390fd5b600080806001600160a01b0388166119bb5760015461190290879063ffffffff6125cc16565b3410156119405760405162461bcd60e51b81526004018080602001828103825260618152602001806146c56061913960800191505060405180910390fd5b6402540be4008606156119845760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b611994348763ffffffff6126c116565b90506119ab866402540be40063ffffffff61262616565b6221272160e91b93509150611c5e565b6001600160a01b038816600090815260036020526040902054925082611a125760405162461bcd60e51b81526004018080602001828103825260318152602001806146946031913960400191505060405180910390fd5b600154341015611a535760405162461bcd60e51b815260040180806020018281038252603f8152602001806147e7603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611a9e5750600881118015611a9e5750611a9c876007198301600a0a63ffffffff612a1a16565b155b611ad95760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b611ae38782612a5c565b9250611aee84612a9c565b15611b36576305f5e100831015611b365760405162461bcd60e51b815260040180806020018281038252603a8152602001806145dd603a913960400191505060405180910390fd5b600881101580611b505750600881108015611b5057508683115b611b8b5760405162461bcd60e51b81526004018080602001828103825260258152602001806147266025913960400191505060405180910390fd5b677ce66c50e2840000831115611bd25760405162461bcd60e51b815260040180806020018281038252603581526020018061465f6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611c2757600080fd5b505af1158015611c3b573d6000803e3d6000fd5b505050506040513d6020811015611c5157600080fd5b5051611c5c57600080fd5b505b611c66614461565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611d1457fe5b602002602001018181525050878160600151600081518110611d3257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611d6457fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611d8f84612703565b611da4866402540be40063ffffffff61262616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e02578181015183820152602001611dea565b50505050905090810190601f168015611e2f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5057600080fd5b505af1158015611e64573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611f075760405162461bcd60e51b815260040180806020018281038252602e815260200180614826602e913960400191505060405180910390fd5b60208114611f5c576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415612064576020820151670de0b6b3a7640000811180159061200b57506402540be4008106155b61205c576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b6001556120a1565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146121765760405162461bcd60e51b81526004018080602001828103825260238152602001806148e26023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612234576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b33612000146122745760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff83166003141561159e5761159982828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba292505050565b61100381565b60005460ff161561231d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff16101561240b57828160ff16815181106123df57fe5b01602001516001600160f81b031916156123fe57600190910190612403565b61240b565b6001016123c4565b5060608160ff166040519080825280601f01601f19166020018201604052801561243c576020820181803683370190505b50905060005b8260ff168160ff16101561249857838160ff168151811061245f57fe5b602001015160f81c60f81b828260ff168151811061247957fe5b60200101906001600160f81b031916908160001a905350600101612442565b5095945050505050565b61100481565b60606124b26144ad565b60006124bd84612ca0565b9150915080612513576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b600061251e83612ddf565b905063ffffffff8116156125b2576040808401516020808601516001600160a01b031660009081526002909152918220546125599190612a5c565b90506125636144e2565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff1681525090506125a68161312c565b95505050505050610efe565b50506040805160008152602081019091529150610efe9050565b6000828201838110156117de576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006117de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613208565b600082612677575060006117e1565b8282028284828161268457fe5b04146117de5760405162461bcd60e51b81526004018080602001828103825260218152602001806147c66021913960400191505060405180910390fd5b60006117de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132aa565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161271e575050835190915061274090613304565b8160008151811061274d57fe5b602002602001018190525061276e83602001516001600160a01b0316613317565b8160018151811061277b57fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156127c657816020015b60608152602001906001900390816127b15790505b50905060005b82811015612813576127f4866040015182815181106127e757fe5b6020026020010151613304565b82828151811061280057fe5b60209081029190910101526001016127cc565b5061281d8161333a565b8360028151811061282a57fe5b602002602001018190525060608260405190808252806020026020018201604052801561286b57816020015b60608152602001906001900390816128565790505b50905060005b838110156128c1576128a28760600151828151811061288c57fe5b60200260200101516001600160a01b0316613317565b8282815181106128ae57fe5b6020908102919091010152600101612871565b506128cb8161333a565b846003815181106128d857fe5b602002602001018190525060608360405190808252806020026020018201604052801561291957816020015b60608152602001906001900390816129045790505b50905060005b848110156129595761293a8860800151828151811061288c57fe5b82828151811061294657fe5b602090810291909101015260010161291f565b506129638161333a565b8560048151811061297057fe5b60200260200101819052506129928760a0015167ffffffffffffffff16613304565b8560058151811061299f57fe5b60200260200101819052506129b38561333a565b979650505050505050565b6129c6614509565b60006129d1836133c4565b9150915080612a115760405162461bcd60e51b81526004018080602001828103825260248152602001806148546024913960400191505060405180910390fd5b61160d8261358f565b60006117de83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613a13565b60006008821115612a8557612a7e836007198401600a0a63ffffffff61262616565b90506117e1565b6117de836008849003600a0a63ffffffff61266816565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff161015612b1257828160ff1681518110612ae657fe5b01602001516001600160f81b03191615612b0557600190910190612b0a565b612b12565b600101612acb565b50600760ff82161015612b2a57600092505050610efe565b816005820360ff1681518110612b3c57fe5b6020910101516001600160f81b031916602d60f81b14612b6157600092505050610efe565b816001820360ff1681518110612b7357fe5b6020910101516001600160f81b031916604d60f81b14612b9857600092505050610efe565b5060019392505050565b612baa614461565b6000612bb583613a75565b9150915080612bf55760405162461bcd60e51b81526004018080602001828103825260248152602001806146176024913960400191505060405180910390fd5b612bfd614509565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612c7e57612c5b85604001518281518110612c4d57fe5b602002602001015183613cd9565b85604001518281518110612c6b57fe5b6020908102919091010152600101612c2d565b506080840151604083015260056060830152612c998261358f565b5050505050565b612ca86144ad565b6000612cb26144ad565b612cba614540565b612ccb612cc686613d12565b613d37565b90506000805b612cda83613d81565b15612dd25780612cfc57612cf5612cf084613da2565b613df0565b8452612dca565b8060011415612d2957612d16612d1184613da2565b613ea7565b6001600160a01b03166020850152612dca565b8060021415612d4857612d3e612cf084613da2565b6040850152612dca565b8060031415612d7057612d5d612d1184613da2565b6001600160a01b03166060850152612dca565b8060041415612d9857612d85612d1184613da2565b6001600160a01b03166080850152612dca565b8060051415612dc557612dad612cf084613da2565b67ffffffffffffffff1660a085015260019150612dca565b612dd2565b600101612cd1565b5091935090915050915091565b60208101516000906001600160a01b0316612f16578160a0015167ffffffffffffffff16421115612e1257506001610efe565b8160400151471015612e2657506003610efe565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612e7d576040519150601f19603f3d011682016040523d82523d6000602084013e612e82565b606091505b5050905080612e95575060049050610efe565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610efe565b8160a0015167ffffffffffffffff16421115612f3457506001610efe565b81516020808401516001600160a01b031660009081526003909152604090205414612f6157506002610efe565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612fb157600080fd5b5086fa158015612fc5573d6000803e3d6000fd5b50505050506040513d6020811015612fdc57600080fd5b50516040840151909150811015612ff7575060039050610efe565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561306857600080fd5b5087f115801561307c573d6000803e3d6000fd5b50505050506040513d602081101561309357600080fd5b505190508015613120577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610efe9050565b5060059150610efe9050565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613147575050835190915061316990613304565b8160008151811061317657fe5b602002602001018190525061318e8360200151613304565b8160018151811061319b57fe5b60200260200101819052506131bc83604001516001600160a01b0316613317565b816002815181106131c957fe5b60200260200101819052506131e7836060015163ffffffff16613304565b816003815181106131f457fe5b6020026020010181905250610ed28161333a565b600081836132945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613259578181015183820152602001613241565b50505050905090810190601f1680156132865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132a057fe5b0495945050505050565b600081848411156132fc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613259578181015183820152602001613241565b505050900390565b60606117e161331283613ec1565b613fa7565b60408051600560a21b8318601482015260348101909152606090610ed281613fa7565b606081516000141561335b5750604080516000815260208101909152610efe565b60608260008151811061336a57fe5b602002602001015190506000600190505b83518110156133ab576133a18285838151811061339457fe5b6020026020010151613ff9565b915060010161337b565b50610ed26133be825160c060ff16614076565b82613ff9565b6133cc614509565b60006133d6614509565b6133de614540565b6133ea612cc686613d12565b90506000805b6133f983613d81565b15612dd2578061341f5761340f612d1184613da2565b6001600160a01b03168452613587565b80600114156134c057606061343b61343685613da2565b61416e565b90508051604051908082528060200260200182016040528015613468578160200160208202803683370190505b50602086015260005b81518110156134b95761349682828151811061348957fe5b6020026020010151613df0565b866020015182815181106134a657fe5b6020908102919091010152600101613471565b5050613587565b80600214156135625760606134d761343685613da2565b90508051604051908082528060200260200182016040528015613504578160200160208202803683370190505b50604086015260005b81518110156134b95761353282828151811061352557fe5b6020026020010151613ea7565b8660400151828151811061354257fe5b6001600160a01b039092166020928302919091019091015260010161350d565b8060031415612dc557613577612cf084613da2565b63ffffffff166060850152600191505b6001016133f0565b80516001600160a01b03166137b95760005b8160200151518110156137b3576000826040015182815181106135c057fe5b60200260200101516001600160a01b0316612710846020015184815181106135e457fe5b60209081029190910101516040516000818181858888f193505050503d806000811461362c576040519150601f19603f3d011682016040523d82523d6000602084013e613631565b606091505b50509050806136f4577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061367057fe5b60200260200101518560200151858151811061368857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16137aa565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061372a57fe5b60200260200101518560200151858151811061374257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016135a1565b50613a10565b60005b816020015151811015613a0e57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106137f157fe5b60200260200101518660200151868151811061380957fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561386057600080fd5b5087f1158015613874573d6000803e3d6000fd5b50505050506040513d602081101561388b57600080fd5b50519050801561394f577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106138cb57fe5b6020026020010151856020015185815181106138e357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613a05565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061398557fe5b60200260200101518560200151858151811061399d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016137bc565b505b50565b60008183613a625760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613259578181015183820152602001613241565b50828481613a6c57fe5b06949350505050565b613a7d614461565b6000613a87614461565b613a8f614540565b613a9b612cc686613d12565b90506000805b613aaa83613d81565b15612dd25780613ac757613ac0612cf084613da2565b8452613cd1565b8060011415613aef57613adc612d1184613da2565b6001600160a01b03166020850152613cd1565b8060021415613b7e576060613b0661343685613da2565b90508051604051908082528060200260200182016040528015613b33578160200160208202803683370190505b50604086015260005b8151811015613b7757613b5482828151811061348957fe5b86604001518281518110613b6457fe5b6020908102919091010152600101613b3c565b5050613cd1565b8060031415613c13576060613b9561343685613da2565b90508051604051908082528060200260200182016040528015613bc2578160200160208202803683370190505b50606086015260005b8151811015613b7757613be382828151811061352557fe5b86606001518281518110613bf357fe5b6001600160a01b0390921660209283029190910190910152600101613bcb565b8060041415613ca8576060613c2a61343685613da2565b90508051604051908082528060200260200182016040528015613c57578160200160208202803683370190505b50608086015260005b8151811015613b7757613c7882828151811061352557fe5b86608001518281518110613c8857fe5b6001600160a01b0390921660209283029190910190910152600101613c60565b8060051415612dc557613cbd612cf084613da2565b67ffffffffffffffff1660a0850152600191505b600101613aa1565b60006008821115613cfb57612a7e836007198401600a0a63ffffffff61266816565b6117de836008849003600a0a63ffffffff61262616565b613d1a614560565b506040805180820190915281518152602082810190820152919050565b613d3f614540565b613d488261423f565b613d5157600080fd5b6000613d60836020015161426f565b60208085015160408051808201909152868152920190820152915050919050565b6000613d8b614560565b505080518051602091820151919092015191011190565b613daa614560565b613db382613d81565b613dbc57600080fd5b60208201516000613dcc826142d2565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613e0557508151602110155b613e0e57600080fd5b6000613e1d836020015161426f565b90508083600001511015613e78576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613e9e57826020036101000a820491505b50949350505050565b8051600090601514613eb857600080fd5b6117e182613df0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613f0557506018613f29565b6fffffffffffffffffffffffffffffffff198416613f2557506010613f29565b5060005b6020811015613f5f57818181518110613f3e57fe5b01602001516001600160f81b03191615613f5757613f5f565b600101613f29565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f94576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613fd95750607f60f81b82600081518110613fc757fe5b01602001516001600160f81b03191611155b15613fe5575080610efe565b6117e1613ff78351608060ff16614076565b835b6060806040519050835180825260208201818101602087015b8183101561402a578051835260209283019201614012565b50855184518101855292509050808201602086015b8183101561405757805183526020928301920161403f565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106140c6576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116141205782840160f81b8160008151811061410257fe5b60200101906001600160f81b031916908160001a90535090506117e1565b606061412b85613ec1565b90508381510160370160f81b8260008151811061414457fe5b60200101906001600160f81b031916908160001a9053506141658282613ff9565b95945050505050565b60606141798261423f565b61418257600080fd5b600061418d83614405565b90506060816040519080825280602002602001820160405280156141cb57816020015b6141b8614560565b8152602001906001900390816141b05790505b50905060006141dd856020015161426f565b60208601510190506000805b84811015614234576141fa836142d2565b915060405180604001604052808381526020018481525084828151811061421d57fe5b6020908102919091010152918101916001016141e9565b509195945050505050565b805160009061425057506000610efe565b6020820151805160001a9060c0821015612b9857600092505050610efe565b8051600090811a6080811015614289576000915050610efe565b60b88110806142a4575060c081108015906142a4575060f881105b156142b3576001915050610efe565b60c08110156142c75760b519019050610efe565b60f519019050610efe565b80516000908190811a60808110156142ed57600191506143fe565b60b881101561430257607e19810191506143fe565b60c081101561437c57600060b78203600186019550806020036101000a865104915060018101820193505080831015614376576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506143fe565b60f88110156143915760be19810191506143fe565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156143fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061441657506000610efe565b6000809050600061442a846020015161426f565b602085015185519181019250015b8082101561445857614449826142d2565b60019093019290910190614438565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614553614560565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220caf56ff249aa6ca806ce69d2892ae51c7530b6d135624d7e27646a2095f0b01964736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/gibbs/mainnet/StakingContract b/core/systemcontracts/gibbs/mainnet/StakingContract new file mode 100644 index 0000000000..1b62178e15 --- /dev/null +++ b/core/systemcontracts/gibbs/mainnet/StakingContract @@ -0,0 +1 @@ +6080604052600436106103855760003560e01c806370fd5bad116101d1578063b88a802f11610102578063d7ecfcb6116100a0578063f9a2bbc71161006f578063f9a2bbc714610c40578063fa03f79714610c55578063fc3e590814610671578063fd6a687914610c6a5761038c565b8063d7ecfcb614610819578063dc927faf14610bd1578063edc1a5b014610be6578063f45fd80b14610bfb5761038c565b8063c2117d82116100dc578063c2117d8214610ae7578063c81b166214610afc578063c8509d8114610b11578063d61b9b9314610b965761038c565b8063b88a802f14610a82578063baaafd3b14610a97578063bf8546ca14610aac5761038c565b806396713da91161016f578063a78abc1611610149578063a78abc1614610964578063ab51bb961461098d578063ac431751146109a2578063b14315df14610a6d5761038c565b806396713da9146109255780639dc092621461093a578063a1a11bf51461094f5761038c565b806375d47a0a116101ab57806375d47a0a146108765780637942fd051461088b578063831d65d1146108a057806392b888a41461061d5761038c565b806370fd5bad14610819578063718a8aa81461082e57806375aca593146108435761038c565b80633fdfa7e4116102b6578063552aaf931161025457806369b635b61161022357806369b635b6146107865780636bd8f8041461079b5780636e47b482146107d15780636fb7f7eb146107e65761038c565b8063552aaf93146107325780635d17c8bd146107475780635d499b1b1461075c57806362b171d2146107715761038c565b8063493279b111610290578063493279b1146106b05780634bf6c882146106dc5780634d99dd16146106f157806351e806721461071d5761038c565b80633fdfa7e414610671578063413d9c3a1461068657806343756e5c1461069b5761038c565b806311fe9ec6116103235780632fdeb111116102fd5780632fdeb11114610632578063333ad3e71461064757806334c433541461065c5780633dffc3871461061d5761038c565b806311fe9ec6146105bf578063151817e3146105f257806317c9efb01461061d5761038c565b80630bee7a671161035f5780630bee7a67146104515780630c7957151461047f5780630e2374a5146104945780631182b875146104c55761038c565b8063026e402b1461039157806302985992146103bf578063047636d1146103e65761038c565b3661038c57005b600080fd5b6103bd600480360360408110156103a757600080fd5b506001600160a01b038135169060200135610c7f565b005b3480156103cb57600080fd5b506103d46111bc565b60408051918252519081900360200190f35b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b03166111c2565b6040518082606080838360005b8381101561043e578181015183820152602001610426565b5050505090500191505060405180910390f35b34801561045d57600080fd5b50610466611216565b6040805163ffffffff9092168252519081900360200190f35b34801561048b57600080fd5b506103d461121b565b3480156104a057600080fd5b506104a9611221565b604080516001600160a01b039092168252519081900360200190f35b3480156104d157600080fd5b5061054a600480360360408110156104e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561050c57600080fd5b82018360208201111561051e57600080fd5b803590602001918460018302840111600160201b8311171561053f57600080fd5b509092509050611227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561058457818101518382015260200161056c565b50505050905090810190601f1680156105b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cb57600080fd5b506103d4600480360360208110156105e257600080fd5b50356001600160a01b03166113e3565b3480156105fe57600080fd5b506106076113fe565b6040805160ff9092168252519081900360200190f35b34801561062957600080fd5b50610607611403565b34801561063e57600080fd5b506103d4611408565b34801561065357600080fd5b5061046661140e565b34801561066857600080fd5b506103d4611413565b34801561067d57600080fd5b5061060761141e565b34801561069257600080fd5b506103d4611423565b3480156106a757600080fd5b506104a961142a565b3480156106bc57600080fd5b506106c5611430565b6040805161ffff9092168252519081900360200190f35b3480156106e857600080fd5b50610607611435565b6103bd6004803603604081101561070757600080fd5b506001600160a01b03813516906020013561143a565b34801561072957600080fd5b506104a9611a62565b34801561073e57600080fd5b50610607611a68565b34801561075357600080fd5b506103d4611a6d565b34801561076857600080fd5b506103d4611a73565b34801561077d57600080fd5b506103d4611a7c565b34801561079257600080fd5b506103d4611c1c565b6103bd600480360360608110156107b157600080fd5b506001600160a01b03813581169160208101359091169060400135611c22565b3480156107dd57600080fd5b506104a961230b565b3480156107f257600080fd5b506103d46004803603602081101561080957600080fd5b50356001600160a01b0316612311565b34801561082557600080fd5b5061060761232c565b34801561083a57600080fd5b50610607612331565b34801561084f57600080fd5b506103d46004803603602081101561086657600080fd5b50356001600160a01b0316612336565b34801561088257600080fd5b506104a9612351565b34801561089757600080fd5b50610607612357565b3480156108ac57600080fd5b506103bd600480360360408110156108c357600080fd5b60ff8235169190810190604081016020820135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b50909250905061235c565b34801561093157600080fd5b50610607612624565b34801561094657600080fd5b506104a9612629565b34801561095b57600080fd5b506104a961262f565b34801561097057600080fd5b50610979612635565b604080519115158252519081900360200190f35b34801561099957600080fd5b50610466611a68565b3480156109ae57600080fd5b506103bd600480360360408110156109c557600080fd5b810190602081018135600160201b8111156109df57600080fd5b8201836020820111156109f157600080fd5b803590602001918460018302840111600160201b83111715610a1257600080fd5b919390929091602081019035600160201b811115610a2f57600080fd5b820183602082011115610a4157600080fd5b803590602001918460018302840111600160201b83111715610a6257600080fd5b50909250905061263e565b348015610a7957600080fd5b50610607612dd0565b348015610a8e57600080fd5b506103d4612dd5565b348015610aa357600080fd5b506103d4612f72565b348015610ab857600080fd5b506103d460048036036040811015610acf57600080fd5b506001600160a01b0381358116916020013516612f7d565b348015610af357600080fd5b506103d4612faa565b348015610b0857600080fd5b506104a9612fb0565b348015610b1d57600080fd5b506103bd60048036036040811015610b3457600080fd5b60ff8235169190810190604081016020820135600160201b811115610b5857600080fd5b820183602082011115610b6a57600080fd5b803590602001918460018302840111600160201b83111715610b8b57600080fd5b509092509050612fb6565b348015610ba257600080fd5b506103d460048036036040811015610bb957600080fd5b506001600160a01b03813581169160200135166131d9565b348015610bdd57600080fd5b506104a9613204565b348015610bf257600080fd5b506103d461320a565b348015610c0757600080fd5b506103d460048036036060811015610c1e57600080fd5b506001600160a01b038135811691602081013582169160409091013516613217565b348015610c4c57600080fd5b506104a961324c565b348015610c6157600080fd5b506103d4613252565b348015610c7657600080fd5b506104a9613258565b60105460ff1660021415610ccb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cf357506402540be4008106155b610d44576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d87576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600354821015610dde576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610df290839063ffffffff61325e16565b341015610e3d576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b601154604051600091339183818181818787f1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b5050905080610ecf576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610ee6846402540be40063ffffffff6132bf16565b90506000610efa348663ffffffff61330116565b90506000610f136002548361330190919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610f2f579050509050610f4f33613343565b81600081518110610f5c57fe5b6020026020010181905250610f79886001600160a01b0316613343565b81600181518110610f8657fe5b6020026020010181905250610f9a84613366565b81600281518110610fa757fe5b60200260200101819052506060610fc76001610fc284613379565b613403565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083611025876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b5061100492506108fc915061110290508a8663ffffffff61325e16565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561115b573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff1916600117905550505050505050565b60035481565b6111ca615193565b6111d2615193565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b606033612000146112695760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166112ac576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6112b46151b1565b6112fb6112f685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b6134ae565b9050600061131061130b836134f8565b613546565b90506000606060ff8316600414156113355761132b846135fd565b909250905061138c565b60ff83166005141561134a5761132b846137dd565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff8216156113d8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b603881565b600881565b60105460ff1660021415611486576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be40034061580156114ae57506402540be4008106155b6114ff576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611542576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611590576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b60035482101561164b573360009081526005602090815260408083206001600160a01b03871684529091529020548214611602576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b600254821161164b576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156116c3576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461171e91859063ffffffff6139f916565b905080156117665760025481116117665760405162461bcd60e51b81526004018080602001828103825260258152602001806153766025913960400191505060405180910390fd5b600061177d846402540be40063ffffffff6132bf16565b600254909150349060009061179990839063ffffffff61330116565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816117b55790505090506117d533613343565b816000815181106117e257fe5b60200260200101819052506117ff886001600160a01b0316613343565b8160018151811061180c57fe5b602002602001018190525061182084613366565b8160028151811061182d57fe5b602002602001018190525060606118486002610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061189942620a8c0063ffffffff61325e16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836118dd876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561193b578181015183820152602001611923565b50505050905090810190601f1680156119685780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561198957600080fd5b505af115801561199d573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015611a01573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611acb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611b32576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b5050905080611bd5576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b60105460ff1660021415611c6e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611c9657506402540be4008106155b611ce7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611d2a576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611d88576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611dd6576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611e1e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611e8c57503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611edd576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b038916825290915291822054611f3891859063ffffffff6139f916565b90508015611f80576002548111611f805760405162461bcd60e51b815260040180806020018281038252602581526020018061527a6025913960400191505060405180910390fd5b6000611f97846402540be40063ffffffff6132bf16565b6002549091503490600090611fb390839063ffffffff61330116565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611fcf579050509050611fef33613343565b81600081518110611ffc57fe5b6020026020010181905250612019896001600160a01b0316613343565b8160018151811061202657fe5b6020026020010181905250612043886001600160a01b0316613343565b8160028151811061205057fe5b602002602001018190525061206484613366565b8160038151811061207157fe5b6020026020010181905250606061208c6003610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d90935291208054909101905590506120dd42620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908f16845290915290205561212042620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038f81168552908352818420908e16845290915290205561200063f7a251d7601083612170876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121ce5781810151838201526020016121b6565b50505050905090810190601f1680156121fb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561221c57600080fd5b505af1158015612230573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015612263573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015612294573d6000803e3d6000fd5b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158b87604051808381526020018281526020019250505060405180910390a450506010805460ff191660011790555050505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b336120001461239c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166123df576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6123e76151b1565b6124296112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b905060008060606000805b61243d86613a90565b156124a8578061245a5761245361130b876134f8565b94506124a0565b80600114156124765761246f61130b876134f8565b93506124a0565b806002141561249b5761249061248b876134f8565b613ab1565b9250600191506124a0565b6124a8565b600101612434565b816124ee576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6124f783613b21565b61253a576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125466112f684613489565b9550600061255661130b886134f8565b90506125606151b1565b61256988613a90565b1561258c576125856112f661258061248b8b6134f8565b613489565b90506125cd565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff8216600114156125e9576125e4818888613b75565b612617565b60ff821660021415612600576125e4818888613f2c565b60ff82166003141561134a576125e48188886141f9565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff16612695576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146126d55760405162461bcd60e51b815260040180806020018281038252602e8152602001806152ec602e913960400191505060405180910390fd5b61273684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061455e9050565b1561289c5760208114612790576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127ce9185858083850183828082843760009201919091525061464592505050565b905060035481106128105760405162461bcd60e51b815260040180806020018281038252602e81526020018061531a602e913960400191505060405180910390fd5b60025481116128505760405162461bcd60e51b815260040180806020018281038252602e815260200180615348602e913960400191505060405180910390fd5b6402540be4008106156128945760405162461bcd60e51b815260040180806020018281038252602c8152602001806152c0602c913960400191505060405180910390fd5b600155612d3e565b61290084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061455e9050565b15612a62576020811461295a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916129989185858083850183828082843760009201919091525061464592505050565b9050806129d65760405162461bcd60e51b81526004018080602001828103825260228152602001806153ca6022913960400191505060405180910390fd5b6001548110612a165760405162461bcd60e51b815260040180806020018281038252602e81526020018061521b602e913960400191505060405180910390fd5b6402540be400810615612a5a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806151ec602f913960400191505060405180910390fd5b600255612d3e565b612ac684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061455e9050565b15612ba85760208114612b20576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612b5e9185858083850183828082843760009201919091525061464592505050565b90506001548111612ba05760405162461bcd60e51b81526004018080602001828103825260318152602001806152496031913960400191505060405180910390fd5b600355612d3e565b612c0a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b6020820152915061455e9050565b15612d015760208114612c64576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612ca29185858083850183828082843760009201919091525061464592505050565b905060008111612cf9576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612d3e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612e24576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612e88576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d8060008114612ede576040519150601f19603f3d011682016040523d82523d6000602084013e612ee3565b606091505b5050905080612f2b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612ff65760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff16613039576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61307882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2192505050565b6130bb576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6130c36151b1565b6131056112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b9050600061311561130b836134f8565b905061311f6151b1565b61312883613a90565b156131465761313f6112f661258061248b866134f8565b905061318c565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156131a6576131a18161464a565b6131d0565b60ff8216600214156131bb576131a181614864565b60ff82166003141561134a576131a18161498e565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b6000828201838110156132b8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006132b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614af3565b60006132b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139f9565b60408051600560a21b83186014820152603481019091526060906132b881614b58565b6060612fa461337483614bae565b614b58565b606081516000141561339a5750604080516000815260208101909152611211565b6060826000815181106133a957fe5b602002602001015190506000600190505b83518110156133ea576133e0828583815181106133d357fe5b6020026020010151614c94565b91506001016133ba565b506132b86133fd825160c060ff16614d11565b82614c94565b6040805160028082526060828101909352829190816020015b606081526020019060019003908161341c57905050905061343f8460ff16613366565b8160008151811061344c57fe5b602002602001018190525061346083614b58565b8160018151811061346d57fe5b602002602001018190525061348181613379565b949350505050565b6134916151d1565b506040805180820190915281518152602082810190820152919050565b6134b66151b1565b6134bf82614e09565b6134c857600080fd5b60006134d78360200151614e43565b60208085015160408051808201909152868152920190820152915050919050565b6135006151d1565b61350982613a90565b61351257600080fd5b6020820151600061352282614ea6565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061355b57508151602110155b61356457600080fd5b60006135738360200151614e43565b905080836000015110156135ce576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156135f457826020036101000a820491505b50949350505050565b600060606000806000805b61361187613a90565b1561366357826136335761362c613627886134f8565b614fd9565b9150613658565b82600114156136535761364861130b886134f8565b905060019350613658565b613663565b826001019250613608565b836136a9576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156136f357600080fd5b505af1158015613707573d6000803e3d6000fd5b505050506040513d602081101561371d57600080fd5b505190508061374257613734600484846065614ff3565b9650965050505050506137d8565b6001600160a01b03831660009081526006602052604090205461376b908363ffffffff61325e16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6137f388613a90565b1561385c578361381057613809613627896134f8565b9250613851565b836001141561382c57613825613627896134f8565b9150613851565b836002141561384c5761384161130b896134f8565b905060019450613851565b61385c565b8360010193506137ea565b846138a2576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156138ec57600080fd5b505af1158015613900573d6000803e3d6000fd5b505050506040513d602081101561391657600080fd5b505190508061393c5761392d600585846065614ff3565b975097505050505050506137d8565b6001600160a01b038085166000818152600760209081526040808320948816835293815283822082905591815260089091522054613980908363ffffffff61325e16565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b60008184841115613a885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a4d578181015183820152602001613a35565b50505050905090810190601f168015613a7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613a9a6151d1565b505080518051602091820151919092015191011190565b8051606090613abf57600080fd5b6000613ace8360200151614e43565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015613b05576020820181803683370190505b50905060008160200190506135f48487602001510182856150ef565b8051602080830191909120600e546000908152600a9092526040822054808214613b5057600092505050611211565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b613b8788613a90565b15613bf05783613ba457613b9d613627896134f8565b9250613be5565b8360011415613bc057613bb9613627896134f8565b9150613be5565b8360021415613be057613bd561130b896134f8565b905060019450613be5565b613bf0565b836001019350613b7e565b84613c36576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613c4d826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff881660011415613d935760ff871615613cc0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613ce9908263ffffffff61325e16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613d2b908263ffffffff61325e16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613f21565b60ff8816613ee5576001600160a01b038416600090815260086020526040902054613dc4908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613e2057600080fd5b505af1158015613e34573d6000803e3d6000fd5b505050506040513d6020811015613e4a57600080fd5b5051613e93576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613f21565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613f3e88613a90565b15613fa75783613f5b57613f54613627896134f8565b9250613f9c565b8360011415613f7757613f70613627896134f8565b9150613f9c565b8360021415613f9757613f8c61130b896134f8565b905060019450613f9c565b613fa7565b836001019350613f35565b84613fed576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614004826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156141835760ff871615614077576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546140a0908263ffffffff61330116565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546140e2908263ffffffff61330116565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561411b42620a8c0063ffffffff61325e16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613f21565b60ff8816613ee5576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613f21565b6000806000806000805b61420c89613a90565b156142915784614229576142226136278a6134f8565b9350614286565b84600114156142455761423e6136278a6134f8565b9250614286565b84600214156142615761425a6136278a6134f8565b9150614286565b84600314156142815761427661130b8a6134f8565b905060019550614286565b614291565b846001019450614203565b856142d7576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142ee826402540be40063ffffffff61513a16565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156144c15760ff881615614361576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054614397908263ffffffff61330116565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546143d3908261325e565b6001600160a01b0380871660009081526005602090815260408083209388168352929052205561440c42620a8c0063ffffffff61325e16565b6001600160a01b038087166000908152600960209081526040808320898516845282528083209388168352929052205561444f42620a8c0063ffffffff61325e16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614552565b60ff8916613ee5576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106145935780518252601f199092019160209182019101614574565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146015780518252601f1990920191602091820191016145e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61465c86613a90565b156146c5578361467957614672613627876134f8565b92506146ba565b83600114156146955761468e613627876134f8565b91506146ba565b83600214156146b5576146aa61130b876134f8565b9050600194506146ba565b6146c5565b836001019350614653565b8461470b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614722826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150614760908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b505161482f576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b61487686613a90565b156148df57836148935761488c613627876134f8565b92506148d4565b83600114156148af576148a8613627876134f8565b91506148d4565b83600214156148cf576148c461130b876134f8565b9050600194506148d4565b6148df565b83600101935061486d565b84614925576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6149a187613a90565b15614a2657846149be576149b7613627886134f8565b9350614a1b565b84600114156149da576149d3613627886134f8565b9250614a1b565b84600214156149f6576149ef613627886134f8565b9150614a1b565b8460031415614a1657614a0b61130b886134f8565b905060019550614a1b565b614a26565b846001019450614998565b85614a6c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b60008183614b425760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613a4d578181015183820152602001613a35565b506000838581614b4e57fe5b0495945050505050565b606081516001148015614b8a5750607f60f81b82600081518110614b7857fe5b01602001516001600160f81b03191611155b15614b96575080611211565b612fa4614ba88351608060ff16614d11565b83614c94565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614bf257506018614c16565b6fffffffffffffffffffffffffffffffff198416614c1257506010614c16565b5060005b6020811015614c4c57818181518110614c2b57fe5b01602001516001600160f81b03191615614c4457614c4c565b600101614c16565b60008160200390506060816040519080825280601f01601f191660200182016040528015614c81576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614cc5578051835260209283019201614cad565b50855184518101855292509050808201602086015b81831015614cf2578051835260209283019201614cda565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d61576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614dbb5782840160f81b81600081518110614d9d57fe5b60200101906001600160f81b031916908160001a9053509050612fa4565b6060614dc685614bae565b90508381510160370160f81b82600081518110614ddf57fe5b60200101906001600160f81b031916908160001a905350614e008282614c94565b95945050505050565b8051600090614e1a57506000611211565b6020820151805160001a9060c0821015614e3957600092505050611211565b5060019392505050565b8051600090811a6080811015614e5d576000915050611211565b60b8811080614e78575060c08110801590614e78575060f881105b15614e87576001915050611211565b60c0811015614e9b5760b519019050611211565b60f519019050611211565b80516000908190811a6080811015614ec15760019150614fd2565b60b8811015614ed657607e1981019150614fd2565b60c0811015614f5057600060b78203600186019550806020036101000a865104915060018101820193505080831015614f4a576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fd2565b60f8811015614f655760be1981019150614fd2565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fd0576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614fea57600080fd5b612fa482613546565b6000606061500c846402540be40063ffffffff6132bf16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161502857905050905061504b8760ff16613366565b8160008151811061505857fe5b6020026020010181905250615075866001600160a01b0316613343565b8160018151811061508257fe5b602002602001018190525061509685613366565b816002815181106150a357fe5b60200260200101819052506150bd8463ffffffff16613366565b816003815181106150ca57fe5b602002602001018190525060606150e082613379565b94989497509395505050505050565b806150f9576131d4565b5b60208110615119578251825260209283019290910190601f19016150fa565b915181516020939093036101000a6000190180199091169216919091179052565b60008261514957506000612fa4565b8282028284828161515657fe5b04146132b85760405162461bcd60e51b815260040180806020018281038252602181526020018061529f6021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806151c46151d1565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565696e73756666696369656e742062616c616e636520616674657220726564656c6567617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa2646970667358221220f93b7c737ada8f392b296e539e2479e336344a76181ff9ba33d0303334f6a7c064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/gibbs/mainnet/TokenHubContract b/core/systemcontracts/gibbs/mainnet/TokenHubContract new file mode 100644 index 0000000000..a68c4758dd --- /dev/null +++ b/core/systemcontracts/gibbs/mainnet/TokenHubContract @@ -0,0 +1 @@ +60806040526004361061036f5760003560e01c80639a854bbd116101c6578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610d58578063fc3e590814610a3b578063fd6a687914610d8b578063ff9c0027146106ec576103b7565b8063f014847214610d19578063f9a2bbc714610d2e578063fa9e915914610d43576103b7565b8063d9e6dae9116100d1578063d9e6dae91461066e578063dc927faf14610cda578063e1c7392a14610cef578063ebf71d5314610d04576103b7565b8063bd46646114610c0d578063c81b166214610c40578063c8509d8114610c55576103b7565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610b77578063b9fd21e314610bb0578063ba35ead614610bc5578063bbface1f14610bda576103b7565b8063aa7415f514610a50578063ab51bb9614610a97578063ac43175114610aac576103b7565b8063a1a11bf5116101a0578063a1a11bf5146109fc578063a496fba214610a11578063a78abc1614610a26578063a7c9f02d14610a3b576103b7565b80639a854bbd146109995780639a99b4f0146109ae5780639dc09262146109e7576103b7565b806361368475116102a0578063727be1f81161023e578063831d65d111610218578063831d65d1146108c05780638b87b21f146105ed5780638eff336c1461094557806396713da914610984576103b7565b8063727be1f81461086c57806375d47a0a146108965780637942fd05146108ab576103b7565b80636e47b4821161027a5780636e47b4821461082d57806370fd5bad146106ec578063718a8aa81461084257806371d3086314610857576103b7565b8063613684751461066e57806366dea52a146106ec5780636e05652014610701576103b7565b806343a368b91161030d57806350432d32116102e757806350432d321461068357806351e806721461069857806359b92789146106ad5780635d499b1b146106d7576103b7565b806343a368b91461062d578063493279b1146106425780634bf6c8821461066e576103b7565b8063149d14d911610349578063149d14d9146105155780633d7132231461053c5780633dffc387146105ed57806343756e5c14610618576103b7565b80630bee7a67146103bc5780630e2374a5146103ea5780631182b8751461041b576103b7565b366103b75734156103b5576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b3480156103c857600080fd5b506103d1610da0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f657600080fd5b506103ff610da5565b604080516001600160a01b039092168252519081900360200190f35b34801561042757600080fd5b506104a06004803603604081101561043e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561046257600080fd5b82018360208201111561047457600080fd5b803590602001918460018302840111600160201b8311171561049557600080fd5b509092509050610dab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104da5781810151838201526020016104c2565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052157600080fd5b5061052a610ed9565b60408051918252519081900360200190f35b34801561054857600080fd5b506103ff6004803603602081101561055f57600080fd5b810190602081018135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610edf945050505050565b3480156105f957600080fd5b50610602610f03565b6040805160ff9092168252519081900360200190f35b34801561062457600080fd5b506103ff610f08565b34801561063957600080fd5b5061052a610f0e565b34801561064e57600080fd5b50610657610f1a565b6040805161ffff9092168252519081900360200190f35b34801561067a57600080fd5b50610602610f1f565b34801561068f57600080fd5b5061052a610f24565b3480156106a457600080fd5b506103ff610f2f565b3480156106b957600080fd5b506103ff600480360360208110156106d057600080fd5b5035610f35565b3480156106e357600080fd5b5061052a610f50565b3480156106f857600080fd5b50610602610f59565b6108196004803603608081101561071757600080fd5b810190602081018135600160201b81111561073157600080fd5b82018360208201111561074357600080fd5b803590602001918460208302840111600160201b8311171561076457600080fd5b919390929091602081019035600160201b81111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460208302840111600160201b831117156107b457600080fd5b919390929091602081019035600160201b8111156107d157600080fd5b8201836020820111156107e357600080fd5b803590602001918460208302840111600160201b8311171561080457600080fd5b91935091503567ffffffffffffffff16610f5e565b604080519115158252519081900360200190f35b34801561083957600080fd5b506103ff611433565b34801561084e57600080fd5b50610602611439565b34801561086357600080fd5b5061052a61143e565b34801561087857600080fd5b506108196004803603602081101561088f57600080fd5b5035611444565b3480156108a257600080fd5b506103ff6114c5565b3480156108b757600080fd5b506106026114cb565b3480156108cc57600080fd5b506103b5600480360360408110156108e357600080fd5b60ff8235169190810190604081016020820135600160201b81111561090757600080fd5b82018360208201111561091957600080fd5b803590602001918460018302840111600160201b8311171561093a57600080fd5b5090925090506114d0565b34801561095157600080fd5b506103b56004803603606081101561096857600080fd5b508035906001600160a01b036020820135169060400135611619565b34801561099057600080fd5b5061060261169f565b3480156109a557600080fd5b5061052a6116a4565b3480156109ba57600080fd5b5061052a600480360360408110156109d157600080fd5b506001600160a01b0381351690602001356116b0565b3480156109f357600080fd5b506103ff6117ee565b348015610a0857600080fd5b506103ff6117f4565b348015610a1d57600080fd5b506106026117fa565b348015610a3257600080fd5b506108196117ff565b348015610a4757600080fd5b50610602611808565b61081960048036036080811015610a6657600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff1661180d565b348015610aa357600080fd5b506103d16117fa565b348015610ab857600080fd5b506103b560048036036040811015610acf57600080fd5b810190602081018135600160201b811115610ae957600080fd5b820183602082011115610afb57600080fd5b803590602001918460018302840111600160201b83111715610b1c57600080fd5b919390929091602081019035600160201b811115610b3957600080fd5b820183602082011115610b4b57600080fd5b803590602001918460018302840111600160201b83111715610b6c57600080fd5b509092509050611ece565b348015610b8357600080fd5b506103b560048036036040811015610b9a57600080fd5b50803590602001356001600160a01b031661213d565b348015610bbc57600080fd5b5061052a6121b3565b348015610bd157600080fd5b5061052a6121bd565b348015610be657600080fd5b5061052a60048036036020811015610bfd57600080fd5b50356001600160a01b03166121c3565b348015610c1957600080fd5b5061052a60048036036020811015610c3057600080fd5b50356001600160a01b03166121d5565b348015610c4c57600080fd5b506103ff6121f0565b348015610c6157600080fd5b506103b560048036036040811015610c7857600080fd5b60ff8235169190810190604081016020820135600160201b811115610c9c57600080fd5b820183602082011115610cae57600080fd5b803590602001918460018302840111600160201b83111715610ccf57600080fd5b5090925090506121f6565b348015610ce657600080fd5b506103ff6122c6565b348015610cfb57600080fd5b506103b56122cc565b348015610d1057600080fd5b5061060261236c565b348015610d2557600080fd5b50610602612371565b348015610d3a57600080fd5b506103ff612376565b348015610d4f57600080fd5b5061052a61237c565b348015610d6457600080fd5b506104a060048036036020811015610d7b57600080fd5b50356001600160a01b0316612382565b348015610d9757600080fd5b506103ff6124a9565b606481565b61200181565b60005460609060ff16610df3576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b3361200014610e335760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff841660021415610e8557610e7e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124af92505050565b9050610ed2565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b603881565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610fa4576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b868514610fe25760405162461bcd60e51b815260040180806020018281038252603b81526020018061487f603b913960400191505060405180910390fd5b8683146110205760405162461bcd60e51b815260040180806020018281038252603f815260200180614752603f913960400191505060405180910390fd5b426078018267ffffffffffffffff16101561106c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146426024913960400191505060405180910390fd5b6402540be4003406156110b05760405162461bcd60e51b81526004018080602001828103825260408152602001806149826040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156110e3578160200160208202803683370190505b50905060005b848110156111be576402540be4008b8b8381811061110357fe5b905060200201358161111157fe5b061561114e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b6111738b8b8381811061115d57fe5b90506020020135856125d390919063ffffffff16565b935061119f6402540be4008c8c8481811061118a57fe5b9050602002013561262d90919063ffffffff16565b8282815181106111ab57fe5b60209081029190910101526001016110e9565b506001546111e3906111d6908663ffffffff61266f16565b849063ffffffff6125d316565b3410156112215760405162461bcd60e51b815260040180806020018281038252605681526020018061492c6056913960600191505060405180910390fd5b611231348463ffffffff6126c816565b915061123b614468565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036112ff8461270a565b611314876402540be40063ffffffff61262d16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137257818101518382015260200161135a565b50505050905090810190601f16801561139f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b600033612001146114865760405162461bcd60e51b81526004018080602001828103825260338152602001806145826033913960400191505060405180910390fd5b81156114bd576040516120019083156108fc029084906000818181858888f193505050501580156114bb573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff16611515576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b33612000146115555760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff8316600314156115a5576115a082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129c592505050565b611614565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146116595760405162461bcd60e51b81526004018080602001828103825260238152602001806148e96023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166116f6576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b33611005146117365760405162461bcd60e51b815260040180806020018281038252602f8152602001806145b5602f913960400191505060405180910390fd5b60004783106117455747611747565b825b9050670de0b6b3a76400008111156117635760009150506117e8565b80156117e5576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561179f573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611853576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561189f5760405162461bcd60e51b81526004018080602001828103825260248152602001806146426024913960400191505060405180910390fd5b6402540be4003406156118e35760405162461bcd60e51b81526004018080602001828103825260408152602001806149826040913960400191505060405180910390fd5b600080806001600160a01b0388166119c25760015461190990879063ffffffff6125d316565b3410156119475760405162461bcd60e51b81526004018080602001828103825260618152602001806146cc6061913960800191505060405180910390fd5b6402540be40086061561198b5760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b61199b348763ffffffff6126c816565b90506119b2866402540be40063ffffffff61262d16565b6221272160e91b93509150611c65565b6001600160a01b038816600090815260036020526040902054925082611a195760405162461bcd60e51b815260040180806020018281038252603181526020018061469b6031913960400191505060405180910390fd5b600154341015611a5a5760405162461bcd60e51b815260040180806020018281038252603f8152602001806147ee603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611aa55750600881118015611aa55750611aa3876007198301600a0a63ffffffff612a2116565b155b611ae05760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b611aea8782612a63565b9250611af584612aa3565b15611b3d576305f5e100831015611b3d5760405162461bcd60e51b815260040180806020018281038252603a8152602001806145e4603a913960400191505060405180910390fd5b600881101580611b575750600881108015611b5757508683115b611b925760405162461bcd60e51b815260040180806020018281038252602581526020018061472d6025913960400191505060405180910390fd5b677ce66c50e2840000831115611bd95760405162461bcd60e51b81526004018080602001828103825260358152602001806146666035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611c2e57600080fd5b505af1158015611c42573d6000803e3d6000fd5b505050506040513d6020811015611c5857600080fd5b5051611c6357600080fd5b505b611c6d614468565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611d1b57fe5b602002602001018181525050878160600151600081518110611d3957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611d6b57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611d968461270a565b611dab866402540be40063ffffffff61262d16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e09578181015183820152602001611df1565b50505050905090810190601f168015611e365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5757600080fd5b505af1158015611e6b573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611f0e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061482d602e913960400191505060405180910390fd5b60208114611f63576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561206b576020820151670de0b6b3a7640000811180159061201257506402540be4008106155b612063576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b6001556120a8565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461217d5760405162461bcd60e51b81526004018080602001828103825260238152602001806148e96023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661223b576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b336120001461227b5760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff8316600314156115a5576115a082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba992505050565b61100381565b60005460ff1615612324576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff16101561241257828160ff16815181106123e657fe5b01602001516001600160f81b031916156124055760019091019061240a565b612412565b6001016123cb565b5060608160ff166040519080825280601f01601f191660200182016040528015612443576020820181803683370190505b50905060005b8260ff168160ff16101561249f57838160ff168151811061246657fe5b602001015160f81c60f81b828260ff168151811061248057fe5b60200101906001600160f81b031916908160001a905350600101612449565b5095945050505050565b61100481565b60606124b96144b4565b60006124c484612ca7565b915091508061251a576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b600061252583612de6565b905063ffffffff8116156125b9576040808401516020808601516001600160a01b031660009081526002909152918220546125609190612a63565b905061256a6144e9565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff1681525090506125ad81613133565b95505050505050610efe565b50506040805160008152602081019091529150610efe9050565b6000828201838110156117e5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006117e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061320f565b60008261267e575060006117e8565b8282028284828161268b57fe5b04146117e55760405162461bcd60e51b81526004018080602001828103825260218152602001806147cd6021913960400191505060405180910390fd5b60006117e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132b1565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161272557505083519091506127479061330b565b8160008151811061275457fe5b602002602001018190525061277583602001516001600160a01b031661331e565b8160018151811061278257fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156127cd57816020015b60608152602001906001900390816127b85790505b50905060005b8281101561281a576127fb866040015182815181106127ee57fe5b602002602001015161330b565b82828151811061280757fe5b60209081029190910101526001016127d3565b5061282481613341565b8360028151811061283157fe5b602002602001018190525060608260405190808252806020026020018201604052801561287257816020015b606081526020019060019003908161285d5790505b50905060005b838110156128c8576128a98760600151828151811061289357fe5b60200260200101516001600160a01b031661331e565b8282815181106128b557fe5b6020908102919091010152600101612878565b506128d281613341565b846003815181106128df57fe5b602002602001018190525060608360405190808252806020026020018201604052801561292057816020015b606081526020019060019003908161290b5790505b50905060005b84811015612960576129418860800151828151811061289357fe5b82828151811061294d57fe5b6020908102919091010152600101612926565b5061296a81613341565b8560048151811061297757fe5b60200260200101819052506129998760a0015167ffffffffffffffff1661330b565b856005815181106129a657fe5b60200260200101819052506129ba85613341565b979650505050505050565b6129cd614510565b60006129d8836133cb565b9150915080612a185760405162461bcd60e51b815260040180806020018281038252602481526020018061485b6024913960400191505060405180910390fd5b61161482613596565b60006117e583836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613a1a565b60006008821115612a8c57612a85836007198401600a0a63ffffffff61262d16565b90506117e8565b6117e5836008849003600a0a63ffffffff61266f16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff161015612b1957828160ff1681518110612aed57fe5b01602001516001600160f81b03191615612b0c57600190910190612b11565b612b19565b600101612ad2565b50600760ff82161015612b3157600092505050610efe565b816005820360ff1681518110612b4357fe5b6020910101516001600160f81b031916602d60f81b14612b6857600092505050610efe565b816001820360ff1681518110612b7a57fe5b6020910101516001600160f81b031916604d60f81b14612b9f57600092505050610efe565b5060019392505050565b612bb1614468565b6000612bbc83613a7c565b9150915080612bfc5760405162461bcd60e51b815260040180806020018281038252602481526020018061461e6024913960400191505060405180910390fd5b612c04614510565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612c8557612c6285604001518281518110612c5457fe5b602002602001015183613ce0565b85604001518281518110612c7257fe5b6020908102919091010152600101612c34565b506080840151604083015260056060830152612ca082613596565b5050505050565b612caf6144b4565b6000612cb96144b4565b612cc1614547565b612cd2612ccd86613d19565b613d3e565b90506000805b612ce183613d88565b15612dd95780612d0357612cfc612cf784613da9565b613df7565b8452612dd1565b8060011415612d3057612d1d612d1884613da9565b613eae565b6001600160a01b03166020850152612dd1565b8060021415612d4f57612d45612cf784613da9565b6040850152612dd1565b8060031415612d7757612d64612d1884613da9565b6001600160a01b03166060850152612dd1565b8060041415612d9f57612d8c612d1884613da9565b6001600160a01b03166080850152612dd1565b8060051415612dcc57612db4612cf784613da9565b67ffffffffffffffff1660a085015260019150612dd1565b612dd9565b600101612cd8565b5091935090915050915091565b60208101516000906001600160a01b0316612f1d578160a0015167ffffffffffffffff16421115612e1957506001610efe565b8160400151471015612e2d57506003610efe565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612e84576040519150601f19603f3d011682016040523d82523d6000602084013e612e89565b606091505b5050905080612e9c575060049050610efe565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610efe565b8160a0015167ffffffffffffffff16421115612f3b57506001610efe565b81516020808401516001600160a01b031660009081526003909152604090205414612f6857506002610efe565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612fb857600080fd5b5086fa158015612fcc573d6000803e3d6000fd5b50505050506040513d6020811015612fe357600080fd5b50516040840151909150811015612ffe575060039050610efe565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561306f57600080fd5b5087f1158015613083573d6000803e3d6000fd5b50505050506040513d602081101561309a57600080fd5b505190508015613127577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610efe9050565b5060059150610efe9050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161314e57505083519091506131709061330b565b8160008151811061317d57fe5b6020026020010181905250613195836020015161330b565b816001815181106131a257fe5b60200260200101819052506131c383604001516001600160a01b031661331e565b816002815181106131d057fe5b60200260200101819052506131ee836060015163ffffffff1661330b565b816003815181106131fb57fe5b6020026020010181905250610ed281613341565b6000818361329b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613260578181015183820152602001613248565b50505050905090810190601f16801561328d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132a757fe5b0495945050505050565b600081848411156133035760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613260578181015183820152602001613248565b505050900390565b60606117e861331983613ec8565b613fae565b60408051600560a21b8318601482015260348101909152606090610ed281613fae565b60608151600014156133625750604080516000815260208101909152610efe565b60608260008151811061337157fe5b602002602001015190506000600190505b83518110156133b2576133a88285838151811061339b57fe5b6020026020010151614000565b9150600101613382565b50610ed26133c5825160c060ff1661407d565b82614000565b6133d3614510565b60006133dd614510565b6133e5614547565b6133f1612ccd86613d19565b90506000805b61340083613d88565b15612dd9578061342657613416612d1884613da9565b6001600160a01b0316845261358e565b80600114156134c757606061344261343d85613da9565b614175565b9050805160405190808252806020026020018201604052801561346f578160200160208202803683370190505b50602086015260005b81518110156134c05761349d82828151811061349057fe5b6020026020010151613df7565b866020015182815181106134ad57fe5b6020908102919091010152600101613478565b505061358e565b80600214156135695760606134de61343d85613da9565b9050805160405190808252806020026020018201604052801561350b578160200160208202803683370190505b50604086015260005b81518110156134c05761353982828151811061352c57fe5b6020026020010151613eae565b8660400151828151811061354957fe5b6001600160a01b0390921660209283029190910190910152600101613514565b8060031415612dcc5761357e612cf784613da9565b63ffffffff166060850152600191505b6001016133f7565b80516001600160a01b03166137c05760005b8160200151518110156137ba576000826040015182815181106135c757fe5b60200260200101516001600160a01b0316612710846020015184815181106135eb57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613633576040519150601f19603f3d011682016040523d82523d6000602084013e613638565b606091505b50509050806136fb577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061367757fe5b60200260200101518560200151858151811061368f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16137b1565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061373157fe5b60200260200101518560200151858151811061374957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016135a8565b50613a17565b60005b816020015151811015613a1557600082600001516001600160a01b031663a9059cbb61c350856040015185815181106137f857fe5b60200260200101518660200151868151811061381057fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561386757600080fd5b5087f115801561387b573d6000803e3d6000fd5b50505050506040513d602081101561389257600080fd5b505190508015613956577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106138d257fe5b6020026020010151856020015185815181106138ea57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613a0c565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061398c57fe5b6020026020010151856020015185815181106139a457fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016137c3565b505b50565b60008183613a695760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613260578181015183820152602001613248565b50828481613a7357fe5b06949350505050565b613a84614468565b6000613a8e614468565b613a96614547565b613aa2612ccd86613d19565b90506000805b613ab183613d88565b15612dd95780613ace57613ac7612cf784613da9565b8452613cd8565b8060011415613af657613ae3612d1884613da9565b6001600160a01b03166020850152613cd8565b8060021415613b85576060613b0d61343d85613da9565b90508051604051908082528060200260200182016040528015613b3a578160200160208202803683370190505b50604086015260005b8151811015613b7e57613b5b82828151811061349057fe5b86604001518281518110613b6b57fe5b6020908102919091010152600101613b43565b5050613cd8565b8060031415613c1a576060613b9c61343d85613da9565b90508051604051908082528060200260200182016040528015613bc9578160200160208202803683370190505b50606086015260005b8151811015613b7e57613bea82828151811061352c57fe5b86606001518281518110613bfa57fe5b6001600160a01b0390921660209283029190910190910152600101613bd2565b8060041415613caf576060613c3161343d85613da9565b90508051604051908082528060200260200182016040528015613c5e578160200160208202803683370190505b50608086015260005b8151811015613b7e57613c7f82828151811061352c57fe5b86608001518281518110613c8f57fe5b6001600160a01b0390921660209283029190910190910152600101613c67565b8060051415612dcc57613cc4612cf784613da9565b67ffffffffffffffff1660a0850152600191505b600101613aa8565b60006008821115613d0257612a85836007198401600a0a63ffffffff61266f16565b6117e5836008849003600a0a63ffffffff61262d16565b613d21614567565b506040805180820190915281518152602082810190820152919050565b613d46614547565b613d4f82614246565b613d5857600080fd5b6000613d678360200151614276565b60208085015160408051808201909152868152920190820152915050919050565b6000613d92614567565b505080518051602091820151919092015191011190565b613db1614567565b613dba82613d88565b613dc357600080fd5b60208201516000613dd3826142d9565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613e0c57508151602110155b613e1557600080fd5b6000613e248360200151614276565b90508083600001511015613e7f576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613ea557826020036101000a820491505b50949350505050565b8051600090601514613ebf57600080fd5b6117e882613df7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613f0c57506018613f30565b6fffffffffffffffffffffffffffffffff198416613f2c57506010613f30565b5060005b6020811015613f6657818181518110613f4557fe5b01602001516001600160f81b03191615613f5e57613f66565b600101613f30565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f9b576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613fe05750607f60f81b82600081518110613fce57fe5b01602001516001600160f81b03191611155b15613fec575080610efe565b6117e8613ffe8351608060ff1661407d565b835b6060806040519050835180825260208201818101602087015b81831015614031578051835260209283019201614019565b50855184518101855292509050808201602086015b8183101561405e578051835260209283019201614046565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106140cd576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116141275782840160f81b8160008151811061410957fe5b60200101906001600160f81b031916908160001a90535090506117e8565b606061413285613ec8565b90508381510160370160f81b8260008151811061414b57fe5b60200101906001600160f81b031916908160001a90535061416c8282614000565b95945050505050565b606061418082614246565b61418957600080fd5b60006141948361440c565b90506060816040519080825280602002602001820160405280156141d257816020015b6141bf614567565b8152602001906001900390816141b75790505b50905060006141e48560200151614276565b60208601510190506000805b8481101561423b57614201836142d9565b915060405180604001604052808381526020018481525084828151811061422457fe5b6020908102919091010152918101916001016141f0565b509195945050505050565b805160009061425757506000610efe565b6020820151805160001a9060c0821015612b9f57600092505050610efe565b8051600090811a6080811015614290576000915050610efe565b60b88110806142ab575060c081108015906142ab575060f881105b156142ba576001915050610efe565b60c08110156142ce5760b519019050610efe565b60f519019050610efe565b80516000908190811a60808110156142f45760019150614405565b60b881101561430957607e1981019150614405565b60c081101561438357600060b78203600186019550806020036101000a86510491506001810182019350508083101561437d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614405565b60f88110156143985760be1981019150614405565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614403576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061441d57506000610efe565b600080905060006144318460200151614276565b602085015185519181019250015b8082101561445f57614450826142d9565b6001909301929091019061443f565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061455a614567565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea264697066735822122012cb49df8f867c0c8903152f4f4e8058086f9ead137f1a15b2400e401b8e252f64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/gibbs/types.go b/core/systemcontracts/gibbs/types.go new file mode 100644 index 0000000000..0e9f7378ef --- /dev/null +++ b/core/systemcontracts/gibbs/types.go @@ -0,0 +1,19 @@ +package gibbs + +import _ "embed" + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/TokenHubContract + ChapelTokenHubContract string + //go:embed chapel/StakingContract + ChapelStakingContract string +) + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/TokenHubContract + MainnetTokenHubContract string + //go:embed mainnet/StakingContract + MainnetStakingContract string +) diff --git a/core/systemcontracts/kepler/chapel/SlashContract b/core/systemcontracts/kepler/chapel/SlashContract new file mode 100644 index 0000000000..beb89dd69c --- /dev/null +++ b/core/systemcontracts/kepler/chapel/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102955760003560e01c80638256ace611610167578063c81b1662116100ce578063e1c7392a11610087578063e1c7392a146104d3578063eb57bff7146104db578063f9a2bbc7146104e3578063fc3e5908146104eb578063fc4333cd146104f3578063fd6a6879146104fb57610295565b8063c81b166214610482578063c8509d811461048a578063c96be4cb1461049d578063cc844b73146104b0578063d2a42e4b146104c3578063dc927faf146104cb57610295565b8063a78abc1611610120578063a78abc1614610447578063ab51bb961461044f578063ac0af62914610457578063ac4317511461045f578063ae61dc3b14610472578063c80d4b8f1461047a57610295565b80638256ace61461040c578063831d65d11461041457806396713da9146104275780639bc8e4f21461042f5780639dc0926214610437578063a1a11bf51461043f57610295565b8063493279b11161020b5780636e47b482116101c45780636e47b482146103dc57806370fd5bad146103e4578063718a8aa8146103ec57806375d47a0a146103f45780637912a65d146103fc5780637942fd051461040457610295565b8063493279b1146103925780634bf6c882146103a757806351e80672146103af578063567a372d146103b75780635bfb4990146103bf57806362b72cf5146103d457610295565b806335aa2e441161025d57806335aa2e441461032457806337c8dab914610337578063389f4f71146103585780633a63f4b11461036d5780633dffc3871461037557806343756e5c1461038a57610295565b80630bee7a671461029a5780630e2374a5146102b85780631182b875146102cd57806322d1e80b146102ed57806323bac5a214610302575b600080fd5b6102a2610503565b6040516102af919061354e565b60405180910390f35b6102c0610508565b6040516102af9190612d6a565b6102e06102db366004612ca0565b61050e565b6040516102af9190612da2565b6102f5610574565b6040516102af9190612d97565b610315610310366004612a4e565b61057d565b6040516102af93929190613536565b6102c0610332366004612c70565b6105a0565b61034a610345366004612a4e565b6105c7565b6040516102af929190613528565b61036061061e565b6040516102af91906134fe565b610360610624565b61037d61062a565b6040516102af919061355f565b6102c061062f565b61039a610635565b6040516102af91906134ef565b61037d61063a565b6102c061063f565b610360610645565b6103d26103cd366004612a4e565b61064b565b005b6103606106f6565b6102c06106fc565b61037d610702565b61037d610707565b6102c061070c565b610360610712565b61037d610717565b61034a61071c565b6103d2610422366004612ca0565b610726565b61037d610838565b61036061083d565b6102c0610848565b6102c061084e565b6102f5610854565b6102a261085d565b610360610862565b6103d261046d366004612b54565b610867565b610360610e17565b610360610e1e565b6102c0610e23565b6103d2610498366004612ca0565b610e29565b6103d26104ab366004612a4e565b610e9a565b6103d26104be366004612bbd565b61128b565b61036061187c565b6102c0611881565b6103d2611887565b6103606118c3565b6102c06118c9565b61037d6118cf565b6103d26118d4565b6102c0611d1d565b606481565b61200181565b6060336120001461053a5760405162461bcd60e51b815260040161053190613347565b60405180910390fd5b60005460ff1661055c5760405162461bcd60e51b815260040161053190612e9d565b60405162461bcd60e51b815260040161053190613438565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b600181815481106105ad57fe5b6000918252602090912001546001600160a01b0316905081565b6000806105d2612835565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b336110001461066c5760405162461bcd60e51b81526004016105319061312c565b60005460ff1661068e5760405162461bcd60e51b815260040161053190612e9d565b61200063f7a251d7600b6106a184611d23565b60006040518463ffffffff1660e01b81526004016106c19392919061356d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107475760405162461bcd60e51b815260040161053190613347565b60005460ff166107695760405162461bcd60e51b815260040161053190612e9d565b610771612858565b60006107b284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611df592505050565b9150915080156107f95781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107ec9161354e565b60405180910390a16106ef565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108299161354e565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108895760405162461bcd60e51b815260040161053190612e9d565b33611007146108aa5760405162461bcd60e51b815260040161053190613204565b61091584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611e759050565b156109b0576020811461093a5760405162461bcd60e51b8152600401610531906130b8565b604080516020601f840181900481028201810190925282815260009161097891858580838501838280828437600092019190915250611ecf92505050565b90506001811015801561098c575060055481105b6109a85760405162461bcd60e51b815260040161053190613302565b600455610dd4565b610a1684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611e759050565b15610ab25760208114610a3b5760405162461bcd60e51b815260040161053190613252565b604080516020601f8401819004810282018101909252828152600091610a7991858580838501838280828437600092019190915250611ecf92505050565b90506103e88111158015610a8e575060045481115b610aaa5760405162461bcd60e51b815260040161053190612f56565b600555610dd4565b610b2684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611e759050565b15610bc05760208114610b4b5760405162461bcd60e51b81526004016105319061346f565b604080516020601f8401819004810282018101909252828152600091610b8991858580838501838280828437600092019190915250611ecf92505050565b9050600a8110158015610b9c5750606481105b610bb85760405162461bcd60e51b81526004016105319061306c565b600655610dd4565b610c3484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611e759050565b15610cab5760208114610c595760405162461bcd60e51b815260040161053190612f8b565b604080516020601f8401819004810282018101909252828152610c959190848480838501838280828437600092019190915250611ed492505050565b6007805460ff1916911515919091179055610dd4565b610d1f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6d616c6963696f7573566f7465536c61736853636f706500000000000000000060208201529150611e759050565b15610dbc5760208114610d445760405162461bcd60e51b815260040161053190612de7565b604080516020601f8401819004810282018101909252828152600091610d8291858580838501838280828437600092019190915250611ecf92505050565b90506170808110158015610d985750620d2f0081105b610db45760405162461bcd60e51b815260040161053190612ed4565b600855610dd4565b60405162461bcd60e51b8152600401610531906133e3565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e099493929190612db5565b60405180910390a150505050565b6201518081565b609681565b61100281565b3361200014610e4a5760405162461bcd60e51b815260040161053190613347565b60005460ff16610e6c5760405162461bcd60e51b815260040161053190612e9d565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610eb95760405162461bcd60e51b815260040161053190613396565b60005460ff16610edb5760405162461bcd60e51b815260040161053190612e9d565b6003544311610efc5760405162461bcd60e51b8152600401610531906134ba565b3a15610f1a5760405162461bcd60e51b8152600401610531906131a7565b60405163155853f360e21b8152611000906355614fcc90610f3f908490600401612d6a565b60206040518083038186803b158015610f5757600080fd5b505afa158015610f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612b34565b610f9857611284565b610fa0612835565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ffb576020810180516001019052611054565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161106657fe5b066111b257600060208201526040516335409f7f60e01b8152611000906335409f7f90611097908590600401612d6a565b600060405180830381600087803b1580156110b157600080fd5b505af11580156110c5573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6110e585611d23565b60006040518463ffffffff1660e01b81526004016111059392919061356d565b600060405180830381600087803b15801561111f57600080fd5b505af1925050508015611130575060015b6111ad573d80801561115e576040519150601f19603f3d011682016040523d82523d6000602084013e611163565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040516111a3929190613507565b60405180910390a2505b61121e565b6004548160200151816111c157fe5b0661121e576040516375abf10160e11b81526110009063eb57e202906111eb908590600401612d6a565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166112ad5760405162461bcd60e51b815260040161053190612e9d565b604051630a83aaa960e31b81526110069063541d5548906112d2903390600401612d6a565b60206040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113229190612b34565b61133e5760405162461bcd60e51b815260040161053190612e31565b60075460ff166113605760405162461bcd60e51b815260040161053190612e68565b60065461136d5760146006555b60085461137c57620151806008555b6008548151604001514391011180156113a057504360085482602001516040015101115b6113bc5760405162461bcd60e51b81526004016105319061340a565b8060200151602001518160000151602001511480156113ea5750806020015160600151816000015160600151145b156114075760405162461bcd60e51b8152600401610531906130ff565b8051604081015190511080156114265750602081015160408101519051105b6114425760405162461bcd60e51b815260040161053190613035565b6020810151518151511080156114675750806000015160400151816020015160400151105b8061149257508051516020820151511080156114925750806020015160400151816000015160400151105b806114ac5750806020015160400151816000015160400151145b6114c85760405162461bcd60e51b815260040161053190612f1f565b604080820151905163ea321e4960e01b81526110009163ea321e49916114f19190600401612da2565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190612b34565b61155d5760405162461bcd60e51b8152600401610531906131d5565b61156f81600001518260400151611efc565b8015611588575061158881602001518260400151611efc565b6115a45760405162461bcd60e51b815260040161053190612fd6565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115e257600080fd5b505afa1580156115f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161e9190810190612a71565b9150915060005b81518110156117595761164f82828151811061163d57fe5b602002602001015185604001516120d4565b15611751576006546040516213929d60e11b8152606461100280319093020491906227253a906116859033908590600401612d7e565b602060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d79190612c88565b506110006001600160a01b03166335409f7f8584815181106116f557fe5b60200260200101516040518263ffffffff1660e01b81526004016117199190612d6a565b600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b5050505050611759565b600101611625565b50600061176b84604001516000612138565b90506120006001600160a01b031663f7a251d7600b61178d8760400151612154565b60006040518463ffffffff1660e01b81526004016117ad9392919061356d565b600060405180830381600087803b1580156117c757600080fd5b505af19250505080156117d8575060015b61184a573d808015611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161183c9190612da2565b60405180910390a250611876565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156118aa5760405162461bcd60e51b815260040161053190613294565b603260045560966005556000805460ff19166001179055565b60085481565b61100081565b600381565b33611000146118f55760405162461bcd60e51b81526004016105319061312c565b60005460ff166119175760405162461bcd60e51b815260040161053190612e9d565b60015461192357611d1b565b600154600090600019015b808211611cef576000805b82841015611a5257611949612835565b600260006001878154811061195a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a3c576004600554816119c757fe5b048160200151038160200181815250508060026000600188815481106119e957fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611a46565b6001925050611a52565b50836001019350611939565b828411611be957611a61612835565b6002600060018681548110611a7257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611b5a57600460055481611adf57fe5b04816020015103816020018181525050806002600060018781548110611b0157fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611be99050565b6002600060018681548110611b6b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611baf57fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611bdc5750611be9565b5060001990920191611a52565b818015611bf35750805b15611cd2576002600060018681548110611c0957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c5057fe5b600091825260209091200154600180546001600160a01b039092169186908110611c7657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611caf57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611cde575050611cef565b50506001909101906000190161192e565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611d3e579050509050611d67836001600160a01b031661218f565b81600081518110611d7457fe5b6020026020010181905250611d88436121b2565b81600181518110611d9557fe5b6020908102919091010152611daa60616121b2565b81600281518110611db757fe5b6020026020010181905250611dcb426121b2565b81600381518110611dd857fe5b6020026020010181905250611dec816121c5565b9150505b919050565b611dfd612858565b6000611e07612858565b611e0f61286a565b611e20611e1b8661224f565b612274565b90506000805b611e2f836122be565b15611e685780611e5b57611e4a611e45846122df565b61232d565b63ffffffff16845260019150611e60565b611e68565b600101611e26565b5091935090915050915091565b600081604051602001611e889190612d4e565b6040516020818303038152906040528051906020012083604051602001611eaf9190612d4e565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611eee576001915081611ef4565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611f18575050604080516020808252818301909252919250606091908082018180368337019050509050611f5d85600001516121b2565b82600081518110611f6a57fe5b6020026020010181905250611f8560208660200151836123af565b611f8e816123bf565b82600181518110611f9b57fe5b6020026020010181905250611fb385604001516121b2565b82600281518110611fc057fe5b6020026020010181905250611fdb60208660600151836123af565b611fe4816123bf565b82600381518110611ff157fe5b6020026020010181905250612017602061200a846121c5565b80519060200120836123af565b6040805160b080825260e08201909252606091602082018180368337019050509050612047818360006020612415565b61205981876080015160206060612415565b612067818660806030612415565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6120a457600080fd5b5060016120b2826000612468565b60ff16146120c7576000945050505050611ec9565b5060019695505050505050565b8151815160009160019181148083146120f0576000925061212e565b600160208701838101602088015b60028483851001141561212957805183511461211d5760009650600093505b602092830192016120fe565b505050505b5090949350505050565b6000816020018351101561214b57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161216f579050509050611d67836123bf565b60408051600560a21b8318601482015260348101909152606090611dec816123bf565b6060611ec96121c083612484565b6123bf565b60608151600014156121e65750604080516000815260208101909152611df0565b6060826000815181106121f557fe5b602002602001015190506000600190505b83518110156122365761222c8285838151811061221f57fe5b602002602001015161256a565b9150600101612206565b50611dec612249825160c060ff166125e7565b8261256a565b61225761288a565b506040805180820190915281518152602082810190820152919050565b61227c61286a565b612285826126b9565b61228e57600080fd5b600061229d83602001516126f3565b60208085015160408051808201909152868152920190820152915050919050565b60006122c861288a565b505080518051602091820151919092015191011190565b6122e761288a565b6122f0826122be565b6122f957600080fd5b6020820151600061230982612756565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061234257508151602110155b61234b57600080fd5b600061235a83602001516126f3565b905080836000015110156123805760405162461bcd60e51b8152600401610531906132cb565b8251602080850151830180519284900392918310156123a657826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156123f15750607f60f81b826000815181106123df57fe5b01602001516001600160f81b03191611155b156123fd575080611df0565b611ec961240f8351608060ff166125e7565b8361256a565b60005b818110156106ef5783818151811061242c57fe5b602001015160f81c60f81b85848060010195508151811061244957fe5b60200101906001600160f81b031916908160001a905350600101612418565b6000816001018351101561247b57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166124c8575060186124ec565b6fffffffffffffffffffffffffffffffff1984166124e8575060106124ec565b5060005b60208110156125225781818151811061250157fe5b01602001516001600160f81b0319161561251a57612522565b6001016124ec565b60008160200390506060816040519080825280601f01601f191660200182016040528015612557576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561259b578051835260209283019201612583565b50855184518101855292509050808201602086015b818310156125c85780518352602092830192016125b0565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106126115760405162461bcd60e51b81526004016105319061300d565b6040805160018082528183019092526060916020820181803683370190505090506037841161266b5782840160f81b8160008151811061264d57fe5b60200101906001600160f81b031916908160001a9053509050611ec9565b606061267685612484565b90508381510160370160f81b8260008151811061268f57fe5b60200101906001600160f81b031916908160001a9053506126b0828261256a565b95945050505050565b80516000906126ca57506000611df0565b6020820151805160001a9060c08210156126e957600092505050611df0565b5060019392505050565b8051600090811a608081101561270d576000915050611df0565b60b8811080612728575060c08110801590612728575060f881105b15612737576001915050611df0565b60c081101561274b5760b519019050611df0565b60f519019050611df0565b80516000908190811a6080811015612771576001915061282e565b60b881101561278657607e198101915061282e565b60c08110156127d757600060b78203600186019550806020036101000a8651049150600181018201935050808310156127d15760405162461bcd60e51b81526004016105319061317c565b5061282e565b60f88110156127ec5760be198101915061282e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611ef45760405162461bcd60e51b81526004016105319061317c565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061287d61288a565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126128b4578081fd5b81516128c76128c2826135c0565b613599565b818152915060208083019084810160005b8481101561293d578151870188603f8201126128f357600080fd5b838101516129036128c2826135e0565b81815260408b8184860101111561291957600080fd5b61292883888401838701613604565b508652505092820192908201906001016128d8565b505050505092915050565b60008083601f840112612959578182fd5b50813567ffffffffffffffff811115612970578182fd5b60208301915083602082850101111561298857600080fd5b9250929050565b600082601f83011261299f578081fd5b81356129ad6128c2826135e0565b91508082528360208285010111156129c457600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156129ee578081fd5b6129f860a0613599565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff811115612a3657600080fd5b612a428482850161298f565b60808301525092915050565b600060208284031215612a5f578081fd5b8135612a6a81613630565b9392505050565b60008060408385031215612a83578081fd5b825167ffffffffffffffff80821115612a9a578283fd5b81850186601f820112612aab578384fd5b80519250612abb6128c2846135c0565b80848252602080830192508084018a828389028701011115612adb578788fd5b8794505b86851015612b06578051612af281613630565b845260019490940193928101928101612adf565b508801519096509350505080821115612b1d578283fd5b50612b2a858286016128a4565b9150509250929050565b600060208284031215612b45578081fd5b81518015158114612a6a578182fd5b60008060008060408587031215612b69578182fd5b843567ffffffffffffffff80821115612b80578384fd5b612b8c88838901612948565b90965094506020870135915080821115612ba4578384fd5b50612bb187828801612948565b95989497509550505050565b600060208284031215612bce578081fd5b813567ffffffffffffffff80821115612be5578283fd5b81840160608187031215612bf7578384fd5b612c016060613599565b9250803582811115612c11578485fd5b612c1d878284016129dd565b845250602081013582811115612c31578485fd5b612c3d878284016129dd565b602085015250604081013582811115612c54578485fd5b612c608782840161298f565b6040850152509195945050505050565b600060208284031215612c81578081fd5b5035919050565b600060208284031215612c99578081fd5b5051919050565b600080600060408486031215612cb4578283fd5b833560ff81168114612cc4578384fd5b9250602084013567ffffffffffffffff811115612cdf578283fd5b612ceb86828701612948565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612d3a816020860160208601613604565b601f01601f19169290920160200192915050565b60008251612d60818460208701613604565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252612a6a6020830184612d22565b600060408252612dc9604083018688612cf8565b8281036020840152612ddc818587612cf8565b979650505050505050565b6020808252602a908201527f6c656e677468206f66206d616c6963696f7573566f7465536c61736853636f706040820152690ca40dad2e6dac2e8c6d60b31b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526135206040830184612d22565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526135896060830185612d22565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156135b857600080fd5b604052919050565b600067ffffffffffffffff8211156135d6578081fd5b5060209081020190565b600067ffffffffffffffff8211156135f6578081fd5b50601f01601f191660200190565b60005b8381101561361f578181015183820152602001613607565b838111156118765750506000910152565b6001600160a01b038116811461364557600080fd5b5056fea164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/kepler/chapel/SystemRewardContract b/core/systemcontracts/kepler/chapel/SystemRewardContract new file mode 100644 index 0000000000..f794d4e8ee --- /dev/null +++ b/core/systemcontracts/kepler/chapel/SystemRewardContract @@ -0,0 +1 @@ +6080604052600436106101c55760003560e01c806375d47a0a116100f7578063ab51bb9611610095578063f9a2bbc711610064578063f9a2bbc7146105c3578063fb5478b3146105d8578063fc3e5908146105ed578063fd6a68791461060257610209565b8063ab51bb96146104b5578063ac431751146104ca578063c81b166214610599578063dc927faf146105ae57610209565b80639a99b4f0116100d15780639a99b4f01461043d5780639dc0926214610476578063a1a11bf51461048b578063a78abc16146104a057610209565b806375d47a0a146103fe5780637942fd051461041357806396713da91461042857610209565b8063493279b1116101645780636d70f7ae1161013e5780636d70f7ae146103785780636e47b482146103bf57806370fd5bad146103d4578063718a8aa8146103e957610209565b8063493279b1146103225780634bf6c8821461034e57806351e806721461036357610209565b806331b6d4a5116101a057806331b6d4a5146102b85780633a0b0eff146102cd5780633dffc387146102e257806343756e5c1461030d57610209565b806227253a1461020e5780630bee7a67146102595780630e2374a51461028757610209565b366102095734156102075760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b34801561021a57600080fd5b506102476004803603604081101561023157600080fd5b506001600160a01b038135169060200135610617565b60408051918252519081900360200190f35b34801561026557600080fd5b5061026e6107c2565b6040805163ffffffff9092168252519081900360200190f35b34801561029357600080fd5b5061029c6107c7565b604080516001600160a01b039092168252519081900360200190f35b3480156102c457600080fd5b506102476107cd565b3480156102d957600080fd5b506102476107d9565b3480156102ee57600080fd5b506102f76107df565b6040805160ff9092168252519081900360200190f35b34801561031957600080fd5b5061029c6107e4565b34801561032e57600080fd5b506103376107ea565b6040805161ffff9092168252519081900360200190f35b34801561035a57600080fd5b506102f76107ef565b34801561036f57600080fd5b5061029c6107f4565b34801561038457600080fd5b506103ab6004803603602081101561039b57600080fd5b50356001600160a01b03166107fa565b604080519115158252519081900360200190f35b3480156103cb57600080fd5b5061029c610818565b3480156103e057600080fd5b506102f761081e565b3480156103f557600080fd5b506102f7610823565b34801561040a57600080fd5b5061029c610828565b34801561041f57600080fd5b506102f761082e565b34801561043457600080fd5b506102f7610833565b34801561044957600080fd5b506102476004803603604081101561046057600080fd5b506001600160a01b038135169060200135610838565b34801561048257600080fd5b5061029c610962565b34801561049757600080fd5b5061029c610968565b3480156104ac57600080fd5b506103ab61096e565b3480156104c157600080fd5b5061026e610977565b3480156104d657600080fd5b50610207600480360360408110156104ed57600080fd5b81019060208101813564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91939092909160208101903564010000000081111561055a57600080fd5b82018360208201111561056c57600080fd5b8035906020019184600183028401116401000000008311171561058e57600080fd5b50909250905061097c565b3480156105a557600080fd5b5061029c610cff565b3480156105ba57600080fd5b5061029c610d05565b3480156105cf57600080fd5b5061029c610d0b565b3480156105e457600080fd5b50610247610d11565b3480156105f957600080fd5b506102f7610d1d565b34801561060e57600080fd5b5061029c610d22565b6000805460ff1661069457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106e25760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106106f157476106f3565b825b9050674563918244f400008111156107105750674563918244f400005b8015610791576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107bb565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b606481565b61200181565b674563918244f4000081565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff166108b557600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166109035760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106109125747610914565b825b9050670de0b6b3a76400008111156107105750604051670de0b6b3a7640000906001600160a01b03851690600090839082818181858883f1935050505015801561074c573d6000803e3d6000fd5b61100781565b61100681565b60005460ff1681565b600081565b33611007146109bc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e6a602e913960400191505060405180910390fd5b610a1e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610d289050565b15610af657606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610aa15760405162461bcd60e51b815260040180806020018281038252602c815260200180610e98602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610c6d565b610b5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610d289050565b15610c3057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610bde5760405162461bcd60e51b815260040180806020018281038252602f815260200180610e3b602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610c6d565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610d5d5780518252601f199092019160209182019101610d3e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610dcb5780518252601f199092019160209182019101610dac565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/kepler/chapel/ValidatorContract b/core/systemcontracts/kepler/chapel/ValidatorContract new file mode 100644 index 0000000000..9df119a5d9 --- /dev/null +++ b/core/systemcontracts/kepler/chapel/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106104a35760003560e01c806388b32f1111610260578063c6d3394511610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610c02578063f9a2bbc714610c17578063fc3e590814610c2c578063fccc281314610c41578063fd4ad81f14610c56578063fd6a687914610c85576104aa565b8063e40716a114610b85578063ea321e4914610b9a578063eb57e20214610bba578063eda5868c14610bda578063f340fa0114610bef576104aa565b8063d86222d511610108578063d86222d514610b1c578063daacdb6614610b31578063dc927faf14610b46578063e086c7b114610b5b578063e1c7392a14610b70576104aa565b8063c6d3394514610abd578063c81b166214610ad2578063c8509d81146108b6578063ce910b0c14610ae7578063d68fb56a14610b07576104aa565b8063a5422d5c116101dd578063ad3c9da6116101a1578063ad3c9da614610a3c578063aef198a914610a5c578063b7ab4db514610a71578063b8cf4ef114610a93578063bf9f499514610666578063c466689d14610aa8576104aa565b8063a5422d5c146109c8578063a78abc16146109dd578063aaf5eb68146109f2578063ab51bb9614610a07578063ac43175114610a1c576104aa565b806396713da91161022457806396713da91461095f5780639dc09262146109745780639fe0f81614610989578063a0dc27581461099e578063a1a11bf5146109b3576104aa565b806388b32f11146108eb5780638a7beb01146109005780638b5ad0c9146109155780638d19a4101461092a5780639369d7de1461094a576104aa565b806351e80672116103875780636e47b482116103045780637942fd05116102c85780637942fd05146108775780637a84ca2a1461088c57806381650b62146108a1578063831d65d1146108b6578063853230aa1461086257806386249882146108d6576104aa565b80636e47b4821461080e57806370fd5bad14610823578063718a8aa81461083857806375d47a0a1461084d57806378dfed4a14610862576104aa565b80635de1e22c1161034b5780635de1e22c14610792578063603d86d31461065157806360eba4fe146107a757806362b72cf5146107c75780636969a25c146107dc576104aa565b806351e806721461071357806355614fcc14610728578063565c56b3146107485780635667515a146107685780635d77156c1461077d576104aa565b80633365af3a1161042057806343756e5c116103e457806343756e5c1461068857806345cf9daf1461069d578063493279b1146106b25780634bf6c882146106d45780634df6e0c3146106e95780635192c82c146106fe576104aa565b80633365af3a146105ee57806335409f7f1461060e5780633b071dcc1461062e5780633de0f0d8146106515780633dffc38714610666576104aa565b8063152ad3b811610467578063152ad3b8146105625780631ff1806914610584578063219f22d514610599578063300c3567146105ae578063321d398a146105ce576104aa565b806304c4fec6146104af57806307a56847146104c65780630bee7a67146104f15780630e2374a5146105135780631182b87514610535576104aa565b366104aa57005b600080fd5b3480156104bb57600080fd5b506104c4610c9a565b005b3480156104d257600080fd5b506104db610d0c565b6040516104e89190617691565b60405180910390f35b3480156104fd57600080fd5b50610506610d12565b6040516104e891906176bb565b34801561051f57600080fd5b50610528610d17565b6040516104e89190616a60565b34801561054157600080fd5b50610555610550366004616946565b610d1d565b6040516104e89190616bd7565b34801561056e57600080fd5b50610577610f55565b6040516104e89190616bcc565b34801561059057600080fd5b506104db610f5e565b3480156105a557600080fd5b50610506610f64565b3480156105ba57600080fd5b506104c46105c93660046167d0565b610f69565b3480156105da57600080fd5b506105776105e93660046168f3565b6112b0565b3480156105fa57600080fd5b506105776106093660046168f3565b61137f565b34801561061a57600080fd5b506104c46106293660046167a9565b611430565b34801561063a57600080fd5b50610643611589565b6040516104e8929190616ae2565b34801561065d57600080fd5b506104db611865565b34801561067257600080fd5b5061067b61186b565b6040516104e891906176cc565b34801561069457600080fd5b50610528611870565b3480156106a957600080fd5b506104db611876565b3480156106be57600080fd5b506106c761187c565b6040516104e89190617682565b3480156106e057600080fd5b5061067b611881565b3480156106f557600080fd5b50610643611886565b34801561070a57600080fd5b506104db611a04565b34801561071f57600080fd5b50610528611a0a565b34801561073457600080fd5b506105776107433660046167a9565b611a10565b34801561075457600080fd5b506104db6107633660046167a9565b611a45565b34801561077457600080fd5b5061067b611a96565b34801561078957600080fd5b50610506611a9b565b34801561079e57600080fd5b506104db611aa0565b3480156107b357600080fd5b506105556107c23660046168f3565b611aa6565b3480156107d357600080fd5b506104db611b4c565b3480156107e857600080fd5b506107fc6107f73660046168f3565b611b52565b6040516104e896959493929190616a8d565b34801561081a57600080fd5b50610528611bb6565b34801561082f57600080fd5b5061067b611bbc565b34801561084457600080fd5b5061067b611bc1565b34801561085957600080fd5b50610528611bc6565b34801561086e57600080fd5b506104db611bcc565b34801561088357600080fd5b5061067b611bd2565b34801561089857600080fd5b506104db611bd7565b3480156108ad57600080fd5b50610506611bdd565b3480156108c257600080fd5b506104c46108d1366004616946565b611be2565b3480156108e257600080fd5b506104db611c43565b3480156108f757600080fd5b506104db611c49565b34801561090c57600080fd5b50610577611c4f565b34801561092157600080fd5b506104db611c58565b34801561093657600080fd5b506104db6109453660046167a9565b611c5e565b34801561095657600080fd5b506104c4611c9e565b34801561096b57600080fd5b5061067b611db2565b34801561098057600080fd5b50610528611db7565b34801561099557600080fd5b506104db611dbd565b3480156109aa57600080fd5b506104db611dc2565b3480156109bf57600080fd5b50610528611dc7565b3480156109d457600080fd5b50610555611dcd565b3480156109e957600080fd5b50610577611dec565b3480156109fe57600080fd5b506104db611df5565b348015610a1357600080fd5b50610506611a96565b348015610a2857600080fd5b506104c4610a37366004616897565b611dfe565b348015610a4857600080fd5b506104db610a573660046167a9565b61269c565b348015610a6857600080fd5b506104db6126ae565b348015610a7d57600080fd5b50610a866126bb565b6040516104e89190616acf565b348015610a9f57600080fd5b506104db6127a7565b348015610ab457600080fd5b506104db6127ac565b348015610ac957600080fd5b506104db611bbc565b348015610ade57600080fd5b506105286127b2565b348015610af357600080fd5b50610555610b023660046168f3565b6127b8565b348015610b1357600080fd5b506104db6127c5565b348015610b2857600080fd5b506104db612804565b348015610b3d57600080fd5b506104db612810565b348015610b5257600080fd5b50610528612816565b348015610b6757600080fd5b506104db610d12565b348015610b7c57600080fd5b506104c461281c565b348015610b9157600080fd5b506104db6129cb565b348015610ba657600080fd5b50610577610bb5366004616858565b6129d1565b348015610bc657600080fd5b506104c4610bd53660046167a9565b612b57565b348015610be657600080fd5b50610506612c5f565b6104c4610bfd3660046167a9565b612c64565b348015610c0e57600080fd5b506104db612fcc565b348015610c2357600080fd5b50610528612fd2565b348015610c3857600080fd5b5061067b611dbd565b348015610c4d57600080fd5b50610528612fd8565b348015610c6257600080fd5b50610c76610c713660046168f3565b612fde565b6040516104e89392919061769a565b348015610c9157600080fd5b506105286130a0565b6000610ca533611c5e565b9050600b8181548110610cb457fe5b600091825260209091206001601690920201015460ff16610cf05760405162461bcd60e51b8152600401610ce79061733c565b60405180910390fd5b6000610cfa6127c5565b9050610d073383836130a6565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d425760405162461bcd60e51b8152600401610ce790616d96565b3361200014610d635760405162461bcd60e51b8152600401610ce7906174d5565b600b54610e2157610d72616495565b60015460005b81811015610e1d57600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794610df99360008051602061790f8339815191529091019201906164c4565b506060820151610e0f906003830190601361653e565b505050806001019050610d78565b5050505b610e2961656b565b6000610e6a85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061329292505050565b9150915080610e8657610e7d606461344e565b92505050610f4e565b815160009060ff16610eab57610ea4836020015184604001516134af565b9050610f1a565b825160ff1660011415610f1657826020015151600114610ef0576000805160206178cf833981519152604051610ee0906171f5565b60405180910390a1506067610f11565b610ea48360200151600081518110610f0457fe5b6020026020010151614103565b610f1a565b5060655b63ffffffff8116610f3f5750506040805160008152602081019091529150610f4e9050565b610f488161344e565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f885760405162461bcd60e51b8152600401610ce790617524565b6010544311610fa95760405162461bcd60e51b8152600401610ce790616ef2565b3a15610fc75760405162461bcd60e51b8152600401610ce79061727b565b60005460ff16610fe95760405162461bcd60e51b8152600401610ce790616d96565b60006110023168056bc75e2d63100000811115611020576110198168056bc75e2d6310000063ffffffff61427a16565b9150611027565b50506112a6565b6040516213929d60e11b8152611002906227253a9061104c9030908690600401616a74565b602060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e919061690b565b9150816110ac5750506112a6565b6000805b848110156110da578585828181106110c457fe5b90506020020135820191508060010190506110b0565b50806110e8575050506112a6565b6000806000805b8981101561129e578489898381811061110457fe5b9050602002013588028161111457fe5b0493508a8a8281811061112357fe5b905060200201602081019061113891906167a9565b6001600160a01b0381166000908152600460205260409020549093509150811561125457600060018084038154811061116d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111da57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111cd9190617691565b60405180910390a261124e565b6003546111ed908663ffffffff6142bc16565b6003908155810154611205908663ffffffff6142bc16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611245908890617691565b60405180910390a25b50611296565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161128d9190617691565b60405180910390a25b6001016110ef565b505050505050505b5050436010555050565b60015460009082106112c45750600061137a565b60006001600160a01b0316600183815481106112dc57fe5b60009182526020909120600490910201546001600160a01b0316148061130c5750600854158061130c5750600a54155b8061131b575060085460095410155b8061132c575061132a8261137f565b155b8061135557506000600b838154811061134157fe5b906000526020600020906016020160000154115b80611369575060016113656126bb565b5111155b156113765750600061137a565b5060015b919050565b60015460009082106113935750600061137a565b600b5482106113d057600182815481106113a957fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061137a565b600182815481106113dd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561142a5750600b828154811061141157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114515760405162461bcd60e51b8152600401610ce790617639565b600b5461150f57611460616495565b60015460005b8181101561150b57600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff19169115159190911790556040860151805187946114e79360008051602061790f8339815191529091019201906164c4565b5060608201516114fd906003830190601361653e565b505050806001019050611466565b5050505b6001600160a01b038116600090815260046020526040902054806115335750611586565b6001810390506000600b828154811061154857fe5b600091825260209091206001601690920201015460ff16905061156b83836142e1565b80156115745750805b15610d07576009805460001901905550505b50565b60015460609081906000805b828110156115dc57600181815481106115aa57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115d4576001909101905b600101611595565b50606081604051908082528060200260200182016040528015611609578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561164257816020015b606081526020019060019003908161162d5790505b50600b54600094509091508414156117bd5760005b848110156117b7576001818154811061166c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117af576001818154811061169c57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116c757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106116f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561178c5780601f106117615761010080835404028352916020019161178c565b820191906000526020600020905b81548152906001019060200180831161176f57829003601f168201915b505050505082858151811061179d57fe5b60209081029190910101526001909301925b600101611657565b50611859565b60005b8481101561185757600181815481106117d557fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661184f576001818154811061180557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061183057fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117c0565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c5460609182918061189a575060155b60606118a46126bb565b905060606118b182614694565b9050828251116118c8579094509250611861915050565b838383510310156118da578282510393505b83156119105760c843046118f683838388880360008a8a614802565b61190e8383838888038989038a8b8b8b510301614802565b505b60608360405190808252806020026020018201604052801561193c578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561197557816020015b60608152602001906001900390816119605790505b50905060005b858110156119f65784818151811061198f57fe5b60200260200101518382815181106119a357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119cf57fe5b60200260200101518282815181106119e357fe5b602090810291909101015260010161197b565b509096509450505050509091565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611a3857600091505061137a565b60001901610f4e8161137f565b6001600160a01b03811660009081526004602052604081205480611a6d57600091505061137a565b600180820381548110611a7c57fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b60128181548110611ab357fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b445780601f10611b1957610100808354040283529160200191611b44565b820191906000526020600020905b815481529060010190602001808311611b2757829003601f168201915b505050505081565b60105481565b60018181548110611b5f57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c035760405162461bcd60e51b8152600401610ce7906174d5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c36939291906176da565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c945760405162461bcd60e51b8152600401610ce79061745d565b6000190192915050565b600b54611d5c57611cad616495565b60015460005b81811015611d5857600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794611d349360008051602061790f8339815191529091019201906164c4565b506060820151611d4a906003830190601361653e565b505050806001019050611cb3565b5050505b600854611d695760036008555b600a54611d76576002600a555b6000611d8133611c5e565b9050611d8c816112b0565b611da85760405162461bcd60e51b8152600401610ce7906171b2565b6115863382614959565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016177246101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e205760405162461bcd60e51b8152600401610ce790616d96565b3361100714611e415760405162461bcd60e51b8152600401610ce7906172a9565b611eab84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149f19050565b15611f485760208114611ed05760405162461bcd60e51b8152600401610ce790617417565b604080516020601f8401819004810282018101909252828152600091611f0e91858580838501838280828437600092019190915250614a4a92505050565b905060648110158015611f245750620186a08111155b611f405760405162461bcd60e51b8152600401610ce7906170a2565b600255612659565b611fa884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149f19050565b156120375760208114611fcd5760405162461bcd60e51b8152600401610ce790616c1c565b604080516020601f840181900481028201810190925282815260009161200b91858580838501838280828437600092019190915250614a4a92505050565b905061271081111561202f5760405162461bcd60e51b8152600401610ce790616f34565b600655612659565b6120a184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149f19050565b1561213b57602081146120c65760405162461bcd60e51b8152600401610ce790616c53565b604080516020601f840181900481028201810190925282815260009161210491858580838501838280828437600092019190915250614a4a92505050565b600c5490915080612113575060155b8082106121325760405162461bcd60e51b8152600401610ce790616fa7565b50600855612659565b6121a484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149f19050565b1561223d57602081146121c95760405162461bcd60e51b8152600401610ce790616d1c565b604080516020601f840181900481028201810190925282815260009161220791858580838501838280828437600092019190915250614a4a92505050565b90506000811180156122195750600a81105b6122355760405162461bcd60e51b8152600401610ce7906175b5565b600a55612659565b6122b184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149f19050565b1561234057602081146122d65760405162461bcd60e51b8152600401610ce790616cd0565b604080516020601f840181900481028201810190925282815260009161231491858580838501838280828437600092019190915250614a4a92505050565b9050600d548111156123385760405162461bcd60e51b8152600401610ce790617118565b600e55612659565b6123a984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149f19050565b1561242b57602081146123ce5760405162461bcd60e51b8152600401610ce7906172f7565b604080516020601f840181900481028201810190925282815260009161240c91858580838501838280828437600092019190915250614a4a92505050565b600d819055600e5490915081101561242557600d54600e555b50612659565b61248f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149f19050565b1561253d57602081146124b45760405162461bcd60e51b8152600401610ce790616d61565b604080516020601f84018190048102820181019092528281526000916124f291858580838501838280828437600092019190915250614a4a92505050565b9050600081116125145760405162461bcd60e51b8152600401610ce790616e04565b60648111156125355760405162461bcd60e51b8152600401610ce790616e4c565b600c55612659565b6125a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506149f19050565b1561264157602081146125ca5760405162461bcd60e51b8152600401610ce790617571565b604080516020601f840181900481028201810190925282815260009161260891858580838501838280828437600092019190915250614a4a92505050565b90506001811015801561261d57506127108111155b6126395760405162461bcd60e51b8152600401610ce79061704f565b600f55612659565b60405162461bcd60e51b8152600401610ce790617612565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161268e9493929190616bea565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156126ea576126d68161137f565b156126e2578160010191505b6001016126c5565b50606081604051908082528060200260200182016040528015612717578160200160208202803683370190505b5090506000915060005b8381101561279e576127328161137f565b15612796576001818154811061274457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061276f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612721565b50925050505b90565b601581565b61027181565b61100281565b60138181548110611ab357fe5b60006127cf6126bb565b519050600080600c54116127e45760156127e8565b600c545b9050808211156127f6578091505b8161280057600191505b5090565b67016345785d8a000081565b60055481565b61100381565b60005460ff161561283f5760405162461bcd60e51b8152600401610ce7906173a9565b61284761656b565b600061286d604051806101e001604052806101ab81526020016177246101ab9139613292565b915091508061288e5760405162461bcd60e51b8152600401610ce790617494565b60005b8260200151518110156129b3576001836020015182815181106128b057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061298657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612891565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612ada57612ac285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a2a57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b820191906000526020600020905b815481529060010190602001808311612a9b57829003601f168201915b5050505050614a4f565b15612ad25760019250505061142a565b6001016129d9565b5060125460005b81811015612b4b57612b3286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a2a57fe5b15612b43576001935050505061142a565b600101612ae1565b50600095945050505050565b3361100114612b785760405162461bcd60e51b8152600401610ce790617639565b600b54612c3657612b87616495565b60015460005b81811015612c3257600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794612c0e9360008051602061790f8339815191529091019201906164c4565b506060820151612c24906003830190601361653e565b505050806001019050612b8d565b5050505b6000612c4182614ab3565b9050612c4c816112b0565b15612c5b57612c5b8282614959565b5050565b606581565b334114612c835760405162461bcd60e51b8152600401610ce790617524565b60005460ff16612ca55760405162461bcd60e51b8152600401610ce790616d96565b60003411612cc55760405162461bcd60e51b8152600401610ce7906170e9565b3a15612ce35760405162461bcd60e51b8152600401610ce79061727b565b6001600160a01b03811660009081526004602052604090205460145434919060ff16612d2357610271600f556103e86006556014805460ff191660011790555b6000612d4c612710612d40600f5486614c5690919063ffffffff16565b9063ffffffff614c9016565b90508015612dbc576040516110029082156108fc029083906000818181858888f19350505050158015612d83573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051612db39190617691565b60405180910390a15b600083118015612dce57506000600654115b15612e74576000612df0612710612d4060065487614c5690919063ffffffff16565b90508015612e725760405161dead9082156108fc029083906000818181858888f19350505050158015612e27573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612e579190617691565b60405180910390a1612e6f848263ffffffff61427a16565b93505b505b612e84838263ffffffff61427a16565b92508115612f84576000600180840381548110612e9d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612f0a57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612efd9190617691565b60405180910390a2612f7e565b600354612f1d908563ffffffff6142bc16565b6003908155810154612f35908563ffffffff6142bc16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612f75908790617691565b60405180910390a25b50612fc6565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612fbd9190617691565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612feb57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156130965780601f1061306b57610100808354040283529160200191613096565b820191906000526020600020905b81548152906001019060200180831161307957829003601f168201915b5050505050905083565b61100481565b6000600a54600014806130b7575081155b806130c25750600954155b156130cf57506000610f4e565b6009600081546001900391905081905550600061311a600a54612d4085612d40600b89815481106130fc57fe5b6000918252602090912060169091020154439063ffffffff61427a16565b90506000600b858154811061312b57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190616923565b9150915060009350808310613242576131e187876142e1565b506040516305bfb49960e41b815261100190635bfb499090613207908a90600401616a60565b600060405180830381600087803b15801561322157600080fd5b505af1158015613235573d6000803e3d6000fd5b5050505060019350613254565b8183106132545761325287614ab3565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b61329a61656b565b60006132a461656b565b6132ac61658f565b6132bd6132b886614cd2565b614cf7565b90506000805b6132cc83614d41565b1561344057806132f1576132e76132e284614d62565b614db0565b60ff168452613438565b806001141561343357606061330d61330885614d62565b614e30565b9050805160405190808252806020026020018201604052801561334a57816020015b6133376165af565b81526020019060019003908161332f5790505b508560200181905250805160405190808252806020026020018201604052801561338857816020015b60608152602001906001900390816133735790505b50604086015260005b8151811015613428576133a26165af565b606060006133c28585815181106133b557fe5b6020026020010151614f01565b925092509250806133e2578860009a509a50505050505050505050613449565b82896020015185815181106133f357fe5b6020026020010181905250818960400151858151811061340f57fe5b6020026020010181905250505050806001019050613391565b506001925050613438565b613440565b6001016132c3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161346857905050905061348e8363ffffffff1661501b565b8160008151811061349b57fe5b6020026020010181905250610f4e8161502e565b60006064835111156134e6576000805160206178cf8339815191526040516134d690616ea9565b60405180910390a150606661142a565b60005b83518110156135845760005b8181101561357b5784818151811061350957fe5b6020026020010151600001516001600160a01b031685838151811061352a57fe5b6020026020010151600001516001600160a01b03161415613573576000805160206178cf83398151915260405161356090617004565b60405180910390a160669250505061142a565b6001016134f5565b506001016134e9565b5060608061359285856150b8565b60015491935091506000908190815b818110156136175767016345785d8a0000600182815481106135bf57fe5b906000526020600020906004020160030154106135e15783600101935061360f565b6000600182815481106135f057fe5b906000526020600020906004020160030154111561360f578260010192505b6001016135a1565b50606083604051908082528060200260200182016040528015613644578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613673578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156136a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156136d1578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613702578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613731578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561377957600080fd5b505afa15801561378d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b1919061690b565b905067016345785d8a00008111156137fc576000805160206178cf8339815191526040516137de90617368565b60405180910390a160689d505050505050505050505050505061142a565b60005b89811015613a6d5767016345785d8a00006001828154811061381d57fe5b906000526020600020906004020160030154106139a2576001818154811061384157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061387257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106138a757fe5b906000526020600020906004020160030154816138c057fe5b06600183815481106138ce57fe5b9060005260206000209060040201600301540390506138f6838261427a90919063ffffffff16565b898e8151811061390257fe5b6020026020010181815250506001828154811061391b57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061394c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061397957fe5b6020908102919091010152613994868263ffffffff6142bc16565b95508c6001019c5050613a65565b6000600182815481106139b157fe5b9060005260206000209060040201600301541115613a6557600181815481106139d657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c81518110613a0757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110613a3457fe5b906000526020600020906004020160030154838c81518110613a5257fe5b6020026020010181815250508a6001019a505b6001016137ff565b5060008415613ce3576002546040516303702b2960e51b815261100491636e056520918891613aa7918e918e918d91420190600401616b52565b6020604051808303818588803b158015613ac057600080fd5b505af193505050508015613af1575060408051601f3d908101601f19168201909252613aee91810190616838565b60015b613c68576040516000815260443d1015613b0d57506000613ba8565b60046000803e60005160e01c6308c379a08114613b2e576000915050613ba8565b60043d036004833e81513d60248201116001600160401b0382111715613b5957600092505050613ba8565b80830180516001600160401b03811115613b7a576000945050505050613ba8565b8060208301013d8601811115613b9857600095505050505050613ba8565b601f01601f191660405250925050505b80613bb35750613bf5565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613be79190616bd7565b60405180910390a250613c63565b3d808015613c1f576040519150601f19603f3d011682016040523d82523d6000602084013e613c24565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613c599190616bd7565b60405180910390a2505b613ce3565b8015613caa577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613c9d9190617691565b60405180910390a1613ce1565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613cd890616c99565b60405180910390a25b505b8015613e995760005b8751811015613e97576000888281518110613d0357fe5b60200260200101519050600060018281548110613d1c57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613d4d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613e095760018281548110613d8e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613ddd57fe5b906000526020600020906004020160030154604051613dfc9190617691565b60405180910390a2613e8d565b60018281548110613e1657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613e6557fe5b906000526020600020906004020160030154604051613e849190617691565b60405180910390a25b5050600101613cec565b505b835115613fe35760005b8451811015613fe1576000858281518110613eba57fe5b60200260200101516001600160a01b03166108fc868481518110613eda57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613f7057858281518110613f1057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613f4e57fe5b6020026020010151604051613f639190617691565b60405180910390a2613fd8565b858281518110613f7c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613fba57fe5b6020026020010151604051613fcf9190617691565b60405180910390a25b50600101613ea3565b505b505050505050505050505050600047111561405f577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516140279190617691565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561405d573d6000803e3d6000fd5b505b6000600381905560055581511561407a5761407a82826152f1565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156140b757600080fd5b505af11580156140cb573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614154575060018082038154811061413457fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561419a5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061137a565b6001546005546000198201118015906141f05784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061137a565b60058054600190810190915580548190600019860190811061420e57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615aab565b600082820183811015610f4e5760405162461bcd60e51b8152600401610ce790616dcd565b600080600183815481106142f157fe5b9060005260206000209060040201600301549050600060018080549050039050600161431b6126bb565b51116143505760006001858154811061433057fe5b90600052602060002090600402016003018190555060009250505061142a565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143899190617691565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561457657600181600101815481106143ca57fe5b9060005260206000209060040201600182815481106143e557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106144a657fe5b9060005260206000209060160201600b82815481106144c157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546145189383860193908216156101000260001901909116046165e4565b5061452b60038281019084016013616659565b5090505080600101600460006001848154811061454457fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016143ac565b50600180548061458257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806145d557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906146076002830182616683565b6146156003830160006166c7565b50509055600081838161462457fe5b04905080156146885760015460005b8181101561468557826001828154811061464957fe5b906000526020600020906004020160030154016001828154811061466957fe5b6000918252602090912060036004909202010155600101614633565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156146d357816020015b60608152602001906001900390816146be5790505b50600b5490915083146146ea57925061137a915050565b60005b828110156147f957600b60016004600089858151811061470957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061473d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156147d55780601f106147aa576101008083540402835291602001916147d5565b820191906000526020600020905b8154815290600101906020018083116147b857829003601f168201915b50505050508282815181106147e657fe5b60209081029190910101526001016146ed565b50949350505050565b60005b8281101561494f5760008287838801604051602001614825929190616a52565b6040516020818303038152906040528051906020012060001c8161484557fe5b06905080850182870114614946576000898388018151811061486357fe5b602002602001015190506060898489018151811061487d57fe5b602002602001015190508a8388018151811061489557fe5b60200260200101518b858a01815181106148ab57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106148da57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061490857fe5b60200260200101518a858a018151811061491e57fe5b6020026020010181905250808a8489018151811061493857fe5b602002602001018190525050505b50600101614805565b5050505050505050565b600980546001908101909155600b80548390811061497357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106149a957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a049190616a36565b6040516020818303038152906040528051906020012083604051602001614a2b9190616a36565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a6b5760009250614aa9565b600160208701838101602088015b600284838510011415614aa4578051835114614a985760009650600093505b60209283019201614a79565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614adc5750600019905061137a565b600181039050600060018281548110614af157fe5b9060005260206000209060040201600301549050600060018381548110614b1457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b6d908590617691565b60405180910390a280614b855782935050505061137a565b6000818381614b9057fe5b0490508015614c4c5760005b84811015614bee578160018281548110614bb257fe5b9060005260206000209060040201600301540160018281548110614bd257fe5b6000918252602090912060036004909202010155600101614b9c565b50600180549085015b81811015614c49578260018281548110614c0d57fe5b9060005260206000209060040201600301540160018281548110614c2d57fe5b6000918252602090912060036004909202010155600101614bf7565b50505b5091949350505050565b600082614c655750600061142a565b82820282848281614c7257fe5b0414610f4e5760405162461bcd60e51b8152600401610ce79061723a565b6000610f4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615ad7565b614cda6166d6565b506040805180820190915281518152602082810190820152919050565b614cff61658f565b614d0882615b0e565b614d1157600080fd5b6000614d208360200151615b48565b60208085015160408051808201909152868152920190820152915050919050565b6000614d4b6166d6565b505080518051602091820151919092015191011190565b614d6a6166d6565b614d7382614d41565b614d7c57600080fd5b60208201516000614d8c82615bab565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614dc557508151602110155b614dce57600080fd5b6000614ddd8360200151615b48565b90508083600001511015614e035760405162461bcd60e51b8152600401610ce7906173e0565b8251602080850151830180519284900392918310156147f957506020919091036101000a90049392505050565b6060614e3b82615b0e565b614e4457600080fd5b6000614e4f83615c8c565b9050606081604051908082528060200260200182016040528015614e8d57816020015b614e7a6166d6565b815260200190600190039081614e725790505b5090506000614e9f8560200151615b48565b60208601510190506000805b84811015614ef657614ebc83615bab565b9150604051806040016040528083815260200184815250848281518110614edf57fe5b602090810291909101015291810191600101614eab565b509195945050505050565b614f096165af565b60606000614f156165af565b6060614f1f61658f565b614f2887614cf7565b90506000805b614f3783614d41565b1561500c5780614f6257614f52614f4d84614d62565b615ce8565b6001600160a01b03168552615004565b8060011415614f8a57614f77614f4d84614d62565b6001600160a01b03166020860152615004565b8060021415614fb257614f9f614f4d84614d62565b6001600160a01b03166040860152615004565b8060031415614fde57614fc76132e284614d62565b6001600160401b0316606086015260019150615004565b8060041415614fff57614ff8614ff384614d62565b615d02565b9350615004565b61500c565b600101614f2e565b50929791965091945092505050565b606061142a61502983615d72565b615e58565b606081516000141561504f575060408051600081526020810190915261137a565b60608260008151811061505e57fe5b602002602001015190506000600190505b835181101561509f576150958285838151811061508857fe5b6020026020010151615eaa565b915060010161506f565b50610f4e6150b2825160c060ff16615f27565b82615eaa565b6060806000808080806150c96127c5565b6001549091505b80156151d757600181039250600b83815481106150e957fe5b600091825260209091206001601690920201015460ff16615109576151ce565b6001838154811061511657fe5b60009182526020909120600490910201546001600160a01b0316945061513d8584846130a6565b9350831580615150575060018a51038610155b1561515a576151ce565b60005b8a518110156151cc57856001600160a01b03168b828151811061517c57fe5b6020026020010151600001516001600160a01b031614156151c45760018b82815181106151a557fe5b60209081029190910101519015156080909101526001909601956151cc565b60010161515d565b505b600019016150d0565b508489510360405190808252806020026020018201604052801561521557816020015b6152026165af565b8152602001906001900390816151fa5790505b5096508489510360405190808252806020026020018201604052801561524f57816020015b606081526020019060019003908161523a5790505b5095506000915060005b89518110156152e35789818151811061526e57fe5b6020026020010151608001516152db5789818151811061528a57fe5b602002602001015188848151811061529e57fe5b60200260200101819052508881815181106152b557fe5b60200260200101518784815181106152c957fe5b60200260200101819052508260010192505b600101615259565b5050505050505b9250929050565b600154825160005b8281101561540e57600161530b6165af565b6001838154811061531857fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156153e2578781815181106153a857fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156153da57600092506153e2565b600101615394565b5081156154045780516001600160a01b03166000908152600460205260408120555b50506001016152f9565b50808211156154cd57805b828110156154cb57600180548061542c57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061547f57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154b16002830182616683565b6154bf6003830160006166c7565b50509055600101615419565b505b60008183106154dc57816154de565b825b905060005b8181101561584d576155908682815181106154fa57fe5b60200260200101516001838154811061550f57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615ff9565b6157445780600101600460008884815181106155a857fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106155e457fe5b6020026020010151600182815481106155f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106156b457fe5b6020026020010151600b82815481106156c957fe5b906000526020600020906016020160020190805190602001906156ed9291906164c4565b506000600b82815481106156fd57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061572e57fe5b6000918252602090912060169091020155615845565b6157d585828151811061575357fe5b6020026020010151600b838154811061576857fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b615820578481815181106157e557fe5b6020026020010151600b82815481106157fa57fe5b9060005260206000209060160201600201908051906020019061581e9291906164c4565b505b60006001828154811061582f57fe5b9060005260206000209060040201600301819055505b6001016154e3565b5082821115615a255761585e616495565b835b83811015615a225785818151811061587457fe5b60200260200101518260400181905250600187828151811061589257fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206178ef83398151915281019182558583015160008051602061792f8339815191528201805491151560ff19909216919091179055928501518051869492936159c89360008051602061790f833981519152019201906164c4565b5060608201516159de906003830190601361653e565b50505080600101600460008984815181106159f557fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615860565b50505b615a2d61607a565b615a3561625c565b6000600981905560015493505b83811015615aa3576000600b8281548110615a5957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615a8a57fe5b6000918252602090912060169091020155600101615a42565b505050505050565b60008184841115615acf5760405162461bcd60e51b8152600401610ce79190616bd7565b505050900390565b60008183615af85760405162461bcd60e51b8152600401610ce79190616bd7565b506000838581615b0457fe5b0495945050505050565b8051600090615b1f5750600061137a565b6020820151805160001a9060c0821015615b3e5760009250505061137a565b5060019392505050565b8051600090811a6080811015615b6257600091505061137a565b60b8811080615b7d575060c08110801590615b7d575060f881105b15615b8c57600191505061137a565b60c0811015615ba05760b51901905061137a565b60f51901905061137a565b80516000908190811a6080811015615bc65760019150615c85565b60b8811015615bdb57607e1981019150615c85565b60c0811015615c2c57600060b78203600186019550806020036101000a865104915060018101820193505080831015615c265760405162461bcd60e51b8152600401610ce790617187565b50615c85565b60f8811015615c415760be1981019150615c85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615c835760405162461bcd60e51b8152600401610ce790617187565b505b5092915050565b8051600090615c9d5750600061137a565b60008090506000615cb18460200151615b48565b602085015185519181019250015b80821015615cdf57615cd082615bab565b82019150826001019250615cbf565b50909392505050565b8051600090601514615cf957600080fd5b61142a82614db0565b8051606090615d1057600080fd5b6000615d1f8360200151615b48565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615d56576020820181803683370190505b50905060008160200190506147f984876020015101828561644a565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615db657506018615dda565b6fffffffffffffffffffffffffffffffff198416615dd657506010615dda565b5060005b6020811015615e1057818181518110615def57fe5b01602001516001600160f81b03191615615e0857615e10565b600101615dda565b60008160200390506060816040519080825280601f01601f191660200182016040528015615e45576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615e8a5750607f60f81b82600081518110615e7857fe5b01602001516001600160f81b03191611155b15615e9657508061137a565b61142a615ea88351608060ff16615f27565b835b6060806040519050835180825260208201818101602087015b81831015615edb578051835260209283019201615ec3565b50855184518101855292509050808201602086015b81831015615f08578051835260209283019201615ef0565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615f515760405162461bcd60e51b8152600401610ce790616f7f565b60408051600180825281830190925260609160208201818036833701905050905060378411615fab5782840160f81b81600081518110615f8d57fe5b60200101906001600160f81b031916908160001a905350905061142a565b6060615fb685615d72565b90508381510160370160f81b82600081518110615fcf57fe5b60200101906001600160f81b031916908160001a905350615ff08282615eaa565b95945050505050565b805182516000916001600160a01b039182169116148015616033575081602001516001600160a01b031683602001516001600160a01b0316145b8015616058575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f4e5750506060908101519101516001600160401b0390811691161490565b601254601354808211156160c557805b828110156160c357601280548061609d57fe5b6001900381819060005260206000200160006160b99190616683565b905560010161608a565b505b60008183106160d457816160d6565b825b905060005b818110156161ee57616193601282815481106160f357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156161815780601f1061615657610100808354040283529160200191616181565b820191906000526020600020905b81548152906001019060200180831161616457829003601f168201915b505050505060138381548110612a2a57fe5b6161e657601381815481106161a457fe5b90600052602060002001601282815481106161bb57fe5b9060005260206000200190805460018160011615610100020316600290046161e49291906165e4565b505b6001016160db565b5082821115610d0757825b82811015612fc65760126013828154811061621057fe5b60009182526020808320845460018181018755958552919093209290910180546162539493909201929091600261010092821615929092026000190116046165e4565b506001016161f9565b601354600b54808211156162a757805b828110156162a557601380548061627f57fe5b60019003818190600052602060002001600061629b9190616683565b905560010161626c565b505b60008183106162b657816162b8565b825b905060005b818110156163d757616375601382815481106162d557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156163635780601f1061633857610100808354040283529160200191616363565b820191906000526020600020905b81548152906001019060200180831161634657829003601f168201915b5050505050600b838154811061576857fe5b6163cf57600b818154811061638657fe5b9060005260206000209060160201600201601382815481106163a457fe5b9060005260206000200190805460018160011615610100020316600290046163cd9291906165e4565b505b6001016162bd565b5082821115610d0757825b82811015612fc6576013600b82815481106163f957fe5b600091825260208083208454600180820187559585529190932060169290920290920160029081018054616441959390940193909260001990821615610100020116046165e4565b506001016163e2565b8061645457610d07565b5b60208110616474578251825260209283019290910190601f1901616455565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016164bf6166f0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061650557805160ff1916838001178555616532565b82800160010185558215616532579182015b82811115616532578251825591602001919060010190616517565b5061280092915061670f565b82601381019282156165325791602002820182811115616532578251825591602001919060010190616517565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806165a26166d6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061661d5780548555616532565b8280016001018555821561653257600052602060002091601f016020900482015b8281111561653257825482559160010191906001019061663e565b8260138101928215616532579182018281111561653257825482559160010191906001019061663e565b50805460018160011615610100020316600290046000825580601f106166a95750611586565b601f016020900490600052602060002090810190611586919061670f565b5061158690601381019061670f565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127a491905b808211156128005760008155600101616715565b60008083601f84011261673a578182fd5b5081356001600160401b03811115616750578182fd5b60208301915083602080830285010111156152ea57600080fd5b60008083601f84011261677b578182fd5b5081356001600160401b03811115616791578182fd5b6020830191508360208285010111156152ea57600080fd5b6000602082840312156167ba578081fd5b81356001600160a01b0381168114610f4e578182fd5b600080600080604085870312156167e5578283fd5b84356001600160401b03808211156167fb578485fd5b61680788838901616729565b9096509450602087013591508082111561681f578384fd5b5061682c87828801616729565b95989497509550505050565b600060208284031215616849578081fd5b81518015158114610f4e578182fd5b6000806020838503121561686a578182fd5b82356001600160401b0381111561687f578283fd5b61688b8582860161676a565b90969095509350505050565b600080600080604085870312156168ac578384fd5b84356001600160401b03808211156168c2578586fd5b6168ce8883890161676a565b909650945060208701359150808211156168e6578384fd5b5061682c8782880161676a565b600060208284031215616904578081fd5b5035919050565b60006020828403121561691c578081fd5b5051919050565b60008060408385031215616935578182fd5b505080516020909101519092909150565b60008060006040848603121561695a578283fd5b833560ff8116811461696a578384fd5b925060208401356001600160401b03811115616984578283fd5b6169908682870161676a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169d55781516001600160a01b0316875295820195908201906001016169b0565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616a228160208601602086016176f7565b601f01601f19169290920160200192915050565b60008251616a488184602087016176f7565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f4e602083018461699d565b600060408252616af5604083018561699d565b602083820381850152818551808452828401915082838202850101838801865b83811015616b4357601f19878403018552616b31838351616a0a565b94860194925090850190600101616b15565b50909998505050505050505050565b600060808252616b65608083018761699d565b828103602084810191909152865180835287820192820190845b81811015616b9b57845183529383019391830191600101616b7f565b50508481036040860152616baf818861699d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f4e6020830184616a0a565b600060408252616bfe6040830186886169e0565b8281036020840152616c118185876169e0565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526033908201527f7468652073797374656d526577617264526174696f206d757374206265206e6f60408201527202067726561746572207468616e20313030303606c1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615ff06060830184616a0a565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615ff06040830184866169e0565b60005b838110156177125781810151838201526020016176fa565b83811115612fc6575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/kepler/mainnet/SlashContract b/core/systemcontracts/kepler/mainnet/SlashContract new file mode 100644 index 0000000000..a58ff1a1fa --- /dev/null +++ b/core/systemcontracts/kepler/mainnet/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102955760003560e01c80638256ace611610167578063c81b1662116100ce578063e1c7392a11610087578063e1c7392a146104d3578063eb57bff7146104db578063f9a2bbc7146104e3578063fc3e5908146104eb578063fc4333cd146104f3578063fd6a6879146104fb57610295565b8063c81b166214610482578063c8509d811461048a578063c96be4cb1461049d578063cc844b73146104b0578063d2a42e4b146104c3578063dc927faf146104cb57610295565b8063a78abc1611610120578063a78abc1614610447578063ab51bb961461044f578063ac0af62914610457578063ac4317511461045f578063ae61dc3b14610472578063c80d4b8f1461047a57610295565b80638256ace61461040c578063831d65d11461041457806396713da9146104275780639bc8e4f21461042f5780639dc0926214610437578063a1a11bf51461043f57610295565b8063493279b11161020b5780636e47b482116101c45780636e47b482146103dc57806370fd5bad146103e4578063718a8aa8146103ec57806375d47a0a146103f45780637912a65d146103fc5780637942fd051461040457610295565b8063493279b1146103925780634bf6c882146103a757806351e80672146103af578063567a372d146103b75780635bfb4990146103bf57806362b72cf5146103d457610295565b806335aa2e441161025d57806335aa2e441461032457806337c8dab914610337578063389f4f71146103585780633a63f4b11461036d5780633dffc3871461037557806343756e5c1461038a57610295565b80630bee7a671461029a5780630e2374a5146102b85780631182b875146102cd57806322d1e80b146102ed57806323bac5a214610302575b600080fd5b6102a2610503565b6040516102af919061354e565b60405180910390f35b6102c0610508565b6040516102af9190612d6a565b6102e06102db366004612ca0565b61050e565b6040516102af9190612da2565b6102f5610574565b6040516102af9190612d97565b610315610310366004612a4e565b61057d565b6040516102af93929190613536565b6102c0610332366004612c70565b6105a0565b61034a610345366004612a4e565b6105c7565b6040516102af929190613528565b61036061061e565b6040516102af91906134fe565b610360610624565b61037d61062a565b6040516102af919061355f565b6102c061062f565b61039a610635565b6040516102af91906134ef565b61037d61063a565b6102c061063f565b610360610645565b6103d26103cd366004612a4e565b61064b565b005b6103606106f6565b6102c06106fc565b61037d610702565b61037d610707565b6102c061070c565b610360610712565b61037d610717565b61034a61071c565b6103d2610422366004612ca0565b610726565b61037d610838565b61036061083d565b6102c0610848565b6102c061084e565b6102f5610854565b6102a261085d565b610360610862565b6103d261046d366004612b54565b610867565b610360610e17565b610360610e1e565b6102c0610e23565b6103d2610498366004612ca0565b610e29565b6103d26104ab366004612a4e565b610e9a565b6103d26104be366004612bbd565b61128b565b61036061187c565b6102c0611881565b6103d2611887565b6103606118c3565b6102c06118c9565b61037d6118cf565b6103d26118d4565b6102c0611d1d565b606481565b61200181565b6060336120001461053a5760405162461bcd60e51b815260040161053190613347565b60405180910390fd5b60005460ff1661055c5760405162461bcd60e51b815260040161053190612e9d565b60405162461bcd60e51b815260040161053190613438565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b600181815481106105ad57fe5b6000918252602090912001546001600160a01b0316905081565b6000806105d2612835565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b336110001461066c5760405162461bcd60e51b81526004016105319061312c565b60005460ff1661068e5760405162461bcd60e51b815260040161053190612e9d565b61200063f7a251d7600b6106a184611d23565b60006040518463ffffffff1660e01b81526004016106c19392919061356d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107475760405162461bcd60e51b815260040161053190613347565b60005460ff166107695760405162461bcd60e51b815260040161053190612e9d565b610771612858565b60006107b284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611df592505050565b9150915080156107f95781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107ec9161354e565b60405180910390a16106ef565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108299161354e565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108895760405162461bcd60e51b815260040161053190612e9d565b33611007146108aa5760405162461bcd60e51b815260040161053190613204565b61091584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611e759050565b156109b0576020811461093a5760405162461bcd60e51b8152600401610531906130b8565b604080516020601f840181900481028201810190925282815260009161097891858580838501838280828437600092019190915250611ecf92505050565b90506001811015801561098c575060055481105b6109a85760405162461bcd60e51b815260040161053190613302565b600455610dd4565b610a1684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611e759050565b15610ab25760208114610a3b5760405162461bcd60e51b815260040161053190613252565b604080516020601f8401819004810282018101909252828152600091610a7991858580838501838280828437600092019190915250611ecf92505050565b90506103e88111158015610a8e575060045481115b610aaa5760405162461bcd60e51b815260040161053190612f56565b600555610dd4565b610b2684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611e759050565b15610bc05760208114610b4b5760405162461bcd60e51b81526004016105319061346f565b604080516020601f8401819004810282018101909252828152600091610b8991858580838501838280828437600092019190915250611ecf92505050565b9050600a8110158015610b9c5750606481105b610bb85760405162461bcd60e51b81526004016105319061306c565b600655610dd4565b610c3484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611e759050565b15610cab5760208114610c595760405162461bcd60e51b815260040161053190612f8b565b604080516020601f8401819004810282018101909252828152610c959190848480838501838280828437600092019190915250611ed492505050565b6007805460ff1916911515919091179055610dd4565b610d1f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6d616c6963696f7573566f7465536c61736853636f706500000000000000000060208201529150611e759050565b15610dbc5760208114610d445760405162461bcd60e51b815260040161053190612de7565b604080516020601f8401819004810282018101909252828152600091610d8291858580838501838280828437600092019190915250611ecf92505050565b90506170808110158015610d985750620d2f0081105b610db45760405162461bcd60e51b815260040161053190612ed4565b600855610dd4565b60405162461bcd60e51b8152600401610531906133e3565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e099493929190612db5565b60405180910390a150505050565b6201518081565b609681565b61100281565b3361200014610e4a5760405162461bcd60e51b815260040161053190613347565b60005460ff16610e6c5760405162461bcd60e51b815260040161053190612e9d565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610eb95760405162461bcd60e51b815260040161053190613396565b60005460ff16610edb5760405162461bcd60e51b815260040161053190612e9d565b6003544311610efc5760405162461bcd60e51b8152600401610531906134ba565b3a15610f1a5760405162461bcd60e51b8152600401610531906131a7565b60405163155853f360e21b8152611000906355614fcc90610f3f908490600401612d6a565b60206040518083038186803b158015610f5757600080fd5b505afa158015610f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612b34565b610f9857611284565b610fa0612835565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ffb576020810180516001019052611054565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161106657fe5b066111b257600060208201526040516335409f7f60e01b8152611000906335409f7f90611097908590600401612d6a565b600060405180830381600087803b1580156110b157600080fd5b505af11580156110c5573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6110e585611d23565b60006040518463ffffffff1660e01b81526004016111059392919061356d565b600060405180830381600087803b15801561111f57600080fd5b505af1925050508015611130575060015b6111ad573d80801561115e576040519150601f19603f3d011682016040523d82523d6000602084013e611163565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040516111a3929190613507565b60405180910390a2505b61121e565b6004548160200151816111c157fe5b0661121e576040516375abf10160e11b81526110009063eb57e202906111eb908590600401612d6a565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166112ad5760405162461bcd60e51b815260040161053190612e9d565b604051630a83aaa960e31b81526110069063541d5548906112d2903390600401612d6a565b60206040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113229190612b34565b61133e5760405162461bcd60e51b815260040161053190612e31565b60075460ff166113605760405162461bcd60e51b815260040161053190612e68565b60065461136d5760146006555b60085461137c57620151806008555b6008548151604001514391011180156113a057504360085482602001516040015101115b6113bc5760405162461bcd60e51b81526004016105319061340a565b8060200151602001518160000151602001511480156113ea5750806020015160600151816000015160600151145b156114075760405162461bcd60e51b8152600401610531906130ff565b8051604081015190511080156114265750602081015160408101519051105b6114425760405162461bcd60e51b815260040161053190613035565b6020810151518151511080156114675750806000015160400151816020015160400151105b8061149257508051516020820151511080156114925750806020015160400151816000015160400151105b806114ac5750806020015160400151816000015160400151145b6114c85760405162461bcd60e51b815260040161053190612f1f565b604080820151905163ea321e4960e01b81526110009163ea321e49916114f19190600401612da2565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190612b34565b61155d5760405162461bcd60e51b8152600401610531906131d5565b61156f81600001518260400151611efc565b8015611588575061158881602001518260400151611efc565b6115a45760405162461bcd60e51b815260040161053190612fd6565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115e257600080fd5b505afa1580156115f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161e9190810190612a71565b9150915060005b81518110156117595761164f82828151811061163d57fe5b602002602001015185604001516120d4565b15611751576006546040516213929d60e11b8152606461100280319093020491906227253a906116859033908590600401612d7e565b602060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d79190612c88565b506110006001600160a01b03166335409f7f8584815181106116f557fe5b60200260200101516040518263ffffffff1660e01b81526004016117199190612d6a565b600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b5050505050611759565b600101611625565b50600061176b84604001516000612138565b90506120006001600160a01b031663f7a251d7600b61178d8760400151612154565b60006040518463ffffffff1660e01b81526004016117ad9392919061356d565b600060405180830381600087803b1580156117c757600080fd5b505af19250505080156117d8575060015b61184a573d808015611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161183c9190612da2565b60405180910390a250611876565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156118aa5760405162461bcd60e51b815260040161053190613294565b603260045560966005556000805460ff19166001179055565b60085481565b61100081565b600381565b33611000146118f55760405162461bcd60e51b81526004016105319061312c565b60005460ff166119175760405162461bcd60e51b815260040161053190612e9d565b60015461192357611d1b565b600154600090600019015b808211611cef576000805b82841015611a5257611949612835565b600260006001878154811061195a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a3c576004600554816119c757fe5b048160200151038160200181815250508060026000600188815481106119e957fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611a46565b6001925050611a52565b50836001019350611939565b828411611be957611a61612835565b6002600060018681548110611a7257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611b5a57600460055481611adf57fe5b04816020015103816020018181525050806002600060018781548110611b0157fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611be99050565b6002600060018681548110611b6b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611baf57fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611bdc5750611be9565b5060001990920191611a52565b818015611bf35750805b15611cd2576002600060018681548110611c0957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c5057fe5b600091825260209091200154600180546001600160a01b039092169186908110611c7657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611caf57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611cde575050611cef565b50506001909101906000190161192e565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611d3e579050509050611d67836001600160a01b031661218f565b81600081518110611d7457fe5b6020026020010181905250611d88436121b2565b81600181518110611d9557fe5b6020908102919091010152611daa60386121b2565b81600281518110611db757fe5b6020026020010181905250611dcb426121b2565b81600381518110611dd857fe5b6020026020010181905250611dec816121c5565b9150505b919050565b611dfd612858565b6000611e07612858565b611e0f61286a565b611e20611e1b8661224f565b612274565b90506000805b611e2f836122be565b15611e685780611e5b57611e4a611e45846122df565b61232d565b63ffffffff16845260019150611e60565b611e68565b600101611e26565b5091935090915050915091565b600081604051602001611e889190612d4e565b6040516020818303038152906040528051906020012083604051602001611eaf9190612d4e565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611eee576001915081611ef4565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611f18575050604080516020808252818301909252919250606091908082018180368337019050509050611f5d85600001516121b2565b82600081518110611f6a57fe5b6020026020010181905250611f8560208660200151836123af565b611f8e816123bf565b82600181518110611f9b57fe5b6020026020010181905250611fb385604001516121b2565b82600281518110611fc057fe5b6020026020010181905250611fdb60208660600151836123af565b611fe4816123bf565b82600381518110611ff157fe5b6020026020010181905250612017602061200a846121c5565b80519060200120836123af565b6040805160b080825260e08201909252606091602082018180368337019050509050612047818360006020612415565b61205981876080015160206060612415565b612067818660806030612415565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6120a457600080fd5b5060016120b2826000612468565b60ff16146120c7576000945050505050611ec9565b5060019695505050505050565b8151815160009160019181148083146120f0576000925061212e565b600160208701838101602088015b60028483851001141561212957805183511461211d5760009650600093505b602092830192016120fe565b505050505b5090949350505050565b6000816020018351101561214b57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161216f579050509050611d67836123bf565b60408051600560a21b8318601482015260348101909152606090611dec816123bf565b6060611ec96121c083612484565b6123bf565b60608151600014156121e65750604080516000815260208101909152611df0565b6060826000815181106121f557fe5b602002602001015190506000600190505b83518110156122365761222c8285838151811061221f57fe5b602002602001015161256a565b9150600101612206565b50611dec612249825160c060ff166125e7565b8261256a565b61225761288a565b506040805180820190915281518152602082810190820152919050565b61227c61286a565b612285826126b9565b61228e57600080fd5b600061229d83602001516126f3565b60208085015160408051808201909152868152920190820152915050919050565b60006122c861288a565b505080518051602091820151919092015191011190565b6122e761288a565b6122f0826122be565b6122f957600080fd5b6020820151600061230982612756565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061234257508151602110155b61234b57600080fd5b600061235a83602001516126f3565b905080836000015110156123805760405162461bcd60e51b8152600401610531906132cb565b8251602080850151830180519284900392918310156123a657826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156123f15750607f60f81b826000815181106123df57fe5b01602001516001600160f81b03191611155b156123fd575080611df0565b611ec961240f8351608060ff166125e7565b8361256a565b60005b818110156106ef5783818151811061242c57fe5b602001015160f81c60f81b85848060010195508151811061244957fe5b60200101906001600160f81b031916908160001a905350600101612418565b6000816001018351101561247b57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166124c8575060186124ec565b6fffffffffffffffffffffffffffffffff1984166124e8575060106124ec565b5060005b60208110156125225781818151811061250157fe5b01602001516001600160f81b0319161561251a57612522565b6001016124ec565b60008160200390506060816040519080825280601f01601f191660200182016040528015612557576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561259b578051835260209283019201612583565b50855184518101855292509050808201602086015b818310156125c85780518352602092830192016125b0565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106126115760405162461bcd60e51b81526004016105319061300d565b6040805160018082528183019092526060916020820181803683370190505090506037841161266b5782840160f81b8160008151811061264d57fe5b60200101906001600160f81b031916908160001a9053509050611ec9565b606061267685612484565b90508381510160370160f81b8260008151811061268f57fe5b60200101906001600160f81b031916908160001a9053506126b0828261256a565b95945050505050565b80516000906126ca57506000611df0565b6020820151805160001a9060c08210156126e957600092505050611df0565b5060019392505050565b8051600090811a608081101561270d576000915050611df0565b60b8811080612728575060c08110801590612728575060f881105b15612737576001915050611df0565b60c081101561274b5760b519019050611df0565b60f519019050611df0565b80516000908190811a6080811015612771576001915061282e565b60b881101561278657607e198101915061282e565b60c08110156127d757600060b78203600186019550806020036101000a8651049150600181018201935050808310156127d15760405162461bcd60e51b81526004016105319061317c565b5061282e565b60f88110156127ec5760be198101915061282e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611ef45760405162461bcd60e51b81526004016105319061317c565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061287d61288a565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126128b4578081fd5b81516128c76128c2826135c0565b613599565b818152915060208083019084810160005b8481101561293d578151870188603f8201126128f357600080fd5b838101516129036128c2826135e0565b81815260408b8184860101111561291957600080fd5b61292883888401838701613604565b508652505092820192908201906001016128d8565b505050505092915050565b60008083601f840112612959578182fd5b50813567ffffffffffffffff811115612970578182fd5b60208301915083602082850101111561298857600080fd5b9250929050565b600082601f83011261299f578081fd5b81356129ad6128c2826135e0565b91508082528360208285010111156129c457600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156129ee578081fd5b6129f860a0613599565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff811115612a3657600080fd5b612a428482850161298f565b60808301525092915050565b600060208284031215612a5f578081fd5b8135612a6a81613630565b9392505050565b60008060408385031215612a83578081fd5b825167ffffffffffffffff80821115612a9a578283fd5b81850186601f820112612aab578384fd5b80519250612abb6128c2846135c0565b80848252602080830192508084018a828389028701011115612adb578788fd5b8794505b86851015612b06578051612af281613630565b845260019490940193928101928101612adf565b508801519096509350505080821115612b1d578283fd5b50612b2a858286016128a4565b9150509250929050565b600060208284031215612b45578081fd5b81518015158114612a6a578182fd5b60008060008060408587031215612b69578182fd5b843567ffffffffffffffff80821115612b80578384fd5b612b8c88838901612948565b90965094506020870135915080821115612ba4578384fd5b50612bb187828801612948565b95989497509550505050565b600060208284031215612bce578081fd5b813567ffffffffffffffff80821115612be5578283fd5b81840160608187031215612bf7578384fd5b612c016060613599565b9250803582811115612c11578485fd5b612c1d878284016129dd565b845250602081013582811115612c31578485fd5b612c3d878284016129dd565b602085015250604081013582811115612c54578485fd5b612c608782840161298f565b6040850152509195945050505050565b600060208284031215612c81578081fd5b5035919050565b600060208284031215612c99578081fd5b5051919050565b600080600060408486031215612cb4578283fd5b833560ff81168114612cc4578384fd5b9250602084013567ffffffffffffffff811115612cdf578283fd5b612ceb86828701612948565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612d3a816020860160208601613604565b601f01601f19169290920160200192915050565b60008251612d60818460208701613604565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252612a6a6020830184612d22565b600060408252612dc9604083018688612cf8565b8281036020840152612ddc818587612cf8565b979650505050505050565b6020808252602a908201527f6c656e677468206f66206d616c6963696f7573566f7465536c61736853636f706040820152690ca40dad2e6dac2e8c6d60b31b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526135206040830184612d22565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526135896060830185612d22565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156135b857600080fd5b604052919050565b600067ffffffffffffffff8211156135d6578081fd5b5060209081020190565b600067ffffffffffffffff8211156135f6578081fd5b50601f01601f191660200190565b60005b8381101561361f578181015183820152602001613607565b838111156118765750506000910152565b6001600160a01b038116811461364557600080fd5b5056fea164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/kepler/mainnet/SystemRewardContract b/core/systemcontracts/kepler/mainnet/SystemRewardContract new file mode 100644 index 0000000000..53750091c9 --- /dev/null +++ b/core/systemcontracts/kepler/mainnet/SystemRewardContract @@ -0,0 +1 @@ +6080604052600436106101c55760003560e01c806375d47a0a116100f7578063ab51bb9611610095578063f9a2bbc711610064578063f9a2bbc7146105c3578063fb5478b3146105d8578063fc3e5908146105ed578063fd6a68791461060257610209565b8063ab51bb96146104b5578063ac431751146104ca578063c81b166214610599578063dc927faf146105ae57610209565b80639a99b4f0116100d15780639a99b4f01461043d5780639dc0926214610476578063a1a11bf51461048b578063a78abc16146104a057610209565b806375d47a0a146103fe5780637942fd051461041357806396713da91461042857610209565b8063493279b1116101645780636d70f7ae1161013e5780636d70f7ae146103785780636e47b482146103bf57806370fd5bad146103d4578063718a8aa8146103e957610209565b8063493279b1146103225780634bf6c8821461034e57806351e806721461036357610209565b806331b6d4a5116101a057806331b6d4a5146102b85780633a0b0eff146102cd5780633dffc387146102e257806343756e5c1461030d57610209565b806227253a1461020e5780630bee7a67146102595780630e2374a51461028757610209565b366102095734156102075760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b34801561021a57600080fd5b506102476004803603604081101561023157600080fd5b506001600160a01b038135169060200135610617565b60408051918252519081900360200190f35b34801561026557600080fd5b5061026e6107c2565b6040805163ffffffff9092168252519081900360200190f35b34801561029357600080fd5b5061029c6107c7565b604080516001600160a01b039092168252519081900360200190f35b3480156102c457600080fd5b506102476107cd565b3480156102d957600080fd5b506102476107d9565b3480156102ee57600080fd5b506102f76107df565b6040805160ff9092168252519081900360200190f35b34801561031957600080fd5b5061029c6107e4565b34801561032e57600080fd5b506103376107ea565b6040805161ffff9092168252519081900360200190f35b34801561035a57600080fd5b506102f76107ef565b34801561036f57600080fd5b5061029c6107f4565b34801561038457600080fd5b506103ab6004803603602081101561039b57600080fd5b50356001600160a01b03166107fa565b604080519115158252519081900360200190f35b3480156103cb57600080fd5b5061029c610818565b3480156103e057600080fd5b506102f761081e565b3480156103f557600080fd5b506102f7610823565b34801561040a57600080fd5b5061029c610828565b34801561041f57600080fd5b506102f761082e565b34801561043457600080fd5b506102f7610833565b34801561044957600080fd5b506102476004803603604081101561046057600080fd5b506001600160a01b038135169060200135610838565b34801561048257600080fd5b5061029c610962565b34801561049757600080fd5b5061029c610968565b3480156104ac57600080fd5b506103ab61096e565b3480156104c157600080fd5b5061026e610977565b3480156104d657600080fd5b50610207600480360360408110156104ed57600080fd5b81019060208101813564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91939092909160208101903564010000000081111561055a57600080fd5b82018360208201111561056c57600080fd5b8035906020019184600183028401116401000000008311171561058e57600080fd5b50909250905061097c565b3480156105a557600080fd5b5061029c610cff565b3480156105ba57600080fd5b5061029c610d05565b3480156105cf57600080fd5b5061029c610d0b565b3480156105e457600080fd5b50610247610d11565b3480156105f957600080fd5b506102f7610d1d565b34801561060e57600080fd5b5061029c610d22565b6000805460ff1661069457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106e25760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106106f157476106f3565b825b9050674563918244f400008111156107105750674563918244f400005b8015610791576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107bb565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b606481565b61200181565b674563918244f4000081565b60015481565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff166108b557600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166109035760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106109125747610914565b825b9050670de0b6b3a76400008111156107105750604051670de0b6b3a7640000906001600160a01b03851690600090839082818181858883f1935050505015801561074c573d6000803e3d6000fd5b61100781565b61100681565b60005460ff1681565b600081565b33611007146109bc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e6a602e913960400191505060405180910390fd5b610a1e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610d289050565b15610af657606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610aa15760405162461bcd60e51b815260040180806020018281038252602c815260200180610e98602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610c6d565b610b5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610d289050565b15610c3057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610bde5760405162461bcd60e51b815260040180806020018281038252602f815260200180610e3b602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610c6d565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610d5d5780518252601f199092019160209182019101610d3e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610dcb5780518252601f199092019160209182019101610dac565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/kepler/mainnet/ValidatorContract b/core/systemcontracts/kepler/mainnet/ValidatorContract new file mode 100644 index 0000000000..71c60afb3f --- /dev/null +++ b/core/systemcontracts/kepler/mainnet/ValidatorContract @@ -0,0 +1 @@ +6080604052600436106104a35760003560e01c806388b32f1111610260578063c6d3394511610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610c02578063f9a2bbc714610c17578063fc3e590814610c2c578063fccc281314610c41578063fd4ad81f14610c56578063fd6a687914610c85576104aa565b8063e40716a114610b85578063ea321e4914610b9a578063eb57e20214610bba578063eda5868c14610bda578063f340fa0114610bef576104aa565b8063d86222d511610108578063d86222d514610b1c578063daacdb6614610b31578063dc927faf14610b46578063e086c7b114610b5b578063e1c7392a14610b70576104aa565b8063c6d3394514610abd578063c81b166214610ad2578063c8509d81146108b6578063ce910b0c14610ae7578063d68fb56a14610b07576104aa565b8063a5422d5c116101dd578063ad3c9da6116101a1578063ad3c9da614610a3c578063aef198a914610a5c578063b7ab4db514610a71578063b8cf4ef114610a93578063bf9f499514610666578063c466689d14610aa8576104aa565b8063a5422d5c146109c8578063a78abc16146109dd578063aaf5eb68146109f2578063ab51bb9614610a07578063ac43175114610a1c576104aa565b806396713da91161022457806396713da91461095f5780639dc09262146109745780639fe0f81614610989578063a0dc27581461099e578063a1a11bf5146109b3576104aa565b806388b32f11146108eb5780638a7beb01146109005780638b5ad0c9146109155780638d19a4101461092a5780639369d7de1461094a576104aa565b806351e80672116103875780636e47b482116103045780637942fd05116102c85780637942fd05146108775780637a84ca2a1461088c57806381650b62146108a1578063831d65d1146108b6578063853230aa1461086257806386249882146108d6576104aa565b80636e47b4821461080e57806370fd5bad14610823578063718a8aa81461083857806375d47a0a1461084d57806378dfed4a14610862576104aa565b80635de1e22c1161034b5780635de1e22c14610792578063603d86d31461065157806360eba4fe146107a757806362b72cf5146107c75780636969a25c146107dc576104aa565b806351e806721461071357806355614fcc14610728578063565c56b3146107485780635667515a146107685780635d77156c1461077d576104aa565b80633365af3a1161042057806343756e5c116103e457806343756e5c1461068857806345cf9daf1461069d578063493279b1146106b25780634bf6c882146106d45780634df6e0c3146106e95780635192c82c146106fe576104aa565b80633365af3a146105ee57806335409f7f1461060e5780633b071dcc1461062e5780633de0f0d8146106515780633dffc38714610666576104aa565b8063152ad3b811610467578063152ad3b8146105625780631ff1806914610584578063219f22d514610599578063300c3567146105ae578063321d398a146105ce576104aa565b806304c4fec6146104af57806307a56847146104c65780630bee7a67146104f15780630e2374a5146105135780631182b87514610535576104aa565b366104aa57005b600080fd5b3480156104bb57600080fd5b506104c4610c9a565b005b3480156104d257600080fd5b506104db610d0c565b6040516104e89190617691565b60405180910390f35b3480156104fd57600080fd5b50610506610d12565b6040516104e891906176bb565b34801561051f57600080fd5b50610528610d17565b6040516104e89190616a60565b34801561054157600080fd5b50610555610550366004616946565b610d1d565b6040516104e89190616bd7565b34801561056e57600080fd5b50610577610f55565b6040516104e89190616bcc565b34801561059057600080fd5b506104db610f5e565b3480156105a557600080fd5b50610506610f64565b3480156105ba57600080fd5b506104c46105c93660046167d0565b610f69565b3480156105da57600080fd5b506105776105e93660046168f3565b6112b0565b3480156105fa57600080fd5b506105776106093660046168f3565b61137f565b34801561061a57600080fd5b506104c46106293660046167a9565b611430565b34801561063a57600080fd5b50610643611589565b6040516104e8929190616ae2565b34801561065d57600080fd5b506104db611865565b34801561067257600080fd5b5061067b61186b565b6040516104e891906176cc565b34801561069457600080fd5b50610528611870565b3480156106a957600080fd5b506104db611876565b3480156106be57600080fd5b506106c761187c565b6040516104e89190617682565b3480156106e057600080fd5b5061067b611881565b3480156106f557600080fd5b50610643611886565b34801561070a57600080fd5b506104db611a04565b34801561071f57600080fd5b50610528611a0a565b34801561073457600080fd5b506105776107433660046167a9565b611a10565b34801561075457600080fd5b506104db6107633660046167a9565b611a45565b34801561077457600080fd5b5061067b611a96565b34801561078957600080fd5b50610506611a9b565b34801561079e57600080fd5b506104db611aa0565b3480156107b357600080fd5b506105556107c23660046168f3565b611aa6565b3480156107d357600080fd5b506104db611b4c565b3480156107e857600080fd5b506107fc6107f73660046168f3565b611b52565b6040516104e896959493929190616a8d565b34801561081a57600080fd5b50610528611bb6565b34801561082f57600080fd5b5061067b611bbc565b34801561084457600080fd5b5061067b611bc1565b34801561085957600080fd5b50610528611bc6565b34801561086e57600080fd5b506104db611bcc565b34801561088357600080fd5b5061067b611bd2565b34801561089857600080fd5b506104db611bd7565b3480156108ad57600080fd5b50610506611bdd565b3480156108c257600080fd5b506104c46108d1366004616946565b611be2565b3480156108e257600080fd5b506104db611c43565b3480156108f757600080fd5b506104db611c49565b34801561090c57600080fd5b50610577611c4f565b34801561092157600080fd5b506104db611c58565b34801561093657600080fd5b506104db6109453660046167a9565b611c5e565b34801561095657600080fd5b506104c4611c9e565b34801561096b57600080fd5b5061067b611db2565b34801561098057600080fd5b50610528611db7565b34801561099557600080fd5b506104db611dbd565b3480156109aa57600080fd5b506104db611dc2565b3480156109bf57600080fd5b50610528611dc7565b3480156109d457600080fd5b50610555611dcd565b3480156109e957600080fd5b50610577611dec565b3480156109fe57600080fd5b506104db611df5565b348015610a1357600080fd5b50610506611a96565b348015610a2857600080fd5b506104c4610a37366004616897565b611dfe565b348015610a4857600080fd5b506104db610a573660046167a9565b61269c565b348015610a6857600080fd5b506104db6126ae565b348015610a7d57600080fd5b50610a866126bb565b6040516104e89190616acf565b348015610a9f57600080fd5b506104db6127a7565b348015610ab457600080fd5b506104db6127ac565b348015610ac957600080fd5b506104db611bbc565b348015610ade57600080fd5b506105286127b2565b348015610af357600080fd5b50610555610b023660046168f3565b6127b8565b348015610b1357600080fd5b506104db6127c5565b348015610b2857600080fd5b506104db612804565b348015610b3d57600080fd5b506104db612810565b348015610b5257600080fd5b50610528612816565b348015610b6757600080fd5b506104db610d12565b348015610b7c57600080fd5b506104c461281c565b348015610b9157600080fd5b506104db6129cb565b348015610ba657600080fd5b50610577610bb5366004616858565b6129d1565b348015610bc657600080fd5b506104c4610bd53660046167a9565b612b57565b348015610be657600080fd5b50610506612c5f565b6104c4610bfd3660046167a9565b612c64565b348015610c0e57600080fd5b506104db612fcc565b348015610c2357600080fd5b50610528612fd2565b348015610c3857600080fd5b5061067b611dbd565b348015610c4d57600080fd5b50610528612fd8565b348015610c6257600080fd5b50610c76610c713660046168f3565b612fde565b6040516104e89392919061769a565b348015610c9157600080fd5b506105286130a0565b6000610ca533611c5e565b9050600b8181548110610cb457fe5b600091825260209091206001601690920201015460ff16610cf05760405162461bcd60e51b8152600401610ce79061733c565b60405180910390fd5b6000610cfa6127c5565b9050610d073383836130a6565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d425760405162461bcd60e51b8152600401610ce790616d96565b3361200014610d635760405162461bcd60e51b8152600401610ce7906174d5565b600b54610e2157610d72616495565b60015460005b81811015610e1d57600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794610df9936000805160206177648339815191529091019201906164c4565b506060820151610e0f906003830190601361653e565b505050806001019050610d78565b5050505b610e2961656b565b6000610e6a85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061329292505050565b9150915080610e8657610e7d606461344e565b92505050610f4e565b815160009060ff16610eab57610ea4836020015184604001516134af565b9050610f1a565b825160ff1660011415610f1657826020015151600114610ef057600080516020617724833981519152604051610ee0906171f5565b60405180910390a1506067610f11565b610ea48360200151600081518110610f0457fe5b6020026020010151614103565b610f1a565b5060655b63ffffffff8116610f3f5750506040805160008152602081019091529150610f4e9050565b610f488161344e565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f885760405162461bcd60e51b8152600401610ce790617524565b6010544311610fa95760405162461bcd60e51b8152600401610ce790616ef2565b3a15610fc75760405162461bcd60e51b8152600401610ce79061727b565b60005460ff16610fe95760405162461bcd60e51b8152600401610ce790616d96565b60006110023168056bc75e2d63100000811115611020576110198168056bc75e2d6310000063ffffffff61427a16565b9150611027565b50506112a6565b6040516213929d60e11b8152611002906227253a9061104c9030908690600401616a74565b602060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e919061690b565b9150816110ac5750506112a6565b6000805b848110156110da578585828181106110c457fe5b90506020020135820191508060010190506110b0565b50806110e8575050506112a6565b6000806000805b8981101561129e578489898381811061110457fe5b9050602002013588028161111457fe5b0493508a8a8281811061112357fe5b905060200201602081019061113891906167a9565b6001600160a01b0381166000908152600460205260409020549093509150811561125457600060018084038154811061116d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111da57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111cd9190617691565b60405180910390a261124e565b6003546111ed908663ffffffff6142bc16565b6003908155810154611205908663ffffffff6142bc16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611245908890617691565b60405180910390a25b50611296565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161128d9190617691565b60405180910390a25b6001016110ef565b505050505050505b5050436010555050565b60015460009082106112c45750600061137a565b60006001600160a01b0316600183815481106112dc57fe5b60009182526020909120600490910201546001600160a01b0316148061130c5750600854158061130c5750600a54155b8061131b575060085460095410155b8061132c575061132a8261137f565b155b8061135557506000600b838154811061134157fe5b906000526020600020906016020160000154115b80611369575060016113656126bb565b5111155b156113765750600061137a565b5060015b919050565b60015460009082106113935750600061137a565b600b5482106113d057600182815481106113a957fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061137a565b600182815481106113dd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561142a5750600b828154811061141157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114515760405162461bcd60e51b8152600401610ce790617639565b600b5461150f57611460616495565b60015460005b8181101561150b57600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff19169115159190911790556040860151805187946114e7936000805160206177648339815191529091019201906164c4565b5060608201516114fd906003830190601361653e565b505050806001019050611466565b5050505b6001600160a01b038116600090815260046020526040902054806115335750611586565b6001810390506000600b828154811061154857fe5b600091825260209091206001601690920201015460ff16905061156b83836142e1565b80156115745750805b15610d07576009805460001901905550505b50565b60015460609081906000805b828110156115dc57600181815481106115aa57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115d4576001909101905b600101611595565b50606081604051908082528060200260200182016040528015611609578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561164257816020015b606081526020019060019003908161162d5790505b50600b54600094509091508414156117bd5760005b848110156117b7576001818154811061166c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117af576001818154811061169c57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116c757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106116f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561178c5780601f106117615761010080835404028352916020019161178c565b820191906000526020600020905b81548152906001019060200180831161176f57829003601f168201915b505050505082858151811061179d57fe5b60209081029190910101526001909301925b600101611657565b50611859565b60005b8481101561185757600181815481106117d557fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661184f576001818154811061180557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061183057fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117c0565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c5460609182918061189a575060155b60606118a46126bb565b905060606118b182614694565b9050828251116118c8579094509250611861915050565b838383510310156118da578282510393505b83156119105760c843046118f683838388880360008a8a614802565b61190e8383838888038989038a8b8b8b510301614802565b505b60608360405190808252806020026020018201604052801561193c578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561197557816020015b60608152602001906001900390816119605790505b50905060005b858110156119f65784818151811061198f57fe5b60200260200101518382815181106119a357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119cf57fe5b60200260200101518282815181106119e357fe5b602090810291909101015260010161197b565b509096509450505050509091565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611a3857600091505061137a565b60001901610f4e8161137f565b6001600160a01b03811660009081526004602052604081205480611a6d57600091505061137a565b600180820381548110611a7c57fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b60128181548110611ab357fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b445780601f10611b1957610100808354040283529160200191611b44565b820191906000526020600020905b815481529060010190602001808311611b2757829003601f168201915b505050505081565b60105481565b60018181548110611b5f57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c035760405162461bcd60e51b8152600401610ce7906174d5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c36939291906176da565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c945760405162461bcd60e51b8152600401610ce79061745d565b6000190192915050565b600b54611d5c57611cad616495565b60015460005b81811015611d5857600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794611d34936000805160206177648339815191529091019201906164c4565b506060820151611d4a906003830190601361653e565b505050806001019050611cb3565b5050505b600854611d695760036008555b600a54611d76576002600a555b6000611d8133611c5e565b9050611d8c816112b0565b611da85760405162461bcd60e51b8152600401610ce7906171b2565b6115863382614959565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016177846105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611e205760405162461bcd60e51b8152600401610ce790616d96565b3361100714611e415760405162461bcd60e51b8152600401610ce7906172a9565b611eab84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149f19050565b15611f485760208114611ed05760405162461bcd60e51b8152600401610ce790617417565b604080516020601f8401819004810282018101909252828152600091611f0e91858580838501838280828437600092019190915250614a4a92505050565b905060648110158015611f245750620186a08111155b611f405760405162461bcd60e51b8152600401610ce7906170a2565b600255612659565b611fa884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149f19050565b156120375760208114611fcd5760405162461bcd60e51b8152600401610ce790616c1c565b604080516020601f840181900481028201810190925282815260009161200b91858580838501838280828437600092019190915250614a4a92505050565b905061271081111561202f5760405162461bcd60e51b8152600401610ce790616f34565b600655612659565b6120a184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149f19050565b1561213b57602081146120c65760405162461bcd60e51b8152600401610ce790616c53565b604080516020601f840181900481028201810190925282815260009161210491858580838501838280828437600092019190915250614a4a92505050565b600c5490915080612113575060155b8082106121325760405162461bcd60e51b8152600401610ce790616fa7565b50600855612659565b6121a484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149f19050565b1561223d57602081146121c95760405162461bcd60e51b8152600401610ce790616d1c565b604080516020601f840181900481028201810190925282815260009161220791858580838501838280828437600092019190915250614a4a92505050565b90506000811180156122195750600a81105b6122355760405162461bcd60e51b8152600401610ce7906175b5565b600a55612659565b6122b184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149f19050565b1561234057602081146122d65760405162461bcd60e51b8152600401610ce790616cd0565b604080516020601f840181900481028201810190925282815260009161231491858580838501838280828437600092019190915250614a4a92505050565b9050600d548111156123385760405162461bcd60e51b8152600401610ce790617118565b600e55612659565b6123a984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149f19050565b1561242b57602081146123ce5760405162461bcd60e51b8152600401610ce7906172f7565b604080516020601f840181900481028201810190925282815260009161240c91858580838501838280828437600092019190915250614a4a92505050565b600d819055600e5490915081101561242557600d54600e555b50612659565b61248f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149f19050565b1561253d57602081146124b45760405162461bcd60e51b8152600401610ce790616d61565b604080516020601f84018190048102820181019092528281526000916124f291858580838501838280828437600092019190915250614a4a92505050565b9050600081116125145760405162461bcd60e51b8152600401610ce790616e04565b60648111156125355760405162461bcd60e51b8152600401610ce790616e4c565b600c55612659565b6125a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506149f19050565b1561264157602081146125ca5760405162461bcd60e51b8152600401610ce790617571565b604080516020601f840181900481028201810190925282815260009161260891858580838501838280828437600092019190915250614a4a92505050565b90506001811015801561261d57506127108111155b6126395760405162461bcd60e51b8152600401610ce79061704f565b600f55612659565b60405162461bcd60e51b8152600401610ce790617612565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161268e9493929190616bea565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156126ea576126d68161137f565b156126e2578160010191505b6001016126c5565b50606081604051908082528060200260200182016040528015612717578160200160208202803683370190505b5090506000915060005b8381101561279e576127328161137f565b15612796576001818154811061274457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061276f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612721565b50925050505b90565b601581565b61027181565b61100281565b60138181548110611ab357fe5b60006127cf6126bb565b519050600080600c54116127e45760156127e8565b600c545b9050808211156127f6578091505b8161280057600191505b5090565b67016345785d8a000081565b60055481565b61100381565b60005460ff161561283f5760405162461bcd60e51b8152600401610ce7906173a9565b61284761656b565b600061286d6040518061062001604052806105ef81526020016177846105ef9139613292565b915091508061288e5760405162461bcd60e51b8152600401610ce790617494565b60005b8260200151518110156129b3576001836020015182815181106128b057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061298657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612891565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612ada57612ac285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a2a57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b820191906000526020600020905b815481529060010190602001808311612a9b57829003601f168201915b5050505050614a4f565b15612ad25760019250505061142a565b6001016129d9565b5060125460005b81811015612b4b57612b3286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a2a57fe5b15612b43576001935050505061142a565b600101612ae1565b50600095945050505050565b3361100114612b785760405162461bcd60e51b8152600401610ce790617639565b600b54612c3657612b87616495565b60015460005b81811015612c3257600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794612c0e936000805160206177648339815191529091019201906164c4565b506060820151612c24906003830190601361653e565b505050806001019050612b8d565b5050505b6000612c4182614ab3565b9050612c4c816112b0565b15612c5b57612c5b8282614959565b5050565b606581565b334114612c835760405162461bcd60e51b8152600401610ce790617524565b60005460ff16612ca55760405162461bcd60e51b8152600401610ce790616d96565b60003411612cc55760405162461bcd60e51b8152600401610ce7906170e9565b3a15612ce35760405162461bcd60e51b8152600401610ce79061727b565b6001600160a01b03811660009081526004602052604090205460145434919060ff16612d2357610271600f556103e86006556014805460ff191660011790555b6000612d4c612710612d40600f5486614c5690919063ffffffff16565b9063ffffffff614c9016565b90508015612dbc576040516110029082156108fc029083906000818181858888f19350505050158015612d83573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051612db39190617691565b60405180910390a15b600083118015612dce57506000600654115b15612e74576000612df0612710612d4060065487614c5690919063ffffffff16565b90508015612e725760405161dead9082156108fc029083906000818181858888f19350505050158015612e27573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612e579190617691565b60405180910390a1612e6f848263ffffffff61427a16565b93505b505b612e84838263ffffffff61427a16565b92508115612f84576000600180840381548110612e9d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612f0a57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612efd9190617691565b60405180910390a2612f7e565b600354612f1d908563ffffffff6142bc16565b6003908155810154612f35908563ffffffff6142bc16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612f75908790617691565b60405180910390a25b50612fc6565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612fbd9190617691565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612feb57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156130965780601f1061306b57610100808354040283529160200191613096565b820191906000526020600020905b81548152906001019060200180831161307957829003601f168201915b5050505050905083565b61100481565b6000600a54600014806130b7575081155b806130c25750600954155b156130cf57506000610f4e565b6009600081546001900391905081905550600061311a600a54612d4085612d40600b89815481106130fc57fe5b6000918252602090912060169091020154439063ffffffff61427a16565b90506000600b858154811061312b57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190616923565b9150915060009350808310613242576131e187876142e1565b506040516305bfb49960e41b815261100190635bfb499090613207908a90600401616a60565b600060405180830381600087803b15801561322157600080fd5b505af1158015613235573d6000803e3d6000fd5b5050505060019350613254565b8183106132545761325287614ab3565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b61329a61656b565b60006132a461656b565b6132ac61658f565b6132bd6132b886614cd2565b614cf7565b90506000805b6132cc83614d41565b1561344057806132f1576132e76132e284614d62565b614db0565b60ff168452613438565b806001141561343357606061330d61330885614d62565b614e30565b9050805160405190808252806020026020018201604052801561334a57816020015b6133376165af565b81526020019060019003908161332f5790505b508560200181905250805160405190808252806020026020018201604052801561338857816020015b60608152602001906001900390816133735790505b50604086015260005b8151811015613428576133a26165af565b606060006133c28585815181106133b557fe5b6020026020010151614f01565b925092509250806133e2578860009a509a50505050505050505050613449565b82896020015185815181106133f357fe5b6020026020010181905250818960400151858151811061340f57fe5b6020026020010181905250505050806001019050613391565b506001925050613438565b613440565b6001016132c3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161346857905050905061348e8363ffffffff1661501b565b8160008151811061349b57fe5b6020026020010181905250610f4e8161502e565b60006064835111156134e6576000805160206177248339815191526040516134d690616ea9565b60405180910390a150606661142a565b60005b83518110156135845760005b8181101561357b5784818151811061350957fe5b6020026020010151600001516001600160a01b031685838151811061352a57fe5b6020026020010151600001516001600160a01b031614156135735760008051602061772483398151915260405161356090617004565b60405180910390a160669250505061142a565b6001016134f5565b506001016134e9565b5060608061359285856150b8565b60015491935091506000908190815b818110156136175767016345785d8a0000600182815481106135bf57fe5b906000526020600020906004020160030154106135e15783600101935061360f565b6000600182815481106135f057fe5b906000526020600020906004020160030154111561360f578260010192505b6001016135a1565b50606083604051908082528060200260200182016040528015613644578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613673578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156136a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156136d1578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613702578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613731578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561377957600080fd5b505afa15801561378d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b1919061690b565b905067016345785d8a00008111156137fc576000805160206177248339815191526040516137de90617368565b60405180910390a160689d505050505050505050505050505061142a565b60005b89811015613a6d5767016345785d8a00006001828154811061381d57fe5b906000526020600020906004020160030154106139a2576001818154811061384157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061387257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106138a757fe5b906000526020600020906004020160030154816138c057fe5b06600183815481106138ce57fe5b9060005260206000209060040201600301540390506138f6838261427a90919063ffffffff16565b898e8151811061390257fe5b6020026020010181815250506001828154811061391b57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061394c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061397957fe5b6020908102919091010152613994868263ffffffff6142bc16565b95508c6001019c5050613a65565b6000600182815481106139b157fe5b9060005260206000209060040201600301541115613a6557600181815481106139d657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c81518110613a0757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110613a3457fe5b906000526020600020906004020160030154838c81518110613a5257fe5b6020026020010181815250508a6001019a505b6001016137ff565b5060008415613ce3576002546040516303702b2960e51b815261100491636e056520918891613aa7918e918e918d91420190600401616b52565b6020604051808303818588803b158015613ac057600080fd5b505af193505050508015613af1575060408051601f3d908101601f19168201909252613aee91810190616838565b60015b613c68576040516000815260443d1015613b0d57506000613ba8565b60046000803e60005160e01c6308c379a08114613b2e576000915050613ba8565b60043d036004833e81513d60248201116001600160401b0382111715613b5957600092505050613ba8565b80830180516001600160401b03811115613b7a576000945050505050613ba8565b8060208301013d8601811115613b9857600095505050505050613ba8565b601f01601f191660405250925050505b80613bb35750613bf5565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613be79190616bd7565b60405180910390a250613c63565b3d808015613c1f576040519150601f19603f3d011682016040523d82523d6000602084013e613c24565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613c599190616bd7565b60405180910390a2505b613ce3565b8015613caa577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613c9d9190617691565b60405180910390a1613ce1565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613cd890616c99565b60405180910390a25b505b8015613e995760005b8751811015613e97576000888281518110613d0357fe5b60200260200101519050600060018281548110613d1c57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613d4d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613e095760018281548110613d8e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613ddd57fe5b906000526020600020906004020160030154604051613dfc9190617691565b60405180910390a2613e8d565b60018281548110613e1657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613e6557fe5b906000526020600020906004020160030154604051613e849190617691565b60405180910390a25b5050600101613cec565b505b835115613fe35760005b8451811015613fe1576000858281518110613eba57fe5b60200260200101516001600160a01b03166108fc868481518110613eda57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613f7057858281518110613f1057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613f4e57fe5b6020026020010151604051613f639190617691565b60405180910390a2613fd8565b858281518110613f7c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613fba57fe5b6020026020010151604051613fcf9190617691565b60405180910390a25b50600101613ea3565b505b505050505050505050505050600047111561405f577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516140279190617691565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561405d573d6000803e3d6000fd5b505b6000600381905560055581511561407a5761407a82826152f1565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156140b757600080fd5b505af11580156140cb573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614154575060018082038154811061413457fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561419a5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061137a565b6001546005546000198201118015906141f05784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061137a565b60058054600190810190915580548190600019860190811061420e57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615aab565b600082820183811015610f4e5760405162461bcd60e51b8152600401610ce790616dcd565b600080600183815481106142f157fe5b9060005260206000209060040201600301549050600060018080549050039050600161431b6126bb565b51116143505760006001858154811061433057fe5b90600052602060002090600402016003018190555060009250505061142a565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143899190617691565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561457657600181600101815481106143ca57fe5b9060005260206000209060040201600182815481106143e557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106144a657fe5b9060005260206000209060160201600b82815481106144c157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546145189383860193908216156101000260001901909116046165e4565b5061452b60038281019084016013616659565b5090505080600101600460006001848154811061454457fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016143ac565b50600180548061458257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806145d557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906146076002830182616683565b6146156003830160006166c7565b50509055600081838161462457fe5b04905080156146885760015460005b8181101561468557826001828154811061464957fe5b906000526020600020906004020160030154016001828154811061466957fe5b6000918252602090912060036004909202010155600101614633565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156146d357816020015b60608152602001906001900390816146be5790505b50600b5490915083146146ea57925061137a915050565b60005b828110156147f957600b60016004600089858151811061470957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061473d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156147d55780601f106147aa576101008083540402835291602001916147d5565b820191906000526020600020905b8154815290600101906020018083116147b857829003601f168201915b50505050508282815181106147e657fe5b60209081029190910101526001016146ed565b50949350505050565b60005b8281101561494f5760008287838801604051602001614825929190616a52565b6040516020818303038152906040528051906020012060001c8161484557fe5b06905080850182870114614946576000898388018151811061486357fe5b602002602001015190506060898489018151811061487d57fe5b602002602001015190508a8388018151811061489557fe5b60200260200101518b858a01815181106148ab57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106148da57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061490857fe5b60200260200101518a858a018151811061491e57fe5b6020026020010181905250808a8489018151811061493857fe5b602002602001018190525050505b50600101614805565b5050505050505050565b600980546001908101909155600b80548390811061497357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106149a957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a049190616a36565b6040516020818303038152906040528051906020012083604051602001614a2b9190616a36565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a6b5760009250614aa9565b600160208701838101602088015b600284838510011415614aa4578051835114614a985760009650600093505b60209283019201614a79565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614adc5750600019905061137a565b600181039050600060018281548110614af157fe5b9060005260206000209060040201600301549050600060018381548110614b1457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b6d908590617691565b60405180910390a280614b855782935050505061137a565b6000818381614b9057fe5b0490508015614c4c5760005b84811015614bee578160018281548110614bb257fe5b9060005260206000209060040201600301540160018281548110614bd257fe5b6000918252602090912060036004909202010155600101614b9c565b50600180549085015b81811015614c49578260018281548110614c0d57fe5b9060005260206000209060040201600301540160018281548110614c2d57fe5b6000918252602090912060036004909202010155600101614bf7565b50505b5091949350505050565b600082614c655750600061142a565b82820282848281614c7257fe5b0414610f4e5760405162461bcd60e51b8152600401610ce79061723a565b6000610f4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615ad7565b614cda6166d6565b506040805180820190915281518152602082810190820152919050565b614cff61658f565b614d0882615b0e565b614d1157600080fd5b6000614d208360200151615b48565b60208085015160408051808201909152868152920190820152915050919050565b6000614d4b6166d6565b505080518051602091820151919092015191011190565b614d6a6166d6565b614d7382614d41565b614d7c57600080fd5b60208201516000614d8c82615bab565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614dc557508151602110155b614dce57600080fd5b6000614ddd8360200151615b48565b90508083600001511015614e035760405162461bcd60e51b8152600401610ce7906173e0565b8251602080850151830180519284900392918310156147f957506020919091036101000a90049392505050565b6060614e3b82615b0e565b614e4457600080fd5b6000614e4f83615c8c565b9050606081604051908082528060200260200182016040528015614e8d57816020015b614e7a6166d6565b815260200190600190039081614e725790505b5090506000614e9f8560200151615b48565b60208601510190506000805b84811015614ef657614ebc83615bab565b9150604051806040016040528083815260200184815250848281518110614edf57fe5b602090810291909101015291810191600101614eab565b509195945050505050565b614f096165af565b60606000614f156165af565b6060614f1f61658f565b614f2887614cf7565b90506000805b614f3783614d41565b1561500c5780614f6257614f52614f4d84614d62565b615ce8565b6001600160a01b03168552615004565b8060011415614f8a57614f77614f4d84614d62565b6001600160a01b03166020860152615004565b8060021415614fb257614f9f614f4d84614d62565b6001600160a01b03166040860152615004565b8060031415614fde57614fc76132e284614d62565b6001600160401b0316606086015260019150615004565b8060041415614fff57614ff8614ff384614d62565b615d02565b9350615004565b61500c565b600101614f2e565b50929791965091945092505050565b606061142a61502983615d72565b615e58565b606081516000141561504f575060408051600081526020810190915261137a565b60608260008151811061505e57fe5b602002602001015190506000600190505b835181101561509f576150958285838151811061508857fe5b6020026020010151615eaa565b915060010161506f565b50610f4e6150b2825160c060ff16615f27565b82615eaa565b6060806000808080806150c96127c5565b6001549091505b80156151d757600181039250600b83815481106150e957fe5b600091825260209091206001601690920201015460ff16615109576151ce565b6001838154811061511657fe5b60009182526020909120600490910201546001600160a01b0316945061513d8584846130a6565b9350831580615150575060018a51038610155b1561515a576151ce565b60005b8a518110156151cc57856001600160a01b03168b828151811061517c57fe5b6020026020010151600001516001600160a01b031614156151c45760018b82815181106151a557fe5b60209081029190910101519015156080909101526001909601956151cc565b60010161515d565b505b600019016150d0565b508489510360405190808252806020026020018201604052801561521557816020015b6152026165af565b8152602001906001900390816151fa5790505b5096508489510360405190808252806020026020018201604052801561524f57816020015b606081526020019060019003908161523a5790505b5095506000915060005b89518110156152e35789818151811061526e57fe5b6020026020010151608001516152db5789818151811061528a57fe5b602002602001015188848151811061529e57fe5b60200260200101819052508881815181106152b557fe5b60200260200101518784815181106152c957fe5b60200260200101819052508260010192505b600101615259565b5050505050505b9250929050565b600154825160005b8281101561540e57600161530b6165af565b6001838154811061531857fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156153e2578781815181106153a857fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156153da57600092506153e2565b600101615394565b5081156154045780516001600160a01b03166000908152600460205260408120555b50506001016152f9565b50808211156154cd57805b828110156154cb57600180548061542c57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061547f57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154b16002830182616683565b6154bf6003830160006166c7565b50509055600101615419565b505b60008183106154dc57816154de565b825b905060005b8181101561584d576155908682815181106154fa57fe5b60200260200101516001838154811061550f57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615ff9565b6157445780600101600460008884815181106155a857fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106155e457fe5b6020026020010151600182815481106155f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106156b457fe5b6020026020010151600b82815481106156c957fe5b906000526020600020906016020160020190805190602001906156ed9291906164c4565b506000600b82815481106156fd57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061572e57fe5b6000918252602090912060169091020155615845565b6157d585828151811061575357fe5b6020026020010151600b838154811061576857fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b615820578481815181106157e557fe5b6020026020010151600b82815481106157fa57fe5b9060005260206000209060160201600201908051906020019061581e9291906164c4565b505b60006001828154811061582f57fe5b9060005260206000209060040201600301819055505b6001016154e3565b5082821115615a255761585e616495565b835b83811015615a225785818151811061587457fe5b60200260200101518260400181905250600187828151811061589257fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020617744833981519152810191825585830151600080516020617d738339815191528201805491151560ff19909216919091179055928501518051869492936159c893600080516020617764833981519152019201906164c4565b5060608201516159de906003830190601361653e565b50505080600101600460008984815181106159f557fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615860565b50505b615a2d61607a565b615a3561625c565b6000600981905560015493505b83811015615aa3576000600b8281548110615a5957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615a8a57fe5b6000918252602090912060169091020155600101615a42565b505050505050565b60008184841115615acf5760405162461bcd60e51b8152600401610ce79190616bd7565b505050900390565b60008183615af85760405162461bcd60e51b8152600401610ce79190616bd7565b506000838581615b0457fe5b0495945050505050565b8051600090615b1f5750600061137a565b6020820151805160001a9060c0821015615b3e5760009250505061137a565b5060019392505050565b8051600090811a6080811015615b6257600091505061137a565b60b8811080615b7d575060c08110801590615b7d575060f881105b15615b8c57600191505061137a565b60c0811015615ba05760b51901905061137a565b60f51901905061137a565b80516000908190811a6080811015615bc65760019150615c85565b60b8811015615bdb57607e1981019150615c85565b60c0811015615c2c57600060b78203600186019550806020036101000a865104915060018101820193505080831015615c265760405162461bcd60e51b8152600401610ce790617187565b50615c85565b60f8811015615c415760be1981019150615c85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615c835760405162461bcd60e51b8152600401610ce790617187565b505b5092915050565b8051600090615c9d5750600061137a565b60008090506000615cb18460200151615b48565b602085015185519181019250015b80821015615cdf57615cd082615bab565b82019150826001019250615cbf565b50909392505050565b8051600090601514615cf957600080fd5b61142a82614db0565b8051606090615d1057600080fd5b6000615d1f8360200151615b48565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615d56576020820181803683370190505b50905060008160200190506147f984876020015101828561644a565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615db657506018615dda565b6fffffffffffffffffffffffffffffffff198416615dd657506010615dda565b5060005b6020811015615e1057818181518110615def57fe5b01602001516001600160f81b03191615615e0857615e10565b600101615dda565b60008160200390506060816040519080825280601f01601f191660200182016040528015615e45576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615e8a5750607f60f81b82600081518110615e7857fe5b01602001516001600160f81b03191611155b15615e9657508061137a565b61142a615ea88351608060ff16615f27565b835b6060806040519050835180825260208201818101602087015b81831015615edb578051835260209283019201615ec3565b50855184518101855292509050808201602086015b81831015615f08578051835260209283019201615ef0565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615f515760405162461bcd60e51b8152600401610ce790616f7f565b60408051600180825281830190925260609160208201818036833701905050905060378411615fab5782840160f81b81600081518110615f8d57fe5b60200101906001600160f81b031916908160001a905350905061142a565b6060615fb685615d72565b90508381510160370160f81b82600081518110615fcf57fe5b60200101906001600160f81b031916908160001a905350615ff08282615eaa565b95945050505050565b805182516000916001600160a01b039182169116148015616033575081602001516001600160a01b031683602001516001600160a01b0316145b8015616058575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f4e5750506060908101519101516001600160401b0390811691161490565b601254601354808211156160c557805b828110156160c357601280548061609d57fe5b6001900381819060005260206000200160006160b99190616683565b905560010161608a565b505b60008183106160d457816160d6565b825b905060005b818110156161ee57616193601282815481106160f357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156161815780601f1061615657610100808354040283529160200191616181565b820191906000526020600020905b81548152906001019060200180831161616457829003601f168201915b505050505060138381548110612a2a57fe5b6161e657601381815481106161a457fe5b90600052602060002001601282815481106161bb57fe5b9060005260206000200190805460018160011615610100020316600290046161e49291906165e4565b505b6001016160db565b5082821115610d0757825b82811015612fc65760126013828154811061621057fe5b60009182526020808320845460018181018755958552919093209290910180546162539493909201929091600261010092821615929092026000190116046165e4565b506001016161f9565b601354600b54808211156162a757805b828110156162a557601380548061627f57fe5b60019003818190600052602060002001600061629b9190616683565b905560010161626c565b505b60008183106162b657816162b8565b825b905060005b818110156163d757616375601382815481106162d557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156163635780601f1061633857610100808354040283529160200191616363565b820191906000526020600020905b81548152906001019060200180831161634657829003601f168201915b5050505050600b838154811061576857fe5b6163cf57600b818154811061638657fe5b9060005260206000209060160201600201601382815481106163a457fe5b9060005260206000200190805460018160011615610100020316600290046163cd9291906165e4565b505b6001016162bd565b5082821115610d0757825b82811015612fc6576013600b82815481106163f957fe5b600091825260208083208454600180820187559585529190932060169290920290920160029081018054616441959390940193909260001990821615610100020116046165e4565b506001016163e2565b8061645457610d07565b5b60208110616474578251825260209283019290910190601f1901616455565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016164bf6166f0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061650557805160ff1916838001178555616532565b82800160010185558215616532579182015b82811115616532578251825591602001919060010190616517565b5061280092915061670f565b82601381019282156165325791602002820182811115616532578251825591602001919060010190616517565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806165a26166d6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061661d5780548555616532565b8280016001018555821561653257600052602060002091601f016020900482015b8281111561653257825482559160010191906001019061663e565b8260138101928215616532579182018281111561653257825482559160010191906001019061663e565b50805460018160011615610100020316600290046000825580601f106166a95750611586565b601f016020900490600052602060002090810190611586919061670f565b5061158690601381019061670f565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127a491905b808211156128005760008155600101616715565b60008083601f84011261673a578182fd5b5081356001600160401b03811115616750578182fd5b60208301915083602080830285010111156152ea57600080fd5b60008083601f84011261677b578182fd5b5081356001600160401b03811115616791578182fd5b6020830191508360208285010111156152ea57600080fd5b6000602082840312156167ba578081fd5b81356001600160a01b0381168114610f4e578182fd5b600080600080604085870312156167e5578283fd5b84356001600160401b03808211156167fb578485fd5b61680788838901616729565b9096509450602087013591508082111561681f578384fd5b5061682c87828801616729565b95989497509550505050565b600060208284031215616849578081fd5b81518015158114610f4e578182fd5b6000806020838503121561686a578182fd5b82356001600160401b0381111561687f578283fd5b61688b8582860161676a565b90969095509350505050565b600080600080604085870312156168ac578384fd5b84356001600160401b03808211156168c2578586fd5b6168ce8883890161676a565b909650945060208701359150808211156168e6578384fd5b5061682c8782880161676a565b600060208284031215616904578081fd5b5035919050565b60006020828403121561691c578081fd5b5051919050565b60008060408385031215616935578182fd5b505080516020909101519092909150565b60008060006040848603121561695a578283fd5b833560ff8116811461696a578384fd5b925060208401356001600160401b03811115616984578283fd5b6169908682870161676a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169d55781516001600160a01b0316875295820195908201906001016169b0565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616a228160208601602086016176f7565b601f01601f19169290920160200192915050565b60008251616a488184602087016176f7565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f4e602083018461699d565b600060408252616af5604083018561699d565b602083820381850152818551808452828401915082838202850101838801865b83811015616b4357601f19878403018552616b31838351616a0a565b94860194925090850190600101616b15565b50909998505050505050505050565b600060808252616b65608083018761699d565b828103602084810191909152865180835287820192820190845b81811015616b9b57845183529383019391830191600101616b7f565b50508481036040860152616baf818861699d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f4e6020830184616a0a565b600060408252616bfe6040830186886169e0565b8281036020840152616c118185876169e0565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526033908201527f7468652073797374656d526577617264526174696f206d757374206265206e6f60408201527202067726561746572207468616e20313030303606c1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615ff06060830184616a0a565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615ff06040830184866169e0565b60005b838110156177125781810151838201526020016176fa565b83811115612fc6575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a \ No newline at end of file diff --git a/core/systemcontracts/kepler/types.go b/core/systemcontracts/kepler/types.go new file mode 100644 index 0000000000..0701d7b818 --- /dev/null +++ b/core/systemcontracts/kepler/types.go @@ -0,0 +1,23 @@ +package kepler + +import _ "embed" + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/ValidatorContract + MainnetValidatorContract string + //go:embed mainnet/SlashContract + MainnetSlashContract string + //go:embed mainnet/SystemRewardContract + MainnetSystemRewardContract string +) + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/ValidatorContract + ChapelValidatorContract string + //go:embed chapel/SlashContract + ChapelSlashContract string + //go:embed chapel/SystemRewardContract + ChapelSystemRewardContract string +) diff --git a/core/systemcontracts/luban/chapel/CrossChainContract b/core/systemcontracts/luban/chapel/CrossChainContract new file mode 100644 index 0000000000..d29a32fef1 --- /dev/null +++ b/core/systemcontracts/luban/chapel/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b6104096129c6565b6103a66129ce565b6103e56129d3565b6103e56129d9565b6104236129df565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b5090925090506129e8565b61063d60048036036020811015610a9657600080fd5b503560ff166134ac565b6104096134c7565b6103e56134eb565b6105996134f1565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff16613745565b61070c613765565b610409613784565b6103e561378a565b610599613790565b61063d60048036036020811015610b1d57600080fd5b503560ff16613b47565b610599613b62565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613d81565b6103e5613ec4565b6103a6613eca565b6103e5613ecf565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613ed5565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f1d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f1d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61401a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614098565b509050611386818388516140a2565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d890836140e3565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b03908116908316811461187d576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b1580156118f257600080fd5b505afa158015611906573d6000803e3d6000fd5b505050506040513d602081101561191c57600080fd5b50516119595760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b03166119c3576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a2c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611a7e5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611ac2576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c066110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d6020811015611bd957600080fd5b505160408051808201909152600381526269626360e81b6020820152611bff8e8e613ed5565b8585613f1d565b611c4e576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611c9a57600080fd5b505afa158015611cae573d6000803e3d6000fd5b505050506040513d6020811015611cc457600080fd5b505190508b8b600080806060611cd9896143c8565b935093509350935083611d9b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d53578181015183820152602001611d3b565b50505050905090810190601f168015611d805780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050506129b6565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123205760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611e68578181015183820152602001611e50565b50505050905090810190601f168015611e955780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611eb557600080fd5b505af1925050508015611f9957506040513d6000823e601f3d908101601f191682016040526020811015611ee857600080fd5b8101908080516040519392919084600160201b821115611f0757600080fd5b908301906020820185811115611f1c57600080fd5b8251600160201b811182820188101715611f3557600080fd5b82525081516020918201929091019080838360005b83811015611f62578181015183820152602001611f4a565b50505050905090810190601f168015611f8f5780820380516001836020036101000a031916815260200191505b5060405250505060015b6122ab576040516000815260443d1015611fb557506000612050565b60046000803e60005160e01c6308c379a08114611fd6576000915050612050565b60043d036004833e81513d60248201116001600160401b038211171561200157600092505050612050565b80830180516001600160401b03811115612022576000945050505050612050565b8060208301013d860181111561204057600095505050505050612050565b601f01601f191660405250925050505b8061205b575061216d565b60ff8716600090815260076020526040812054612092916001600160401b0390911690899061208d906002908861131c565b614478565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561212d578181015183820152602001612115565b50505050905090810190601f16801561215a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506122a6565b3d808015612197576040519150601f19603f3d011682016040523d82523d6000602084013e61219c565b606091505b5060ff87166000908152600760205260408120546121cf916001600160401b0390911690899061208d906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561226a578181015183820152602001612252565b50505050905090810190601f1680156122975780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61231a565b8051156123185760ff87166000908152600760205260408120546122e4916001600160401b0390911690899061208d906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506128ee565b60ff8316600114156125c45760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b838110156123aa578181015183820152602001612392565b50505050905090810190601f1680156123d75780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156123f757600080fd5b505af1925050508015612408575060015b61231a576040516000815260443d1015612424575060006124bf565b60046000803e60005160e01c6308c379a081146124455760009150506124bf565b60043d036004833e81513d60248201116001600160401b0382111715612470576000925050506124bf565b80830180516001600160401b038111156124915760009450505050506124bf565b8060208301013d86018111156124af576000955050505050506124bf565b601f01601f191660405250925050505b806124ca575061252f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561212d578181015183820152602001612115565b3d808015612559576040519150601f19603f3d011682016040523d82523d6000602084013e61255e565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561226a578181015183820152602001612252565b60ff8316600214156128ee5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b8381101561264e578181015183820152602001612636565b50505050905090810190601f16801561267b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561269b57600080fd5b505af19250505080156126ac575060015b6128ec576040516000815260443d10156126c857506000612763565b60046000803e60005160e01c6308c379a081146126e9576000915050612763565b60043d036004833e81513d60248201116001600160401b038211171561271457600092505050612763565b80830180516001600160401b03811115612735576000945050505050612763565b8060208301013d860181111561275357600095505050505050612763565b601f01601f191660405250925050505b8061276e5750612817565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d75781810151838201526020016127bf565b50505050905090810190601f1680156128045780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128ec565b3d808015612841576040519150601f19603f3d011682016040523d82523d6000602084013e612846565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128b0578181015183820152602001612898565b50505050905090810190601f1680156128dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612920575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b15801561298057600080fd5b505af1158015612994573d6000803e3d6000fd5b505050506040513d60208110156129aa57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a285760405162461bcd60e51b815260040180806020018281038252602e815260200180614908602e913960400191505060405180910390fd5b600b5460ff1615612a6c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612ad584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146129050565b15612b7057604080516020601f8401819004810282018101909252828152600091612b18918585808385018382808284376000920191909152506146f992505050565b90506127108111158015612b2d5750600a8110155b612b685760405162461bcd60e51b81526004018080602001828103825260328152602001806149806032913960400191505060405180910390fd5b60015561341a565b612bd984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146129050565b15612d6157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612c5c5760405162461bcd60e51b815260040180806020018281038252605a815260200180614821605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612c7a816146fe565b612ccb576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061341a565b612dce84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146129050565b15612eff57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612e515760405162461bcd60e51b815260040180806020018281038252604a815260200180614936604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612ef5576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061341a565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146129050565b156130985760028114612fa75760405162461bcd60e51b815260040180806020018281038252602d8152602001806148af602d913960400191505060405180910390fd5b6000612fea600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff16118015613004575060648161ffff16105b61304e576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6130fb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146129050565b1561322e576002811461313f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806148dc602c913960400191505060405180910390fd5b6000613182600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561319c575060648161ffff16105b6131e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b61329984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146129050565b156133dd57600281146132dd5760405162461bcd60e51b815260040180806020018281038252603481526020018061487b6034913960400191505060405180910390fd5b6000613320600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561333a575060648161ffff16105b61338b576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff16613536576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561357957600080fd5b505afa15801561358d573d6000803e3d6000fd5b505050506040513d60208110156135a357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156135e457600080fd5b505afa1580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b505190508061361b575060155b60008211801561362b5750808211155b61366a576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff166136b1576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613702907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b9050801561374057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff16156137e8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613ba7576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613bea57600080fd5b505afa158015613bfe573d6000803e3d6000fd5b505050506040513d6020811015613c1457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613c5557600080fd5b505afa158015613c69573d6000803e3d6000fd5b505050506040513d6020811015613c7f57600080fd5b5051905080613c8c575060155b600082118015613c9c5750808211155b613cdb576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d1f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613d71907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b905080156137405761374061401a565b60005460ff16613dc6576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e235760405162461bcd60e51b81526004018080602001828103825260318152602001806147f06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613e889284928a9261208d92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f2c57506000614011565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613f63576020820181803683370190505b5090506000613f7182614704565b602080890151825201905086600080613f8989614098565b8086526020909501949092509050613fa28285836140a2565b92830192613faf88614098565b8086526020909501949092509050613fc88285836140a2565b9283018a815260200192613fdb87614098565b9092509050613feb8285836140a2565b508351602001613ff961470a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561405e576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b602081106140c2578251825260209283019290910190601f19016140a3565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff166141ac57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b0316421015806141dd575082816001015414155b156142b0576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b0316021783556001808401869055825191820190925233815261425291600284019190614728565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614364565b60005b600282015481101561433b57336001600160a01b03168260020182815481106142d857fe5b6000918252602090912001546001600160a01b03161415614333576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b6001016142b3565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff909116116143be576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff1916815560018101829055906143b2600283018261478d565b50506001915050613f17565b5060009392505050565b600080600060606021855110156143f8575050604080516000808252602082019092529092508291508190614471565b600185015160218601518651604080516020198301808252601f1960011990940193909316810160200190915260418901939291606091908015614443576020820181803683370190505b509050600061445182614098565b509050614463858260218d51036140a2565b506001975091955093509150505b9193509193565b600b5460ff16156144bc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156144fb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003554360025561453c565b6003805460019081019182905554101561453c576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145d25781810151838201526020016145ba565b50505050905090810190601f1680156145ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146475780518252601f199092019160209182019101614628565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146b55780518252601f199092019160209182019101614696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561477d579160200282015b8281111561477d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614748565b506147899291506147ae565b5090565b50805460008255906000526020600020908101906147ab91906147d5565b50565b6147d291905b808211156147895780546001600160a01b03191681556001016147b4565b90565b6147d291905b8082111561478957600081556001016147db56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a26469706673582212200822a3bd79df610f758cc9702e0be636463b002fc0089f5e09cf86383a7f79fc64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/chapel/RelayerHubContract b/core/systemcontracts/luban/chapel/RelayerHubContract new file mode 100644 index 0000000000..f00592b83d --- /dev/null +++ b/core/systemcontracts/luban/chapel/RelayerHubContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102275760003560e01c80638f83ab1311610130578063c81b1662116100b8578063f3ae24151161007c578063f3ae2415146104e8578063f9a2bbc71461050e578063fc3e590814610516578063fd30d9b81461051e578063fd6a68791461052657610227565b8063c81b1662146104c0578063dc927faf146104c8578063dd91d1c5146104d0578063e1c7392a146104d8578063e79a198f146104e057610227565b8063a1a11bf5116100ff578063a1a11bf5146103de578063a74b83ca146103e6578063a78abc16146103ee578063ab51bb96146103f6578063ac431751146103fe57610227565b80638f83ab13146103a057806395468d26146103c657806396713da9146103ce5780639dc09262146103d657610227565b8063541d5548116101b3578063718a8aa811610182578063718a8aa81461034857806375d47a0a1461035057806378beee67146103585780637942fd051461037e5780637ae230881461038657610227565b8063541d5548146102d85780636a6a419e146103125780636e47b4821461033857806370fd5bad1461034057610227565b80633dffc387116101fa5780633dffc3871461028357806343756e5c146102a1578063493279b1146102a95780634bf6c882146102c857806351e80672146102d057610227565b806303aff02b1461022c578063049a5716146102365780630bee7a671461025a5780630e2374a51461027b575b600080fd5b61023461052e565b005b61023e610539565b604080516001600160a01b039092168252519081900360200190f35b610262610551565b6040805163ffffffff9092168252519081900360200190f35b61023e610556565b61028b61055c565b6040805160ff9092168252519081900360200190f35b61023e610561565b6102b1610567565b6040805161ffff9092168252519081900360200190f35b61028b61056c565b61023e610571565b6102fe600480360360208110156102ee57600080fd5b50356001600160a01b0316610577565b604080519115158252519081900360200190f35b6102fe6004803603602081101561032857600080fd5b50356001600160a01b0316610595565b61023e6105b3565b61028b6105b9565b61028b6105be565b61023e6105c3565b6102346004803603602081101561036e57600080fd5b50356001600160a01b03166105c9565b61028b6107b1565b61038e6107b6565b60408051918252519081900360200190f35b610234600480360360208110156103b657600080fd5b50356001600160a01b03166107c3565b61038e610a02565b61028b610a0e565b61023e610a13565b61023e610a19565b61023e610a1f565b6102fe610a37565b610262610a40565b6102346004803603604081101561041457600080fd5b81019060208101813564010000000081111561042f57600080fd5b82018360208201111561044157600080fd5b8035906020019184600183028401116401000000008311171561046357600080fd5b91939092909160208101903564010000000081111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460018302840111640100000000831117156104b557600080fd5b509092509050610a45565b61023e610d96565b61023e610d9c565b610234610da2565b610234610e43565b610234610ec5565b6102fe600480360360208110156104fe57600080fd5b50356001600160a01b031661107e565b61023e61109c565b61028b6110a2565b6102fe6110a7565b61023e6110b0565b610537336110b6565b565b739fb29aac15b9a4b7f17c3385939b007540f4d79181565b606481565b61200181565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b031660009081526008602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b3360009081526008602052604090205460ff166106175760405162461bcd60e51b81526004018080602001828103825260248152602001806115c26024913960400191505060405180910390fd5b61062033611218565b1561065c5760405162461bcd60e51b815260040180806020018281038252602181526020018061157f6021913960400191505060405180910390fd5b3233146106b0576040805162461bcd60e51b815260206004820152601e60248201527f70726f766973696f6e616c2072656c6179657220697320612070726f78790000604482015290519081900360640190fd5b6001600160a01b038181166000908152600960205260409020541633146107085760405162461bcd60e51b815260040180806020018281038252602781526020018061163b6027913960400191505060405180910390fd5b6001600160a01b03818116600081815260066020908152604080832080543380865260078086528487208054600160ff199182161790915584546001600160a01b031990811684179095556008875285882080548216905597875260098652848720805490941690935596168085529083529281902080549094169093558251828152908101939093528151909260008051602061166283398151915292908290030190a15050565b600b81565b68056bc75e2d6310000081565b3360009081526005602052604090205460ff16610820576040805162461bcd60e51b81526020600482015260166024820152751b585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b61082981611218565b156108655760405162461bcd60e51b81526004018080602001828103825260278152602001806115e66027913960400191505060405180910390fd5b6001600160a01b03811615610921576001600160a01b03811660009081526007602052604090205460ff16156108db576040805162461bcd60e51b815260206004820152601660248201527572656c6179657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152600860209081526040808320805460ff191660011790553383526009909152902080546001600160a01b03191690911790556109c2565b3360008181526006602090815260408083208054600980855283862080546001600160a01b03198085169095556001600160a01b0393841680895260078852868920805460ff19908116909155918516808a5260088952878a20805490931690925598909752908552805490921690915581518581529086169281019290925280516000805160206116628339815191529281900390910190a150506109ff565b604080516001600160a01b038316815290517ffba56633276570c7d3120d4535bf3bce26523da53958e40734210b9fd99b36939181900360200190a15b50565b67016345785d8a000081565b600981565b61100781565b61100681565b7337b8516a0f88e65d677229b402ec6c1e0e33300481565b60005460ff1681565b600081565b60005460ff16610a98576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361100714610ad85760405162461bcd60e51b815260040180806020018281038252602e81526020018061160d602e913960400191505060405180910390fd5b610b3984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526930b23226b0b730b3b2b960b11b6020820152915061121e9050565b15610bd15760148114610b7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610bc0601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb8161130a565b50610d04565b610c3584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c3932b6b7bb32a6b0b730b3b2b960991b6020820152915061121e9050565b15610cc75760148114610c795760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610cbc601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb816110b6565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b600a5460ff1615610dfa576040805162461bcd60e51b815260206004820152601e60248201527f7468652077686974656c6973747320616c726561647920757064617465640000604482015290519081900360640190fd5b610e17739fb29aac15b9a4b7f17c3385939b007540f4d7916113cc565b610e347337b8516a0f88e65d677229b402ec6c1e0e3330046113cc565b600a805460ff19166001179055565b60005460ff1615610e9b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610f20576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610f73576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610f7b611564565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610fbf919063ffffffff61148416565b6040518115909202916000818181858888f19350505050158015610fe7573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f1935050505015801561101d573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b6001600160a01b031660009081526005602052604090205460ff1690565b61100081565b600381565b600a5460ff1681565b61100481565b6001600160a01b03811660009081526005602052604090205460ff1661111b576040805162461bcd60e51b81526020600482015260156024820152741b585b9859d95c88191bd95cdb89dd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038082166000818152600660209081526040808320805460058452828520805460ff1990811690915582546001600160a01b0319908116909355600980865284872080548a16885260088752858820805490931690925595879052948452845490911690935580519384525191909316927f2002866d443ac6c241fecaaa2af4895828c7de2cc423b9d01f7969650f557c76928290030190a16001600160a01b03811615611214576001600160a01b0381166000818152600760209081526040808320805460ff1916905580519384529083019190915280516000805160206116628339815191529281900390910190a15b5050565b3b151590565b6000816040516020018082805190602001908083835b602083106112535780518252601f199092019160209182019101611234565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106112c15780518252601f1990920191602091820191016112a2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526005602052604090205460ff1615611371576040805162461bcd60e51b81526020600482015260166024820152756d616e6167657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a150565b6001600160a01b03811660008181526005602090815260408083208054600160ff1991821681179092556006845282852080546001600160a01b031916871790556007845293829020805490941617909255815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a160408051600081526001600160a01b03831660208201528151600080516020611662833981519152929181900390910190a150565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cd565b9392505050565b6000818484111561155c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe70726f766973696f6e616c2072656c61796572206973206120636f6e74726163746c656e677468206f66206d616e616765722061646472657373206d69736d6174636872656c61796572206973206e6f7420612070726f766973696f6e616c2072656c61796572636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e747261637470726f766973696f6e616c206973206e6f742073657420666f722074686973206d616e61676572a5a19d7e9dab30a215022382d7abe782b579986fcbedec9942ecd0db9510a148a2646970667358221220e87e5b6ca8388e14d2ec9c2453581b5e2346a0aaa8fa61707f4d522357ac45d464736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/chapel/SlashContract b/core/systemcontracts/luban/chapel/SlashContract new file mode 100644 index 0000000000..e78bc731b0 --- /dev/null +++ b/core/systemcontracts/luban/chapel/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b60405161029991906132a4565b60405180910390f35b6102aa6104e2565b6040516102999190612b82565b6102ca6102c5366004612ab8565b6104e8565b6040516102999190612bba565b6102df61054e565b6040516102999190612baf565b6102ff6102fa366004612866565b610557565b6040516102999392919061328c565b6102aa61031c366004612a88565b61057a565b61033461032f366004612866565b6105a1565b60405161029992919061327e565b61034a6105f8565b6040516102999190613254565b61034a6105fe565b610367610604565b60405161029991906132b5565b6102aa610609565b61038461060f565b6040516102999190613245565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b7366004612866565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612ab8565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc61045736600461296c565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612ab8565b610ceb565b6103bc61048d366004612866565b610d5c565b6103bc6104a03660046129d5565b61114d565b61034a61169a565b6102aa61169f565b6103bc6116a5565b6102aa6116e1565b6103676116e7565b6103bc6116ec565b6102aa611b35565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b906130cb565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612c9b565b60405162461bcd60e51b815260040161050b9061318e565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac61264d565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612edf565b60005460ff166106685760405162461bcd60e51b815260040161050b90612c9b565b61200063f7a251d7600b61067b84611b3b565b60006040518463ffffffff1660e01b815260040161069b939291906132c3565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b906130cb565b60005460ff166107435760405162461bcd60e51b815260040161050b90612c9b565b61074b612670565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c0d92505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c6916132a4565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610803916132a4565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612c9b565b33611007146108845760405162461bcd60e51b815260040161050b90612f88565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611c8d9050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612e6b565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611ce792505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b90613086565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611c8d9050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b90612fd6565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611ce792505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d09565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611c8d9050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b906131c5565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611ce792505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e1f565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611c8d9050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612d3e565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611cec92505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b90613167565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612bcd565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b906130cb565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612c9b565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b9061311a565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612c9b565b6003544311610dbe5760405162461bcd60e51b815260040161050b90613210565b3a15610ddc5760405162461bcd60e51b815260040161050b90612f5a565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612b82565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061294c565b610e5a57611146565b610e6261264d565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612b82565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611b3b565b60006040518463ffffffff1660e01b8152600401610fc7939291906132c3565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c83602001518360405161106592919061325d565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612b82565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612c9b565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612b82565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061294c565b6112005760405162461bcd60e51b815260040161050b90612bff565b60075460ff166112225760405162461bcd60e51b815260040161050b90612c66565b60065461122f5760146006555b8051514361010090910111801561125157504381602001516000015161010001115b61126d5760405162461bcd60e51b815260040161050b90612c36565b80602001516020015181600001516020015114801561129b5750806020015160600151816000015160600151145b156112b85760405162461bcd60e51b815260040161050b90612eb2565b8051604081015190511080156112d75750602081015160408101519051105b6112f35760405162461bcd60e51b815260040161050b90612de8565b6020810151518151511080156113185750806000015160400151816020015160400151105b8061134357508051516020820151511080156113435750806020015160400151816000015160400151105b8061135d5750806020015160400151816000015160400151145b6113795760405162461bcd60e51b815260040161050b90612cd2565b61138b81600001518260400151611d14565b80156113a457506113a481602001518260400151611d14565b6113c05760405162461bcd60e51b815260040161050b90612d89565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143a9190810190612889565b9150915060005b81518110156115775761146b82828151811061145957fe5b60200260200101518560400151611eec565b1561156f576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f0906114a39033908590600401612b96565b602060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612aa0565b506110006001600160a01b03166335409f7f85848151811061151357fe5b60200260200101516040518263ffffffff1660e01b81526004016115379190612b82565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b5050505050611577565b600101611441565b50600061158984604001516000611f50565b90506120006001600160a01b031663f7a251d7600b6115ab8760400151611f6c565b60006040518463ffffffff1660e01b81526004016115cb939291906132c3565b600060405180830381600087803b1580156115e557600080fd5b505af19250505080156115f6575060015b611668573d808015611624576040519150601f19603f3d011682016040523d82523d6000602084013e611629565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161165a9190612bba565b60405180910390a250611694565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156116c85760405162461bcd60e51b815260040161050b90613018565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461170d5760405162461bcd60e51b815260040161050b90612edf565b60005460ff1661172f5760405162461bcd60e51b815260040161050b90612c9b565b60015461173b57611b33565b600154600090600019015b808211611b07576000805b8284101561186a5761176161264d565b600260006001878154811061177257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611854576004600554816117df57fe5b0481602001510381602001818152505080600260006001888154811061180157fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561185e565b600192505061186a565b50836001019350611751565b828411611a015761187961264d565b600260006001868154811061188a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611972576004600554816118f757fe5b0481602001510381602001818152505080600260006001878154811061191957fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a019050565b600260006001868154811061198357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119c757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119f45750611a01565b506000199092019161186a565b818015611a0b5750805b15611aea576002600060018681548110611a2157fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a6857fe5b600091825260209091200154600180546001600160a01b039092169186908110611a8e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611ac757fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611af6575050611b07565b505060019091019060001901611746565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b56579050509050611b7f836001600160a01b0316611fa7565b81600081518110611b8c57fe5b6020026020010181905250611ba043611fca565b81600181518110611bad57fe5b6020908102919091010152611bc26061611fca565b81600281518110611bcf57fe5b6020026020010181905250611be342611fca565b81600381518110611bf057fe5b6020026020010181905250611c0481611fdd565b9150505b919050565b611c15612670565b6000611c1f612670565b611c27612682565b611c38611c3386612067565b61208c565b90506000805b611c47836120d6565b15611c805780611c7357611c62611c5d846120f7565b612145565b63ffffffff16845260019150611c78565b611c80565b600101611c3e565b5091935090915050915091565b600081604051602001611ca09190612b66565b6040516020818303038152906040528051906020012083604051602001611cc79190612b66565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d06576001915081611d0c565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611d30575050604080516020808252818301909252919250606091908082018180368337019050509050611d758560000151611fca565b82600081518110611d8257fe5b6020026020010181905250611d9d60208660200151836121c7565b611da6816121d7565b82600181518110611db357fe5b6020026020010181905250611dcb8560400151611fca565b82600281518110611dd857fe5b6020026020010181905250611df360208660600151836121c7565b611dfc816121d7565b82600381518110611e0957fe5b6020026020010181905250611e2f6020611e2284611fdd565b80519060200120836121c7565b6040805160b080825260e08201909252606091602082018180368337019050509050611e5f81836000602061222d565b611e718187608001516020606061222d565b611e7f81866080603061222d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611ebc57600080fd5b506001611eca826000612280565b60ff1614611edf576000945050505050611ce1565b5060019695505050505050565b815181516000916001918114808314611f085760009250611f46565b600160208701838101602088015b600284838510011415611f41578051835114611f355760009650600093505b60209283019201611f16565b505050505b5090949350505050565b60008160200183511015611f6357600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611f87579050509050611b7f836121d7565b60408051600560a21b8318601482015260348101909152606090611c04816121d7565b6060611ce1611fd88361229c565b6121d7565b6060815160001415611ffe5750604080516000815260208101909152611c08565b60608260008151811061200d57fe5b602002602001015190506000600190505b835181101561204e576120448285838151811061203757fe5b6020026020010151612382565b915060010161201e565b50611c04612061825160c060ff166123ff565b82612382565b61206f6126a2565b506040805180820190915281518152602082810190820152919050565b612094612682565b61209d826124d1565b6120a657600080fd5b60006120b5836020015161250b565b60208085015160408051808201909152868152920190820152915050919050565b60006120e06126a2565b505080518051602091820151919092015191011190565b6120ff6126a2565b612108826120d6565b61211157600080fd5b602082015160006121218261256e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061215a57508151602110155b61216357600080fd5b6000612172836020015161250b565b905080836000015110156121985760405162461bcd60e51b815260040161050b9061304f565b8251602080850151830180519284900392918310156121be57826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122095750607f60f81b826000815181106121f757fe5b01602001516001600160f81b03191611155b15612215575080611c08565b611ce16122278351608060ff166123ff565b83612382565b60005b818110156106c95783818151811061224457fe5b602001015160f81c60f81b85848060010195508151811061226157fe5b60200101906001600160f81b031916908160001a905350600101612230565b6000816001018351101561229357600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166122e057506018612304565b6fffffffffffffffffffffffffffffffff19841661230057506010612304565b5060005b602081101561233a5781818151811061231957fe5b01602001516001600160f81b031916156123325761233a565b600101612304565b60008160200390506060816040519080825280601f01601f19166020018201604052801561236f576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b818310156123b357805183526020928301920161239b565b50855184518101855292509050808201602086015b818310156123e05780518352602092830192016123c8565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124295760405162461bcd60e51b815260040161050b90612dc0565b604080516001808252818301909252606091602082018180368337019050509050603784116124835782840160f81b8160008151811061246557fe5b60200101906001600160f81b031916908160001a9053509050611ce1565b606061248e8561229c565b90508381510160370160f81b826000815181106124a757fe5b60200101906001600160f81b031916908160001a9053506124c88282612382565b95945050505050565b80516000906124e257506000611c08565b6020820151805160001a9060c082101561250157600092505050611c08565b5060019392505050565b8051600090811a6080811015612525576000915050611c08565b60b8811080612540575060c08110801590612540575060f881105b1561254f576001915050611c08565b60c08110156125635760b519019050611c08565b60f519019050611c08565b80516000908190811a60808110156125895760019150612646565b60b881101561259e57607e1981019150612646565b60c08110156125ef57600060b78203600186019550806020036101000a8651049150600181018201935050808310156125e95760405162461bcd60e51b815260040161050b90612f2f565b50612646565b60f88110156126045760be1981019150612646565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611d0c5760405162461bcd60e51b815260040161050b90612f2f565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806126956126a2565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126126cc578081fd5b81516126df6126da82613316565b6132ef565b818152915060208083019084810160005b84811015612755578151870188603f82011261270b57600080fd5b8381015161271b6126da82613336565b81815260408b8184860101111561273157600080fd5b6127408388840183870161335a565b508652505092820192908201906001016126f0565b505050505092915050565b60008083601f840112612771578182fd5b50813567ffffffffffffffff811115612788578182fd5b6020830191508360208285010111156127a057600080fd5b9250929050565b600082601f8301126127b7578081fd5b81356127c56126da82613336565b91508082528360208285010111156127dc57600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215612806578081fd5b61281060a06132ef565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561284e57600080fd5b61285a848285016127a7565b60808301525092915050565b600060208284031215612877578081fd5b813561288281613386565b9392505050565b6000806040838503121561289b578081fd5b825167ffffffffffffffff808211156128b2578283fd5b81850186601f8201126128c3578384fd5b805192506128d36126da84613316565b80848252602080830192508084018a8283890287010111156128f3578788fd5b8794505b8685101561291e57805161290a81613386565b8452600194909401939281019281016128f7565b508801519096509350505080821115612935578283fd5b50612942858286016126bc565b9150509250929050565b60006020828403121561295d578081fd5b81518015158114612882578182fd5b60008060008060408587031215612981578182fd5b843567ffffffffffffffff80821115612998578384fd5b6129a488838901612760565b909650945060208701359150808211156129bc578384fd5b506129c987828801612760565b95989497509550505050565b6000602082840312156129e6578081fd5b813567ffffffffffffffff808211156129fd578283fd5b81840160608187031215612a0f578384fd5b612a1960606132ef565b9250803582811115612a29578485fd5b612a35878284016127f5565b845250602081013582811115612a49578485fd5b612a55878284016127f5565b602085015250604081013582811115612a6c578485fd5b612a78878284016127a7565b6040850152509195945050505050565b600060208284031215612a99578081fd5b5035919050565b600060208284031215612ab1578081fd5b5051919050565b600080600060408486031215612acc578283fd5b833560ff81168114612adc578384fd5b9250602084013567ffffffffffffffff811115612af7578283fd5b612b0386828701612760565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612b5281602086016020860161335a565b601f01601f19169290920160200192915050565b60008251612b7881846020870161335a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526128826020830184612b3a565b600060408252612be1604083018688612b10565b8281036020840152612bf4818587612b10565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252601690820152751d1bdbc81bdb1908189b1bd8dac81a5b9d9bdb1d995960521b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526132766040830184612b3a565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526132df6060830185612b3a565b9050826040830152949350505050565b60405181810167ffffffffffffffff8111828210171561330e57600080fd5b604052919050565b600067ffffffffffffffff82111561332c578081fd5b5060209081020190565b600067ffffffffffffffff82111561334c578081fd5b50601f01601f191660200190565b60005b8381101561337557818101518382015260200161335d565b838111156116945750506000910152565b6001600160a01b038116811461339b57600080fd5b5056fea2646970667358221220f826c2f80c6807c5df53c6cfe5be2e59ad7e87dad138f63f83dd1caf79118d6064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/chapel/SystemRewardContract b/core/systemcontracts/luban/chapel/SystemRewardContract new file mode 100644 index 0000000000..271d4f2c2f --- /dev/null +++ b/core/systemcontracts/luban/chapel/SystemRewardContract @@ -0,0 +1 @@ +6080604052600436106101a05760003560e01c80637942fd05116100ec578063ac4317511161008a578063f9a2bbc711610064578063f9a2bbc714610550578063fb5478b314610565578063fc3e59081461057a578063fd6a68791461058f576101e4565b8063ac43175114610457578063c81b166214610526578063dc927faf1461053b576101e4565b80639dc09262116100c65780639dc0926214610403578063a1a11bf514610418578063a78abc161461042d578063ab51bb9614610442576101e4565b80637942fd05146103a057806396713da9146103b55780639a99b4f0146103ca576101e4565b80634bf6c882116101595780636e47b482116101335780636e47b4821461034c57806370fd5bad14610361578063718a8aa81461037657806375d47a0a1461038b576101e4565b80634bf6c882146102db57806351e80672146102f05780636d70f7ae14610305576101e4565b80630bee7a67146101e95780630e2374a5146102175780633a0b0eff146102485780633dffc3871461026f57806343756e5c1461029a578063493279b1146102af576101e4565b366101e45734156101e25760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101f557600080fd5b506101fe6105a4565b6040805163ffffffff9092168252519081900360200190f35b34801561022357600080fd5b5061022c6105a9565b604080516001600160a01b039092168252519081900360200190f35b34801561025457600080fd5b5061025d6105af565b60408051918252519081900360200190f35b34801561027b57600080fd5b506102846105b5565b6040805160ff9092168252519081900360200190f35b3480156102a657600080fd5b5061022c6105ba565b3480156102bb57600080fd5b506102c46105c0565b6040805161ffff9092168252519081900360200190f35b3480156102e757600080fd5b506102846105c5565b3480156102fc57600080fd5b5061022c6105ca565b34801561031157600080fd5b506103386004803603602081101561032857600080fd5b50356001600160a01b03166105d0565b604080519115158252519081900360200190f35b34801561035857600080fd5b5061022c6105ee565b34801561036d57600080fd5b506102846105f4565b34801561038257600080fd5b506102846105f9565b34801561039757600080fd5b5061022c6105fe565b3480156103ac57600080fd5b50610284610604565b3480156103c157600080fd5b50610284610609565b3480156103d657600080fd5b5061025d600480360360408110156103ed57600080fd5b506001600160a01b03813516906020013561060e565b34801561040f57600080fd5b5061022c6107b9565b34801561042457600080fd5b5061022c6107bf565b34801561043957600080fd5b506103386107c5565b34801561044e57600080fd5b506101fe6107ce565b34801561046357600080fd5b506101e26004803603604081101561047a57600080fd5b81019060208101813564010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460018302840111640100000000831117156104c957600080fd5b9193909290916020810190356401000000008111156104e757600080fd5b8201836020820111156104f957600080fd5b8035906020019184600183028401116401000000008311171561051b57600080fd5b5090925090506107d3565b34801561053257600080fd5b5061022c610b56565b34801561054757600080fd5b5061022c610b5c565b34801561055c57600080fd5b5061022c610b62565b34801561057157600080fd5b5061025d610b68565b34801561058657600080fd5b50610284610b74565b34801561059b57600080fd5b5061022c610b79565b606481565b61200181565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff1661068b57600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106d95760405162461bcd60e51b815260040180806020018281038252602b815260200180610c67602b913960400191505060405180910390fd5b60004783106106e857476106ea565b825b9050670de0b6b3a76400008111156107075750670de0b6b3a76400005b8015610788576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610743573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107b2565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b33611007146108135760405162461bcd60e51b815260040180806020018281038252602e815260200180610cc1602e913960400191505060405180910390fd5b61087584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b7f9050565b1561094d57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506108f85760405162461bcd60e51b815260040180806020018281038252602c815260200180610cef602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610ac4565b6109b284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b7f9050565b15610a8757606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610a355760405162461bcd60e51b815260040180806020018281038252602f815260200180610c92602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610ac4565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610bb45780518252601f199092019160209182019101610b95565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610c225780518252601f199092019160209182019101610c03565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a26469706673582212205c998ac20925f17d8af20803f32be2cf1698c9a844de45001ca5ed8c879cc93f64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/chapel/ValidatorContract b/core/systemcontracts/luban/chapel/ValidatorContract new file mode 100644 index 0000000000..273b22d260 --- /dev/null +++ b/core/systemcontracts/luban/chapel/ValidatorContract @@ -0,0 +1 @@ +60806040526004361061046c5760003560e01c8063862498821161024a578063c6d3394511610139578063e40716a1116100b6578063f9a2bbc71161007a578063f9a2bbc714610b6b578063fc3e590814610b80578063fccc281314610b95578063fd4ad81f14610baa578063fd6a687914610bd957610473565b8063e40716a114610af9578063eb57e20214610b0e578063eda5868c14610b2e578063f340fa0114610b43578063f92eb86b14610b5657610473565b8063d86222d5116100fd578063d86222d514610a90578063daacdb6614610aa5578063dc927faf14610aba578063e086c7b114610acf578063e1c7392a14610ae457610473565b8063c6d3394514610a3c578063c81b166214610a51578063c8509d811461085f578063d04aa99614610a66578063d68fb56a14610a7b57610473565b8063a5422d5c116101c7578063ad3c9da61161018b578063ad3c9da6146109d0578063aef198a9146109f0578063b7ab4db514610a05578063b8cf4ef114610a27578063bf9f49951461062f57610473565b8063a5422d5c1461095c578063a78abc1614610971578063aaf5eb6814610986578063ab51bb961461099b578063ac431751146109b057610473565b806396713da91161020e57806396713da9146108f35780639dc09262146109085780639fe0f8161461091d578063a0dc275814610932578063a1a11bf51461094757610473565b8063862498821461087f57806388b32f11146108945780638b5ad0c9146108a95780638d19a410146108be5780639369d7de146108de57610473565b80634df6e0c3116103665780636e47b482116102e35780637942fd05116102a75780637942fd05146108205780637a84ca2a1461083557806381650b621461084a578063831d65d11461085f578063853230aa1461080b57610473565b80636e47b482146107b757806370fd5bad146107cc578063718a8aa8146107e157806375d47a0a146107f657806378dfed4a1461080b57610473565b8063565c56b31161032a578063565c56b3146107265780635667515a146107465780635d77156c1461075b57806362b72cf5146107705780636969a25c1461078557610473565b80634df6e0c3146106b25780635192c82c146106c757806351e80672146106dc578063549b03f2146106f157806355614fcc1461070657610473565b8063321d398a116103f45780633dffc387116103b85780633dffc3871461062f57806343756e5c1461065157806345cf9daf14610666578063493279b11461067b5780634bf6c8821461069d57610473565b8063321d398a146105975780633365af3a146105b757806335409f7f146105d75780633b071dcc146105f75780633de0f0d81461061a57610473565b80631182b8751161043b5780631182b875146104fe578063152ad3b81461052b5780631ff180691461054d578063219f22d514610562578063300c35671461057757610473565b806304c4fec61461047857806307a568471461048f5780630bee7a67146104ba5780630e2374a5146104dc57610473565b3661047357005b600080fd5b34801561048457600080fd5b5061048d610bee565b005b34801561049b57600080fd5b506104a4610c60565b6040516104b19190616ef0565b60405180910390f35b3480156104c657600080fd5b506104cf610c66565b6040516104b19190616f1a565b3480156104e857600080fd5b506104f1610c6b565b6040516104b191906162f7565b34801561050a57600080fd5b5061051e6105193660046161dd565b610c71565b6040516104b1919061646e565b34801561053757600080fd5b50610540610ea9565b6040516104b19190616463565b34801561055957600080fd5b506104a4610eb2565b34801561056e57600080fd5b506104cf610eb8565b34801561058357600080fd5b5061048d6105923660046160a6565b610ebd565b3480156105a357600080fd5b506105406105b236600461618a565b611241565b3480156105c357600080fd5b506105406105d236600461618a565b611310565b3480156105e357600080fd5b5061048d6105f236600461607f565b6113c1565b34801561060357600080fd5b5061060c61151a565b6040516104b1929190616379565b34801561062657600080fd5b506104a46117f6565b34801561063b57600080fd5b506106446117fc565b6040516104b19190616f2b565b34801561065d57600080fd5b506104f1611801565b34801561067257600080fd5b506104a4611807565b34801561068757600080fd5b5061069061180d565b6040516104b19190616ee1565b3480156106a957600080fd5b50610644611812565b3480156106be57600080fd5b5061060c611817565b3480156106d357600080fd5b506104a4611995565b3480156106e857600080fd5b506104f161199b565b3480156106fd57600080fd5b506104a46119a1565b34801561071257600080fd5b5061054061072136600461607f565b6119a7565b34801561073257600080fd5b506104a461074136600461607f565b6119dc565b34801561075257600080fd5b50610644611a2d565b34801561076757600080fd5b506104cf611a32565b34801561077c57600080fd5b506104a4611a37565b34801561079157600080fd5b506107a56107a036600461618a565b611a3d565b6040516104b196959493929190616324565b3480156107c357600080fd5b506104f1611aa1565b3480156107d857600080fd5b50610644611aa7565b3480156107ed57600080fd5b50610644611aac565b34801561080257600080fd5b506104f1611ab1565b34801561081757600080fd5b506104a4611ab7565b34801561082c57600080fd5b50610644611abd565b34801561084157600080fd5b506104a4611ac2565b34801561085657600080fd5b506104cf611ac8565b34801561086b57600080fd5b5061048d61087a3660046161dd565b611acd565b34801561088b57600080fd5b506104a4611b2e565b3480156108a057600080fd5b506104a4611b34565b3480156108b557600080fd5b506104a4611b3a565b3480156108ca57600080fd5b506104a46108d936600461607f565b611b40565b3480156108ea57600080fd5b5061048d611b80565b3480156108ff57600080fd5b50610644611c94565b34801561091457600080fd5b506104f1611c99565b34801561092957600080fd5b506104a4611c9f565b34801561093e57600080fd5b506104a4611ca4565b34801561095357600080fd5b506104f1611ca9565b34801561096857600080fd5b5061051e611caf565b34801561097d57600080fd5b50610540611cce565b34801561099257600080fd5b506104a4611cd7565b3480156109a757600080fd5b506104cf611a2d565b3480156109bc57600080fd5b5061048d6109cb36600461612e565b611ce0565b3480156109dc57600080fd5b506104a46109eb36600461607f565b61258c565b3480156109fc57600080fd5b506104a461259e565b348015610a1157600080fd5b50610a1a6125ab565b6040516104b19190616366565b348015610a3357600080fd5b506104a4612697565b348015610a4857600080fd5b506104a4611aa7565b348015610a5d57600080fd5b506104f161269c565b348015610a7257600080fd5b506104a46126a2565b348015610a8757600080fd5b506104a46126a7565b348015610a9c57600080fd5b506104a46126e6565b348015610ab157600080fd5b506104a46126f2565b348015610ac657600080fd5b506104f16126f8565b348015610adb57600080fd5b506104a46126fe565b348015610af057600080fd5b5061048d612703565b348015610b0557600080fd5b506104a46128b2565b348015610b1a57600080fd5b5061048d610b2936600461607f565b6128b8565b348015610b3a57600080fd5b506104cf6129c0565b61048d610b5136600461607f565b6129c5565b348015610b6257600080fd5b506104a4612c4d565b348015610b7757600080fd5b506104f1612c53565b348015610b8c57600080fd5b50610644611c9f565b348015610ba157600080fd5b506104f1612c59565b348015610bb657600080fd5b50610bca610bc536600461618a565b612c5f565b6040516104b193929190616ef9565b348015610be557600080fd5b506104f1612d21565b6000610bf933611b40565b9050600b8181548110610c0857fe5b600091825260209091206001601690920201015460ff16610c445760405162461bcd60e51b8152600401610c3b90616b99565b60405180910390fd5b6000610c4e6126a7565b9050610c5b338383612d27565b505050565b60095481565b606481565b61200181565b60005460609060ff16610c965760405162461bcd60e51b8152600401610c3b9061662d565b3361200014610cb75760405162461bcd60e51b8152600401610c3b90616d78565b600b54610d7557610cc6615d6b565b60015460005b81811015610d7157600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff1916911515919091179055604086015180518794610d4d9360008051602061716e833981519152909101920190615d9a565b506060820151610d639060038301906013615e14565b505050806001019050610ccc565b5050505b610d7d615e41565b6000610dbe85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f1392505050565b9150915080610dda57610dd160646130cf565b92505050610ea2565b815160009060ff16610dff57610df883602001518460400151613130565b9050610e6e565b825160ff1660011415610e6a57826020015151600114610e445760008051602061712e833981519152604051610e3490616a80565b60405180910390a1506067610e65565b610df88360200151600081518110610e5857fe5b6020026020010151613d84565b610e6e565b5060655b63ffffffff8116610e935750506040805160008152602081019091529150610ea29050565b610e9c816130cf565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610edc5760405162461bcd60e51b8152600401610c3b90616dc7565b6010544311610efd5760405162461bcd60e51b8152600401610c3b90616789565b60005460ff16610f1f5760405162461bcd60e51b8152600401610c3b9061662d565b600f54610f37576032600f5561100231601155611237565b60006110023168056bc75e2d63100000811115610f6657610f5f81606463ffffffff613efb16565b9150610faf565b601154811115610fa857610f5f6064610f9c600f54610f9060115486613f3d90919063ffffffff16565b9063ffffffff613f7f16565b9063ffffffff613efb16565b5050611237565b6040516309a99b4f60e41b815261100290639a99b4f090610fd6903090869060040161630b565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906161a2565b6110023160115591508161103d575050611237565b6000805b8481101561106b5785858281811061105557fe5b9050602002013582019150806001019050611041565b508061107957505050611237565b6000806000805b8981101561122f578489898381811061109557fe5b905060200201358802816110a557fe5b0493508a8a828181106110b457fe5b90506020020160208101906110c9919061607f565b6001600160a01b038116600090815260046020526040902054909350915081156111e55760006001808403815481106110fe57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561116b57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858660405161115e9190616ef0565b60405180910390a26111df565b60035461117e908663ffffffff613fb916565b6003908155810154611196908663ffffffff613fb916565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906111d6908890616ef0565b60405180910390a25b50611227565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161121e9190616ef0565b60405180910390a25b600101611080565b505050505050505b5050436010555050565b60015460009082106112555750600061130b565b60006001600160a01b03166001838154811061126d57fe5b60009182526020909120600490910201546001600160a01b0316148061129d5750600854158061129d5750600a54155b806112ac575060085460095410155b806112bd57506112bb82611310565b155b806112e657506000600b83815481106112d257fe5b906000526020600020906016020160000154115b806112fa575060016112f66125ab565b5111155b156113075750600061130b565b5060015b919050565b60015460009082106113245750600061130b565b600b548210611361576001828154811061133a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061130b565b6001828154811061136e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156113bb5750600b82815481106113a257fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146113e25760405162461bcd60e51b8152600401610c3b90616e98565b600b546114a0576113f1615d6b565b60015460005b8181101561149c57600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff19169115159190911790556040860151805187946114789360008051602061716e833981519152909101920190615d9a565b50606082015161148e9060038301906013615e14565b5050508060010190506113f7565b5050505b6001600160a01b038116600090815260046020526040902054806114c45750611517565b6001810390506000600b82815481106114d957fe5b600091825260209091206001601690920201015460ff1690506114fc8383613fde565b80156115055750805b15610c5b576009805460001901905550505b50565b60015460609081906000805b8281101561156d576001818154811061153b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611565576001909101905b600101611526565b5060608160405190808252806020026020018201604052801561159a578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156115d357816020015b60608152602001906001900390816115be5790505b50600b546000945090915084141561174e5760005b8481101561174857600181815481106115fd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611740576001818154811061162d57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061165857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061168557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b505050505082858151811061172e57fe5b60209081029190910101526001909301925b6001016115e8565b506117ea565b60005b848110156117e8576001818154811061176657fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117e0576001818154811061179657fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106117c157fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611751565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c5460609182918061182b575060155b60606118356125ab565b9050606061184282614391565b9050828251116118595790945092506117f2915050565b8383835103101561186b578282510393505b83156118a15760c8430461188783838388880360008a8a6144ff565b61189f8383838888038989038a8b8b8b5103016144ff565b505b6060836040519080825280602002602001820160405280156118cd578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561190657816020015b60608152602001906001900390816118f15790505b50905060005b858110156119875784818151811061192057fe5b602002602001015183828151811061193457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061196057fe5b602002602001015182828151811061197457fe5b602090810291909101015260010161190c565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b038116600090815260046020526040812054806119cf57600091505061130b565b60001901610ea281611310565b6001600160a01b03811660009081526004602052604081205480611a0457600091505061130b565b600180820381548110611a1357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60105481565b60018181548110611a4a57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611aee5760405162461bcd60e51b8152600401610c3b90616d78565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611b2193929190616f39565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611b765760405162461bcd60e51b8152600401610c3b90616d00565b6000190192915050565b600b54611c3e57611b8f615d6b565b60015460005b81811015611c3a57600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff1916911515919091179055604086015180518794611c169360008051602061716e833981519152909101920190615d9a565b506060820151611c2c9060038301906013615e14565b505050806001019050611b95565b5050505b600854611c4b5760036008555b600a54611c58576002600a555b6000611c6333611b40565b9050611c6e81611241565b611c8a5760405162461bcd60e51b8152600401610c3b90616a3d565b6115173382614656565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001616f836101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611d025760405162461bcd60e51b8152600401610c3b9061662d565b3361100714611d235760405162461bcd60e51b8152600401610c3b90616b06565b611d8d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506146ee9050565b15611e2a5760208114611db25760405162461bcd60e51b8152600401610c3b90616cba565b604080516020601f8401819004810282018101909252828152600091611df09185858083850183828082843760009201919091525061474792505050565b905060648110158015611e065750620186a08111155b611e225760405162461bcd60e51b8152600401610c3b906168e6565b600255612549565b611e8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506146ee9050565b15611f265760208114611eaf5760405162461bcd60e51b8152600401610c3b906164b3565b604080516020601f8401819004810282018101909252828152600091611eed9185858083850183828082843760009201919091525061474792505050565b9050612710811115611f115760405162461bcd60e51b8152600401610c3b906167cb565b6006556007805460ff19166001179055612549565b611f9084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506146ee9050565b1561202a5760208114611fb55760405162461bcd60e51b8152600401610c3b906164ea565b604080516020601f8401819004810282018101909252828152600091611ff39185858083850183828082843760009201919091525061474792505050565b600c5490915080612002575060155b8082106120215760405162461bcd60e51b8152600401610c3b9061683e565b50600855612549565b61209384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506146ee9050565b1561212c57602081146120b85760405162461bcd60e51b8152600401610c3b906165b3565b604080516020601f84018190048102820181019092528281526000916120f69185858083850183828082843760009201919091525061474792505050565b90506000811180156121085750600a81105b6121245760405162461bcd60e51b8152600401610c3b90616e14565b600a55612549565b6121a084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506146ee9050565b1561222f57602081146121c55760405162461bcd60e51b8152600401610c3b90616567565b604080516020601f84018190048102820181019092528281526000916122039185858083850183828082843760009201919091525061474792505050565b9050600d548111156122275760405162461bcd60e51b8152600401610c3b9061695c565b600e55612549565b61229884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506146ee9050565b1561231a57602081146122bd5760405162461bcd60e51b8152600401610c3b90616b54565b604080516020601f84018190048102820181019092528281526000916122fb9185858083850183828082843760009201919091525061474792505050565b600d819055600e5490915081101561231457600d54600e555b50612549565b61237e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506146ee9050565b1561242c57602081146123a35760405162461bcd60e51b8152600401610c3b906165f8565b604080516020601f84018190048102820181019092528281526000916123e19185858083850183828082843760009201919091525061474792505050565b9050600081116124035760405162461bcd60e51b8152600401610c3b9061669b565b60298111156124245760405162461bcd60e51b8152600401610c3b906166e3565b600c55612549565b61249684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506146ee9050565b1561253157602081146124bb5760405162461bcd60e51b8152600401610c3b90616c3d565b604080516020601f84018190048102820181019092528281526000916124f99185858083850183828082843760009201919091525061474792505050565b90506001811015801561250d575060648111155b6125295760405162461bcd60e51b8152600401610c3b906169cb565b600f55612549565b60405162461bcd60e51b8152600401610c3b90616e71565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161257e9493929190616481565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156125da576125c681611310565b156125d2578160010191505b6001016125b5565b50606081604051908082528060200260200182016040528015612607578160200160208202803683370190505b5090506000915060005b8381101561268e5761262281611310565b15612686576001818154811061263457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061265f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612611565b50925050505b90565b601581565b61100281565b603281565b60006126b16125ab565b519050600080600c54116126c65760156126ca565b600c545b9050808211156126d8578091505b816126e257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156127265760405162461bcd60e51b8152600401610c3b90616c06565b61272e615e41565b6000612754604051806101e001604052806101ab8152602001616f836101ab9139612f13565b91509150806127755760405162461bcd60e51b8152600401610c3b90616d37565b60005b82602001515181101561289a5760018360200151828151811061279757fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061286d57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612778565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146128d95760405162461bcd60e51b8152600401610c3b90616e98565b600b54612997576128e8615d6b565b60015460005b8181101561299357600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff191691151591909117905560408601518051879461296f9360008051602061716e833981519152909101920190615d9a565b5060608201516129859060038301906013615e14565b5050508060010190506128ee565b5050505b60006129a28261474c565b90506129ad81611241565b156129bc576129bc8282614656565b5050565b606581565b3341146129e45760405162461bcd60e51b8152600401610c3b90616dc7565b60005460ff16612a065760405162461bcd60e51b8152600401610c3b9061662d565b60003411612a265760405162461bcd60e51b8152600401610c3b9061692d565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612a5657506006545b600083118015612a665750600081115b15612b07576000612a83612710610f9c868563ffffffff613f7f16565b90508015612b055760405161dead9082156108fc029083906000818181858888f19350505050158015612aba573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612aea9190616ef0565b60405180910390a1612b02848263ffffffff613f3d16565b93505b505b8115612c05576000600180840381548110612b1e57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612b8b57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612b7e9190616ef0565b60405180910390a2612bff565b600354612b9e908563ffffffff613fb916565b6003908155810154612bb6908563ffffffff613fb916565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612bf6908790616ef0565b60405180910390a25b50612c47565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612c3e9190616ef0565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612c6c57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612d175780601f10612cec57610100808354040283529160200191612d17565b820191906000526020600020905b815481529060010190602001808311612cfa57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612d38575081155b80612d435750600954155b15612d5057506000610ea2565b60096000815460019003919050819055506000612d9b600a54610f9c85610f9c600b8981548110612d7d57fe5b6000918252602090912060169091020154439063ffffffff613f3d16565b90506000600b8581548110612dac57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612e1157600080fd5b505afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4991906161ba565b9150915060009350808310612ec357612e628787613fde565b506040516305bfb49960e41b815261100190635bfb499090612e88908a906004016162f7565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b5050505060019350612ed5565b818310612ed557612ed38761474c565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612f1b615e41565b6000612f25615e41565b612f2d615e65565b612f3e612f39866148ef565b614914565b90506000805b612f4d8361495e565b156130c15780612f7257612f68612f638461497f565b6149cd565b60ff1684526130b9565b80600114156130b4576060612f8e612f898561497f565b614a4d565b90508051604051908082528060200260200182016040528015612fcb57816020015b612fb8615e85565b815260200190600190039081612fb05790505b508560200181905250805160405190808252806020026020018201604052801561300957816020015b6060815260200190600190039081612ff45790505b50604086015260005b81518110156130a957613023615e85565b6060600061304385858151811061303657fe5b6020026020010151614b1e565b92509250925080613063578860009a509a505050505050505050506130ca565b828960200151858151811061307457fe5b6020026020010181905250818960400151858151811061309057fe5b6020026020010181905250505050806001019050613012565b5060019250506130b9565b6130c1565b600101612f44565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816130e957905050905061310f8363ffffffff16614c38565b8160008151811061311c57fe5b6020026020010181905250610ea281614c4b565b60006029835111156131675760008051602061712e83398151915260405161315790616740565b60405180910390a15060666113bb565b60005b83518110156132055760005b818110156131fc5784818151811061318a57fe5b6020026020010151600001516001600160a01b03168583815181106131ab57fe5b6020026020010151600001516001600160a01b031614156131f45760008051602061712e8339815191526040516131e19061689b565b60405180910390a16066925050506113bb565b600101613176565b5060010161316a565b506060806132138585614cd5565b60015491935091506000908190815b818110156132985767016345785d8a00006001828154811061324057fe5b9060005260206000209060040201600301541061326257836001019350613290565b60006001828154811061327157fe5b9060005260206000209060040201600301541115613290578260010192505b600101613222565b506060836040519080825280602002602001820160405280156132c5578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156132f4578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613323578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015613352578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613383578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156133b2578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fa57600080fd5b505afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343291906161a2565b905067016345785d8a000081111561347d5760008051602061712e83398151915260405161345f90616bc5565b60405180910390a160689d50505050505050505050505050506113bb565b60005b898110156136ee5767016345785d8a00006001828154811061349e57fe5b9060005260206000209060040201600301541061362357600181815481106134c257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106134f357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061352857fe5b9060005260206000209060040201600301548161354157fe5b066001838154811061354f57fe5b9060005260206000209060040201600301540390506135778382613f3d90919063ffffffff16565b898e8151811061358357fe5b6020026020010181815250506001828154811061359c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e815181106135cd57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106135fa57fe5b6020908102919091010152613615868263ffffffff613fb916565b95508c6001019c50506136e6565b60006001828154811061363257fe5b90600052602060002090600402016003015411156136e6576001818154811061365757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061368857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106136b557fe5b906000526020600020906004020160030154838c815181106136d357fe5b6020026020010181815250508a6001019a505b600101613480565b5060008415613964576002546040516303702b2960e51b815261100491636e056520918891613728918e918e918d914201906004016163e9565b6020604051808303818588803b15801561374157600080fd5b505af193505050508015613772575060408051601f3d908101601f1916820190925261376f9181019061610e565b60015b6138e9576040516000815260443d101561378e57506000613829565b60046000803e60005160e01c6308c379a081146137af576000915050613829565b60043d036004833e81513d60248201116001600160401b03821117156137da57600092505050613829565b80830180516001600160401b038111156137fb576000945050505050613829565b8060208301013d860181111561381957600095505050505050613829565b601f01601f191660405250925050505b806138345750613876565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613868919061646e565b60405180910390a2506138e4565b3d8080156138a0576040519150601f19603f3d011682016040523d82523d6000602084013e6138a5565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040516138da919061646e565b60405180910390a2505b613964565b801561392b577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b708660405161391e9190616ef0565b60405180910390a1613962565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28060405161395990616530565b60405180910390a25b505b8015613b1a5760005b8751811015613b1857600088828151811061398457fe5b6020026020010151905060006001828154811061399d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106139ce57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613a8a5760018281548110613a0f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613a5e57fe5b906000526020600020906004020160030154604051613a7d9190616ef0565b60405180910390a2613b0e565b60018281548110613a9757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613ae657fe5b906000526020600020906004020160030154604051613b059190616ef0565b60405180910390a25b505060010161396d565b505b835115613c645760005b8451811015613c62576000858281518110613b3b57fe5b60200260200101516001600160a01b03166108fc868481518110613b5b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613bf157858281518110613b9157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613bcf57fe5b6020026020010151604051613be49190616ef0565b60405180910390a2613c59565b858281518110613bfd57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613c3b57fe5b6020026020010151604051613c509190616ef0565b60405180910390a25b50600101613b24565b505b5050505050505050505050506000471115613ce0577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613ca89190616ef0565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613cde573d6000803e3d6000fd5b505b60006003819055600555815115613cfb57613cfb8282614f0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d3857600080fd5b505af1158015613d4c573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580613dd55750600180820381548110613db557fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613e1b5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061130b565b600154600554600019820111801590613e715784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061130b565b600580546001908101909155805481906000198601908110613e8f57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506156ed565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615724565b600082613f8e575060006113bb565b82820282848281613f9b57fe5b0414610ea25760405162461bcd60e51b8152600401610c3b90616ac5565b600082820183811015610ea25760405162461bcd60e51b8152600401610c3b90616664565b60008060018381548110613fee57fe5b906000526020600020906004020160030154905060006001808054905003905060016140186125ab565b511161404d5760006001858154811061402d57fe5b9060005260206000209060040201600301819055506000925050506113bb565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516140869190616ef0565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561427357600181600101815481106140c757fe5b9060005260206000209060040201600182815481106140e257fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106141a357fe5b9060005260206000209060160201600b82815481106141be57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054614215938386019390821615610100026000190190911604615eba565b5061422860038281019084016013615f2f565b5090505080600101600460006001848154811061424157fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016140a9565b50600180548061427f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806142d257fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906143046002830182615f59565b614312600383016000615f9d565b50509055600081838161432157fe5b04905080156143855760015460005b8181101561438257826001828154811061434657fe5b906000526020600020906004020160030154016001828154811061436657fe5b6000918252602090912060036004909202010155600101614330565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156143d057816020015b60608152602001906001900390816143bb5790505b50600b5490915083146143e757925061130b915050565b60005b828110156144f657600b60016004600089858151811061440657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061443a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156144d25780601f106144a7576101008083540402835291602001916144d2565b820191906000526020600020905b8154815290600101906020018083116144b557829003601f168201915b50505050508282815181106144e357fe5b60209081029190910101526001016143ea565b50949350505050565b60005b8281101561464c57600082878388016040516020016145229291906162e9565b6040516020818303038152906040528051906020012060001c8161454257fe5b06905080850182870114614643576000898388018151811061456057fe5b602002602001015190506060898489018151811061457a57fe5b602002602001015190508a8388018151811061459257fe5b60200260200101518b858a01815181106145a857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106145d757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061460557fe5b60200260200101518a858a018151811061461b57fe5b6020026020010181905250808a8489018151811061463557fe5b602002602001018190525050505b50600101614502565b5050505050505050565b600980546001908101909155600b80548390811061467057fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106146a657fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161470191906162cd565b604051602081830303815290604052805190602001208360405160200161472891906162cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b038116600090815260046020526040812054806147755750600019905061130b565b60018103905060006001828154811061478a57fe5b90600052602060002090600402016003015490506000600183815481106147ad57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614806908590616ef0565b60405180910390a28061481e5782935050505061130b565b600081838161482957fe5b04905080156148e55760005b8481101561488757816001828154811061484b57fe5b906000526020600020906004020160030154016001828154811061486b57fe5b6000918252602090912060036004909202010155600101614835565b50600180549085015b818110156148e25782600182815481106148a657fe5b90600052602060002090600402016003015401600182815481106148c657fe5b6000918252602090912060036004909202010155600101614890565b50505b5091949350505050565b6148f7615fac565b506040805180820190915281518152602082810190820152919050565b61491c615e65565b61492582615750565b61492e57600080fd5b600061493d836020015161578a565b60208085015160408051808201909152868152920190820152915050919050565b6000614968615fac565b505080518051602091820151919092015191011190565b614987615fac565b6149908261495e565b61499957600080fd5b602082015160006149a9826157ed565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906149e257508151602110155b6149eb57600080fd5b60006149fa836020015161578a565b90508083600001511015614a205760405162461bcd60e51b8152600401610c3b90616c83565b8251602080850151830180519284900392918310156144f657506020919091036101000a90049392505050565b6060614a5882615750565b614a6157600080fd5b6000614a6c836158ce565b9050606081604051908082528060200260200182016040528015614aaa57816020015b614a97615fac565b815260200190600190039081614a8f5790505b5090506000614abc856020015161578a565b60208601510190506000805b84811015614b1357614ad9836157ed565b9150604051806040016040528083815260200184815250848281518110614afc57fe5b602090810291909101015291810191600101614ac8565b509195945050505050565b614b26615e85565b60606000614b32615e85565b6060614b3c615e65565b614b4587614914565b90506000805b614b548361495e565b15614c295780614b7f57614b6f614b6a8461497f565b61592a565b6001600160a01b03168552614c21565b8060011415614ba757614b94614b6a8461497f565b6001600160a01b03166020860152614c21565b8060021415614bcf57614bbc614b6a8461497f565b6001600160a01b03166040860152614c21565b8060031415614bfb57614be4612f638461497f565b6001600160401b0316606086015260019150614c21565b8060041415614c1c57614c15614c108461497f565b615944565b9350614c21565b614c29565b600101614b4b565b50929791965091945092505050565b60606113bb614c46836159b4565b615a9a565b6060815160001415614c6c575060408051600081526020810190915261130b565b606082600081518110614c7b57fe5b602002602001015190506000600190505b8351811015614cbc57614cb282858381518110614ca557fe5b6020026020010151615aec565b9150600101614c8c565b50610ea2614ccf825160c060ff16615b69565b82615aec565b606080600080808080614ce66126a7565b6001549091505b8015614df457600181039250600b8381548110614d0657fe5b600091825260209091206001601690920201015460ff16614d2657614deb565b60018381548110614d3357fe5b60009182526020909120600490910201546001600160a01b03169450614d5a858484612d27565b9350831580614d6d575060018a51038610155b15614d7757614deb565b60005b8a51811015614de957856001600160a01b03168b8281518110614d9957fe5b6020026020010151600001516001600160a01b03161415614de15760018b8281518110614dc257fe5b6020908102919091010151901515608090910152600190960195614de9565b600101614d7a565b505b60001901614ced565b5084895103604051908082528060200260200182016040528015614e3257816020015b614e1f615e85565b815260200190600190039081614e175790505b50965084895103604051908082528060200260200182016040528015614e6c57816020015b6060815260200190600190039081614e575790505b5095506000915060005b8951811015614f0057898181518110614e8b57fe5b602002602001015160800151614ef857898181518110614ea757fe5b6020026020010151888481518110614ebb57fe5b6020026020010181905250888181518110614ed257fe5b6020026020010151878481518110614ee657fe5b60200260200101819052508260010192505b600101614e76565b5050505050505b9250929050565b600154825160005b8281101561502b576001614f28615e85565b60018381548110614f3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614fff57878181518110614fc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614ff75760009250614fff565b600101614fb1565b5081156150215780516001600160a01b03166000908152600460205260408120555b5050600101614f16565b50808211156150ea57805b828110156150e857600180548061504957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061509c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906150ce6002830182615f59565b6150dc600383016000615f9d565b50509055600101615036565b505b60008183106150f957816150fb565b825b905060005b8181101561549f576151ad86828151811061511757fe5b60200260200101516001838154811061512c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615c3b565b6153615780600101600460008884815181106151c557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061520157fe5b60200260200101516001828154811061521657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106152d157fe5b6020026020010151600b82815481106152e657fe5b9060005260206000209060160201600201908051906020019061530a929190615d9a565b506000600b828154811061531a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061534b57fe5b6000918252602090912060169091020155615497565b61542785828151811061537057fe5b6020026020010151600b838154811061538557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561541d5780601f106153f25761010080835404028352916020019161541d565b820191906000526020600020905b81548152906001019060200180831161540057829003601f168201915b5050505050615cbc565b6154725784818151811061543757fe5b6020026020010151600b828154811061544c57fe5b90600052602060002090601602016002019080519060200190615470929190615d9a565b505b60006001828154811061548157fe5b9060005260206000209060040201600301819055505b600101615100565b5082821115615677576154b0615d6b565b835b83811015615674578581815181106154c657fe5b6020026020010151826040018190525060018782815181106154e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061714e83398151915281019182558583015160008051602061718e8339815191528201805491151560ff199092169190911790559285015180518694929361561a9360008051602061716e83398151915201920190615d9a565b5060608201516156309060038301906013615e14565b505050806001016004600089848151811061564757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016154b2565b50505b6000600981905560015493505b838110156156e5576000600b828154811061569b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106156cc57fe5b6000918252602090912060169091020155600101615684565b505050505050565b6000818361570e5760405162461bcd60e51b8152600401610c3b919061646e565b50600083858161571a57fe5b0495945050505050565b600081848411156157485760405162461bcd60e51b8152600401610c3b919061646e565b505050900390565b80516000906157615750600061130b565b6020820151805160001a9060c08210156157805760009250505061130b565b5060019392505050565b8051600090811a60808110156157a457600091505061130b565b60b88110806157bf575060c081108015906157bf575060f881105b156157ce57600191505061130b565b60c08110156157e25760b51901905061130b565b60f51901905061130b565b80516000908190811a608081101561580857600191506158c7565b60b881101561581d57607e19810191506158c7565b60c081101561586e57600060b78203600186019550806020036101000a8651049150600181018201935050808310156158685760405162461bcd60e51b8152600401610c3b90616a12565b506158c7565b60f88110156158835760be19810191506158c7565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158c55760405162461bcd60e51b8152600401610c3b90616a12565b505b5092915050565b80516000906158df5750600061130b565b600080905060006158f3846020015161578a565b602085015185519181019250015b8082101561592157615912826157ed565b82019150826001019250615901565b50909392505050565b805160009060151461593b57600080fd5b6113bb826149cd565b805160609061595257600080fd5b6000615961836020015161578a565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615998576020820181803683370190505b50905060008160200190506144f6848760200151018285615d20565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166159f857506018615a1c565b6fffffffffffffffffffffffffffffffff198416615a1857506010615a1c565b5060005b6020811015615a5257818181518110615a3157fe5b01602001516001600160f81b03191615615a4a57615a52565b600101615a1c565b60008160200390506060816040519080825280601f01601f191660200182016040528015615a87576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615acc5750607f60f81b82600081518110615aba57fe5b01602001516001600160f81b03191611155b15615ad857508061130b565b6113bb615aea8351608060ff16615b69565b835b6060806040519050835180825260208201818101602087015b81831015615b1d578051835260209283019201615b05565b50855184518101855292509050808201602086015b81831015615b4a578051835260209283019201615b32565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615b935760405162461bcd60e51b8152600401610c3b90616816565b60408051600180825281830190925260609160208201818036833701905050905060378411615bed5782840160f81b81600081518110615bcf57fe5b60200101906001600160f81b031916908160001a90535090506113bb565b6060615bf8856159b4565b90508381510160370160f81b82600081518110615c1157fe5b60200101906001600160f81b031916908160001a905350615c328282615aec565b95945050505050565b805182516000916001600160a01b039182169116148015615c75575081602001516001600160a01b031683602001516001600160a01b0316145b8015615c9a575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ea25750506060908101519101516001600160401b0390811691161490565b815181516000916001918114808314615cd85760009250615d16565b600160208701838101602088015b600284838510011415615d11578051835114615d055760009650600093505b60209283019201615ce6565b505050505b5090949350505050565b80615d2a57610c5b565b5b60208110615d4a578251825260209283019290910190601f1901615d2b565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001615d95615fc6565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ddb57805160ff1916838001178555615e08565b82800160010185558215615e08579182015b82811115615e08578251825591602001919060010190615ded565b506126e2929150615fe5565b8260138101928215615e085791602002820182811115615e08578251825591602001919060010190615ded565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040518060400160405280615e78615fac565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ef35780548555615e08565b82800160010185558215615e0857600052602060002091601f016020900482015b82811115615e08578254825591600101919060010190615f14565b8260138101928215615e085791820182811115615e08578254825591600101919060010190615f14565b50805460018160011615610100020316600290046000825580601f10615f7f5750611517565b601f0160209004906000526020600020908101906115179190615fe5565b50611517906013810190615fe5565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269491905b808211156126e25760008155600101615feb565b60008083601f840112616010578182fd5b5081356001600160401b03811115616026578182fd5b6020830191508360208083028501011115614f0757600080fd5b60008083601f840112616051578182fd5b5081356001600160401b03811115616067578182fd5b602083019150836020828501011115614f0757600080fd5b600060208284031215616090578081fd5b81356001600160a01b0381168114610ea2578182fd5b600080600080604085870312156160bb578283fd5b84356001600160401b03808211156160d1578485fd5b6160dd88838901615fff565b909650945060208701359150808211156160f5578384fd5b5061610287828801615fff565b95989497509550505050565b60006020828403121561611f578081fd5b81518015158114610ea2578182fd5b60008060008060408587031215616143578384fd5b84356001600160401b0380821115616159578586fd5b61616588838901616040565b9096509450602087013591508082111561617d578384fd5b5061610287828801616040565b60006020828403121561619b578081fd5b5035919050565b6000602082840312156161b3578081fd5b5051919050565b600080604083850312156161cc578182fd5b505080516020909101519092909150565b6000806000604084860312156161f1578283fd5b833560ff81168114616201578384fd5b925060208401356001600160401b0381111561621b578283fd5b61622786828701616040565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561626c5781516001600160a01b031687529582019590820190600101616247565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526162b9816020860160208601616f56565b601f01601f19169290920160200192915050565b600082516162df818460208701616f56565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610ea26020830184616234565b60006040825261638c6040830185616234565b602083820381850152818551808452828401915082838202850101838801865b838110156163da57601f198784030185526163c88383516162a1565b948601949250908501906001016163ac565b50909998505050505050505050565b6000608082526163fc6080830187616234565b828103602084810191909152865180835287820192820190845b8181101561643257845183529383019391830191600101616416565b505084810360408601526164468188616234565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610ea260208301846162a1565b600060408252616495604083018688616277565b82810360208401526164a8818587616277565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615c3260608301846162a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615c32604083018486616277565b60005b83811015616f71578181015183820152602001616f59565b83811115612c47575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa2646970667358221220df3b2f2afc524f6a9eb81529e8bd736333e37b7197419580d4e42bd858b6b14264736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/mainnet/CrossChainContract b/core/systemcontracts/luban/mainnet/CrossChainContract new file mode 100644 index 0000000000..3df402e341 --- /dev/null +++ b/core/systemcontracts/luban/mainnet/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b6104096129c6565b6103a66129ce565b6103e56129d3565b6103e56129d9565b6104236129df565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b5090925090506129e8565b61063d60048036036020811015610a9657600080fd5b503560ff166134ac565b6104096134c7565b6103e56134eb565b6105996134f1565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff16613745565b61070c613765565b610409613784565b6103e561378a565b610599613790565b61063d60048036036020811015610b1d57600080fd5b503560ff16613b47565b610599613b62565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613d81565b6103e5613ec4565b6103a6613eca565b6103e5613ecf565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613ed5565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f1d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f1d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61401a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614098565b509050611386818388516140a2565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d890836140e3565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b03908116908316811461187d576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b1580156118f257600080fd5b505afa158015611906573d6000803e3d6000fd5b505050506040513d602081101561191c57600080fd5b50516119595760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b03166119c3576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a2c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611a7e5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611ac2576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c066110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d6020811015611bd957600080fd5b505160408051808201909152600381526269626360e81b6020820152611bff8e8e613ed5565b8585613f1d565b611c4e576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611c9a57600080fd5b505afa158015611cae573d6000803e3d6000fd5b505050506040513d6020811015611cc457600080fd5b505190508b8b600080806060611cd9896143c8565b935093509350935083611d9b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d53578181015183820152602001611d3b565b50505050905090810190601f168015611d805780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050506129b6565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123205760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611e68578181015183820152602001611e50565b50505050905090810190601f168015611e955780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611eb557600080fd5b505af1925050508015611f9957506040513d6000823e601f3d908101601f191682016040526020811015611ee857600080fd5b8101908080516040519392919084600160201b821115611f0757600080fd5b908301906020820185811115611f1c57600080fd5b8251600160201b811182820188101715611f3557600080fd5b82525081516020918201929091019080838360005b83811015611f62578181015183820152602001611f4a565b50505050905090810190601f168015611f8f5780820380516001836020036101000a031916815260200191505b5060405250505060015b6122ab576040516000815260443d1015611fb557506000612050565b60046000803e60005160e01c6308c379a08114611fd6576000915050612050565b60043d036004833e81513d60248201116001600160401b038211171561200157600092505050612050565b80830180516001600160401b03811115612022576000945050505050612050565b8060208301013d860181111561204057600095505050505050612050565b601f01601f191660405250925050505b8061205b575061216d565b60ff8716600090815260076020526040812054612092916001600160401b0390911690899061208d906002908861131c565b614478565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561212d578181015183820152602001612115565b50505050905090810190601f16801561215a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506122a6565b3d808015612197576040519150601f19603f3d011682016040523d82523d6000602084013e61219c565b606091505b5060ff87166000908152600760205260408120546121cf916001600160401b0390911690899061208d906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561226a578181015183820152602001612252565b50505050905090810190601f1680156122975780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61231a565b8051156123185760ff87166000908152600760205260408120546122e4916001600160401b0390911690899061208d906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506128ee565b60ff8316600114156125c45760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b838110156123aa578181015183820152602001612392565b50505050905090810190601f1680156123d75780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156123f757600080fd5b505af1925050508015612408575060015b61231a576040516000815260443d1015612424575060006124bf565b60046000803e60005160e01c6308c379a081146124455760009150506124bf565b60043d036004833e81513d60248201116001600160401b0382111715612470576000925050506124bf565b80830180516001600160401b038111156124915760009450505050506124bf565b8060208301013d86018111156124af576000955050505050506124bf565b601f01601f191660405250925050505b806124ca575061252f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561212d578181015183820152602001612115565b3d808015612559576040519150601f19603f3d011682016040523d82523d6000602084013e61255e565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561226a578181015183820152602001612252565b60ff8316600214156128ee5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b8381101561264e578181015183820152602001612636565b50505050905090810190601f16801561267b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561269b57600080fd5b505af19250505080156126ac575060015b6128ec576040516000815260443d10156126c857506000612763565b60046000803e60005160e01c6308c379a081146126e9576000915050612763565b60043d036004833e81513d60248201116001600160401b038211171561271457600092505050612763565b80830180516001600160401b03811115612735576000945050505050612763565b8060208301013d860181111561275357600095505050505050612763565b601f01601f191660405250925050505b8061276e5750612817565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d75781810151838201526020016127bf565b50505050905090810190601f1680156128045780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128ec565b3d808015612841576040519150601f19603f3d011682016040523d82523d6000602084013e612846565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128b0578181015183820152602001612898565b50505050905090810190601f1680156128dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612920575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b15801561298057600080fd5b505af1158015612994573d6000803e3d6000fd5b505050506040513d60208110156129aa57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a285760405162461bcd60e51b815260040180806020018281038252602e815260200180614908602e913960400191505060405180910390fd5b600b5460ff1615612a6c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612ad584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146129050565b15612b7057604080516020601f8401819004810282018101909252828152600091612b18918585808385018382808284376000920191909152506146f992505050565b90506127108111158015612b2d5750600a8110155b612b685760405162461bcd60e51b81526004018080602001828103825260328152602001806149806032913960400191505060405180910390fd5b60015561341a565b612bd984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146129050565b15612d6157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612c5c5760405162461bcd60e51b815260040180806020018281038252605a815260200180614821605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612c7a816146fe565b612ccb576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061341a565b612dce84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146129050565b15612eff57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612e515760405162461bcd60e51b815260040180806020018281038252604a815260200180614936604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612ef5576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061341a565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146129050565b156130985760028114612fa75760405162461bcd60e51b815260040180806020018281038252602d8152602001806148af602d913960400191505060405180910390fd5b6000612fea600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff16118015613004575060648161ffff16105b61304e576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6130fb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146129050565b1561322e576002811461313f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806148dc602c913960400191505060405180910390fd5b6000613182600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561319c575060648161ffff16105b6131e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b61329984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146129050565b156133dd57600281146132dd5760405162461bcd60e51b815260040180806020018281038252603481526020018061487b6034913960400191505060405180910390fd5b6000613320600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561333a575060648161ffff16105b61338b576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff16613536576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561357957600080fd5b505afa15801561358d573d6000803e3d6000fd5b505050506040513d60208110156135a357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156135e457600080fd5b505afa1580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b505190508061361b575060155b60008211801561362b5750808211155b61366a576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff166136b1576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613702907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b9050801561374057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff16156137e8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613ba7576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613bea57600080fd5b505afa158015613bfe573d6000803e3d6000fd5b505050506040513d6020811015613c1457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613c5557600080fd5b505afa158015613c69573d6000803e3d6000fd5b505050506040513d6020811015613c7f57600080fd5b5051905080613c8c575060155b600082118015613c9c5750808211155b613cdb576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d1f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613d71907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b905080156137405761374061401a565b60005460ff16613dc6576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e235760405162461bcd60e51b81526004018080602001828103825260318152602001806147f06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613e889284928a9261208d92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f2c57506000614011565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613f63576020820181803683370190505b5090506000613f7182614704565b602080890151825201905086600080613f8989614098565b8086526020909501949092509050613fa28285836140a2565b92830192613faf88614098565b8086526020909501949092509050613fc88285836140a2565b9283018a815260200192613fdb87614098565b9092509050613feb8285836140a2565b508351602001613ff961470a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561405e576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b602081106140c2578251825260209283019290910190601f19016140a3565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff166141ac57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b0316421015806141dd575082816001015414155b156142b0576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b0316021783556001808401869055825191820190925233815261425291600284019190614728565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614364565b60005b600282015481101561433b57336001600160a01b03168260020182815481106142d857fe5b6000918252602090912001546001600160a01b03161415614333576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b6001016142b3565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff909116116143be576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff1916815560018101829055906143b2600283018261478d565b50506001915050613f17565b5060009392505050565b600080600060606021855110156143f8575050604080516000808252602082019092529092508291508190614471565b600185015160218601518651604080516020198301808252601f1960011990940193909316810160200190915260418901939291606091908015614443576020820181803683370190505b509050600061445182614098565b509050614463858260218d51036140a2565b506001975091955093509150505b9193509193565b600b5460ff16156144bc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156144fb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003554360025561453c565b6003805460019081019182905554101561453c576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145d25781810151838201526020016145ba565b50505050905090810190601f1680156145ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146475780518252601f199092019160209182019101614628565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146b55780518252601f199092019160209182019101614696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561477d579160200282015b8281111561477d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614748565b506147899291506147ae565b5090565b50805460008255906000526020600020908101906147ab91906147d5565b50565b6147d291905b808211156147895780546001600160a01b03191681556001016147b4565b90565b6147d291905b8082111561478957600081556001016147db56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220622dd2ff8c5505e7bf8251c7cfe63da6bfa7891c3682ca46b6d6bf796895609f64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/mainnet/RelayerHubContract b/core/systemcontracts/luban/mainnet/RelayerHubContract new file mode 100644 index 0000000000..42591ab48c --- /dev/null +++ b/core/systemcontracts/luban/mainnet/RelayerHubContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102275760003560e01c80638f83ab1311610130578063c81b1662116100b8578063f3ae24151161007c578063f3ae2415146104e8578063f9a2bbc71461050e578063fc3e590814610516578063fd30d9b81461051e578063fd6a68791461052657610227565b8063c81b1662146104c0578063dc927faf146104c8578063dd91d1c5146104d0578063e1c7392a146104d8578063e79a198f146104e057610227565b8063a1a11bf5116100ff578063a1a11bf5146103de578063a74b83ca146103e6578063a78abc16146103ee578063ab51bb96146103f6578063ac431751146103fe57610227565b80638f83ab13146103a057806395468d26146103c657806396713da9146103ce5780639dc09262146103d657610227565b8063541d5548116101b3578063718a8aa811610182578063718a8aa81461034857806375d47a0a1461035057806378beee67146103585780637942fd051461037e5780637ae230881461038657610227565b8063541d5548146102d85780636a6a419e146103125780636e47b4821461033857806370fd5bad1461034057610227565b80633dffc387116101fa5780633dffc3871461028357806343756e5c146102a1578063493279b1146102a95780634bf6c882146102c857806351e80672146102d057610227565b806303aff02b1461022c578063049a5716146102365780630bee7a671461025a5780630e2374a51461027b575b600080fd5b61023461052e565b005b61023e610539565b604080516001600160a01b039092168252519081900360200190f35b610262610551565b6040805163ffffffff9092168252519081900360200190f35b61023e610556565b61028b61055c565b6040805160ff9092168252519081900360200190f35b61023e610561565b6102b1610567565b6040805161ffff9092168252519081900360200190f35b61028b61056c565b61023e610571565b6102fe600480360360208110156102ee57600080fd5b50356001600160a01b0316610577565b604080519115158252519081900360200190f35b6102fe6004803603602081101561032857600080fd5b50356001600160a01b0316610595565b61023e6105b3565b61028b6105b9565b61028b6105be565b61023e6105c3565b6102346004803603602081101561036e57600080fd5b50356001600160a01b03166105c9565b61028b6107b1565b61038e6107b6565b60408051918252519081900360200190f35b610234600480360360208110156103b657600080fd5b50356001600160a01b03166107c3565b61038e610a02565b61028b610a0e565b61023e610a13565b61023e610a19565b61023e610a1f565b6102fe610a37565b610262610a40565b6102346004803603604081101561041457600080fd5b81019060208101813564010000000081111561042f57600080fd5b82018360208201111561044157600080fd5b8035906020019184600183028401116401000000008311171561046357600080fd5b91939092909160208101903564010000000081111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460018302840111640100000000831117156104b557600080fd5b509092509050610a45565b61023e610d96565b61023e610d9c565b610234610da2565b610234610e43565b610234610ec5565b6102fe600480360360208110156104fe57600080fd5b50356001600160a01b031661107e565b61023e61109c565b61028b6110a2565b6102fe6110a7565b61023e6110b0565b610537336110b6565b565b73b005741528b86f5952469d80a8614591e3c5b63281565b606481565b61200181565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b031660009081526008602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b3360009081526008602052604090205460ff166106175760405162461bcd60e51b81526004018080602001828103825260248152602001806115c26024913960400191505060405180910390fd5b61062033611218565b1561065c5760405162461bcd60e51b815260040180806020018281038252602181526020018061157f6021913960400191505060405180910390fd5b3233146106b0576040805162461bcd60e51b815260206004820152601e60248201527f70726f766973696f6e616c2072656c6179657220697320612070726f78790000604482015290519081900360640190fd5b6001600160a01b038181166000908152600960205260409020541633146107085760405162461bcd60e51b815260040180806020018281038252602781526020018061163b6027913960400191505060405180910390fd5b6001600160a01b03818116600081815260066020908152604080832080543380865260078086528487208054600160ff199182161790915584546001600160a01b031990811684179095556008875285882080548216905597875260098652848720805490941690935596168085529083529281902080549094169093558251828152908101939093528151909260008051602061166283398151915292908290030190a15050565b600b81565b68056bc75e2d6310000081565b3360009081526005602052604090205460ff16610820576040805162461bcd60e51b81526020600482015260166024820152751b585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b61082981611218565b156108655760405162461bcd60e51b81526004018080602001828103825260278152602001806115e66027913960400191505060405180910390fd5b6001600160a01b03811615610921576001600160a01b03811660009081526007602052604090205460ff16156108db576040805162461bcd60e51b815260206004820152601660248201527572656c6179657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152600860209081526040808320805460ff191660011790553383526009909152902080546001600160a01b03191690911790556109c2565b3360008181526006602090815260408083208054600980855283862080546001600160a01b03198085169095556001600160a01b0393841680895260078852868920805460ff19908116909155918516808a5260088952878a20805490931690925598909752908552805490921690915581518581529086169281019290925280516000805160206116628339815191529281900390910190a150506109ff565b604080516001600160a01b038316815290517ffba56633276570c7d3120d4535bf3bce26523da53958e40734210b9fd99b36939181900360200190a15b50565b67016345785d8a000081565b600981565b61100781565b61100681565b73446aa6e0dc65690403df3f127750da1322941f3e81565b60005460ff1681565b600081565b60005460ff16610a98576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361100714610ad85760405162461bcd60e51b815260040180806020018281038252602e81526020018061160d602e913960400191505060405180910390fd5b610b3984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526930b23226b0b730b3b2b960b11b6020820152915061121e9050565b15610bd15760148114610b7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610bc0601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb8161130a565b50610d04565b610c3584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c3932b6b7bb32a6b0b730b3b2b960991b6020820152915061121e9050565b15610cc75760148114610c795760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610cbc601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb816110b6565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b600a5460ff1615610dfa576040805162461bcd60e51b815260206004820152601e60248201527f7468652077686974656c6973747320616c726561647920757064617465640000604482015290519081900360640190fd5b610e1773b005741528b86f5952469d80a8614591e3c5b6326113cc565b610e3473446aa6e0dc65690403df3f127750da1322941f3e6113cc565b600a805460ff19166001179055565b60005460ff1615610e9b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610f20576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610f73576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610f7b611564565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610fbf919063ffffffff61148416565b6040518115909202916000818181858888f19350505050158015610fe7573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f1935050505015801561101d573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b6001600160a01b031660009081526005602052604090205460ff1690565b61100081565b600381565b600a5460ff1681565b61100481565b6001600160a01b03811660009081526005602052604090205460ff1661111b576040805162461bcd60e51b81526020600482015260156024820152741b585b9859d95c88191bd95cdb89dd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038082166000818152600660209081526040808320805460058452828520805460ff1990811690915582546001600160a01b0319908116909355600980865284872080548a16885260088752858820805490931690925595879052948452845490911690935580519384525191909316927f2002866d443ac6c241fecaaa2af4895828c7de2cc423b9d01f7969650f557c76928290030190a16001600160a01b03811615611214576001600160a01b0381166000818152600760209081526040808320805460ff1916905580519384529083019190915280516000805160206116628339815191529281900390910190a15b5050565b3b151590565b6000816040516020018082805190602001908083835b602083106112535780518252601f199092019160209182019101611234565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106112c15780518252601f1990920191602091820191016112a2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526005602052604090205460ff1615611371576040805162461bcd60e51b81526020600482015260166024820152756d616e6167657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a150565b6001600160a01b03811660008181526005602090815260408083208054600160ff1991821681179092556006845282852080546001600160a01b031916871790556007845293829020805490941617909255815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a160408051600081526001600160a01b03831660208201528151600080516020611662833981519152929181900390910190a150565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cd565b9392505050565b6000818484111561155c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe70726f766973696f6e616c2072656c61796572206973206120636f6e74726163746c656e677468206f66206d616e616765722061646472657373206d69736d6174636872656c61796572206973206e6f7420612070726f766973696f6e616c2072656c61796572636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e747261637470726f766973696f6e616c206973206e6f742073657420666f722074686973206d616e61676572a5a19d7e9dab30a215022382d7abe782b579986fcbedec9942ecd0db9510a148a2646970667358221220ca640b19c40787a49d8b8b52c563d76e0125386bfdf94825087004f989e9989d64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/mainnet/SlashContract b/core/systemcontracts/luban/mainnet/SlashContract new file mode 100644 index 0000000000..0cdc39591d --- /dev/null +++ b/core/systemcontracts/luban/mainnet/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b60405161029991906132a4565b60405180910390f35b6102aa6104e2565b6040516102999190612b82565b6102ca6102c5366004612ab8565b6104e8565b6040516102999190612bba565b6102df61054e565b6040516102999190612baf565b6102ff6102fa366004612866565b610557565b6040516102999392919061328c565b6102aa61031c366004612a88565b61057a565b61033461032f366004612866565b6105a1565b60405161029992919061327e565b61034a6105f8565b6040516102999190613254565b61034a6105fe565b610367610604565b60405161029991906132b5565b6102aa610609565b61038461060f565b6040516102999190613245565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b7366004612866565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612ab8565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc61045736600461296c565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612ab8565b610ceb565b6103bc61048d366004612866565b610d5c565b6103bc6104a03660046129d5565b61114d565b61034a61169a565b6102aa61169f565b6103bc6116a5565b6102aa6116e1565b6103676116e7565b6103bc6116ec565b6102aa611b35565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b906130cb565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612c9b565b60405162461bcd60e51b815260040161050b9061318e565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac61264d565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612edf565b60005460ff166106685760405162461bcd60e51b815260040161050b90612c9b565b61200063f7a251d7600b61067b84611b3b565b60006040518463ffffffff1660e01b815260040161069b939291906132c3565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b906130cb565b60005460ff166107435760405162461bcd60e51b815260040161050b90612c9b565b61074b612670565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c0d92505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c6916132a4565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610803916132a4565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612c9b565b33611007146108845760405162461bcd60e51b815260040161050b90612f88565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611c8d9050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612e6b565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611ce792505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b90613086565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611c8d9050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b90612fd6565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611ce792505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d09565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611c8d9050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b906131c5565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611ce792505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e1f565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611c8d9050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612d3e565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611cec92505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b90613167565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612bcd565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b906130cb565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612c9b565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b9061311a565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612c9b565b6003544311610dbe5760405162461bcd60e51b815260040161050b90613210565b3a15610ddc5760405162461bcd60e51b815260040161050b90612f5a565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612b82565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061294c565b610e5a57611146565b610e6261264d565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612b82565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611b3b565b60006040518463ffffffff1660e01b8152600401610fc7939291906132c3565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c83602001518360405161106592919061325d565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612b82565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612c9b565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612b82565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061294c565b6112005760405162461bcd60e51b815260040161050b90612bff565b60075460ff166112225760405162461bcd60e51b815260040161050b90612c66565b60065461122f5760146006555b8051514361010090910111801561125157504381602001516000015161010001115b61126d5760405162461bcd60e51b815260040161050b90612c36565b80602001516020015181600001516020015114801561129b5750806020015160600151816000015160600151145b156112b85760405162461bcd60e51b815260040161050b90612eb2565b8051604081015190511080156112d75750602081015160408101519051105b6112f35760405162461bcd60e51b815260040161050b90612de8565b6020810151518151511080156113185750806000015160400151816020015160400151105b8061134357508051516020820151511080156113435750806020015160400151816000015160400151105b8061135d5750806020015160400151816000015160400151145b6113795760405162461bcd60e51b815260040161050b90612cd2565b61138b81600001518260400151611d14565b80156113a457506113a481602001518260400151611d14565b6113c05760405162461bcd60e51b815260040161050b90612d89565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143a9190810190612889565b9150915060005b81518110156115775761146b82828151811061145957fe5b60200260200101518560400151611eec565b1561156f576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f0906114a39033908590600401612b96565b602060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612aa0565b506110006001600160a01b03166335409f7f85848151811061151357fe5b60200260200101516040518263ffffffff1660e01b81526004016115379190612b82565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b5050505050611577565b600101611441565b50600061158984604001516000611f50565b90506120006001600160a01b031663f7a251d7600b6115ab8760400151611f6c565b60006040518463ffffffff1660e01b81526004016115cb939291906132c3565b600060405180830381600087803b1580156115e557600080fd5b505af19250505080156115f6575060015b611668573d808015611624576040519150601f19603f3d011682016040523d82523d6000602084013e611629565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161165a9190612bba565b60405180910390a250611694565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156116c85760405162461bcd60e51b815260040161050b90613018565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461170d5760405162461bcd60e51b815260040161050b90612edf565b60005460ff1661172f5760405162461bcd60e51b815260040161050b90612c9b565b60015461173b57611b33565b600154600090600019015b808211611b07576000805b8284101561186a5761176161264d565b600260006001878154811061177257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611854576004600554816117df57fe5b0481602001510381602001818152505080600260006001888154811061180157fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561185e565b600192505061186a565b50836001019350611751565b828411611a015761187961264d565b600260006001868154811061188a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611972576004600554816118f757fe5b0481602001510381602001818152505080600260006001878154811061191957fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a019050565b600260006001868154811061198357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119c757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119f45750611a01565b506000199092019161186a565b818015611a0b5750805b15611aea576002600060018681548110611a2157fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a6857fe5b600091825260209091200154600180546001600160a01b039092169186908110611a8e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611ac757fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611af6575050611b07565b505060019091019060001901611746565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b56579050509050611b7f836001600160a01b0316611fa7565b81600081518110611b8c57fe5b6020026020010181905250611ba043611fca565b81600181518110611bad57fe5b6020908102919091010152611bc26038611fca565b81600281518110611bcf57fe5b6020026020010181905250611be342611fca565b81600381518110611bf057fe5b6020026020010181905250611c0481611fdd565b9150505b919050565b611c15612670565b6000611c1f612670565b611c27612682565b611c38611c3386612067565b61208c565b90506000805b611c47836120d6565b15611c805780611c7357611c62611c5d846120f7565b612145565b63ffffffff16845260019150611c78565b611c80565b600101611c3e565b5091935090915050915091565b600081604051602001611ca09190612b66565b6040516020818303038152906040528051906020012083604051602001611cc79190612b66565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d06576001915081611d0c565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611d30575050604080516020808252818301909252919250606091908082018180368337019050509050611d758560000151611fca565b82600081518110611d8257fe5b6020026020010181905250611d9d60208660200151836121c7565b611da6816121d7565b82600181518110611db357fe5b6020026020010181905250611dcb8560400151611fca565b82600281518110611dd857fe5b6020026020010181905250611df360208660600151836121c7565b611dfc816121d7565b82600381518110611e0957fe5b6020026020010181905250611e2f6020611e2284611fdd565b80519060200120836121c7565b6040805160b080825260e08201909252606091602082018180368337019050509050611e5f81836000602061222d565b611e718187608001516020606061222d565b611e7f81866080603061222d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611ebc57600080fd5b506001611eca826000612280565b60ff1614611edf576000945050505050611ce1565b5060019695505050505050565b815181516000916001918114808314611f085760009250611f46565b600160208701838101602088015b600284838510011415611f41578051835114611f355760009650600093505b60209283019201611f16565b505050505b5090949350505050565b60008160200183511015611f6357600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611f87579050509050611b7f836121d7565b60408051600560a21b8318601482015260348101909152606090611c04816121d7565b6060611ce1611fd88361229c565b6121d7565b6060815160001415611ffe5750604080516000815260208101909152611c08565b60608260008151811061200d57fe5b602002602001015190506000600190505b835181101561204e576120448285838151811061203757fe5b6020026020010151612382565b915060010161201e565b50611c04612061825160c060ff166123ff565b82612382565b61206f6126a2565b506040805180820190915281518152602082810190820152919050565b612094612682565b61209d826124d1565b6120a657600080fd5b60006120b5836020015161250b565b60208085015160408051808201909152868152920190820152915050919050565b60006120e06126a2565b505080518051602091820151919092015191011190565b6120ff6126a2565b612108826120d6565b61211157600080fd5b602082015160006121218261256e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061215a57508151602110155b61216357600080fd5b6000612172836020015161250b565b905080836000015110156121985760405162461bcd60e51b815260040161050b9061304f565b8251602080850151830180519284900392918310156121be57826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122095750607f60f81b826000815181106121f757fe5b01602001516001600160f81b03191611155b15612215575080611c08565b611ce16122278351608060ff166123ff565b83612382565b60005b818110156106c95783818151811061224457fe5b602001015160f81c60f81b85848060010195508151811061226157fe5b60200101906001600160f81b031916908160001a905350600101612230565b6000816001018351101561229357600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166122e057506018612304565b6fffffffffffffffffffffffffffffffff19841661230057506010612304565b5060005b602081101561233a5781818151811061231957fe5b01602001516001600160f81b031916156123325761233a565b600101612304565b60008160200390506060816040519080825280601f01601f19166020018201604052801561236f576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b818310156123b357805183526020928301920161239b565b50855184518101855292509050808201602086015b818310156123e05780518352602092830192016123c8565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124295760405162461bcd60e51b815260040161050b90612dc0565b604080516001808252818301909252606091602082018180368337019050509050603784116124835782840160f81b8160008151811061246557fe5b60200101906001600160f81b031916908160001a9053509050611ce1565b606061248e8561229c565b90508381510160370160f81b826000815181106124a757fe5b60200101906001600160f81b031916908160001a9053506124c88282612382565b95945050505050565b80516000906124e257506000611c08565b6020820151805160001a9060c082101561250157600092505050611c08565b5060019392505050565b8051600090811a6080811015612525576000915050611c08565b60b8811080612540575060c08110801590612540575060f881105b1561254f576001915050611c08565b60c08110156125635760b519019050611c08565b60f519019050611c08565b80516000908190811a60808110156125895760019150612646565b60b881101561259e57607e1981019150612646565b60c08110156125ef57600060b78203600186019550806020036101000a8651049150600181018201935050808310156125e95760405162461bcd60e51b815260040161050b90612f2f565b50612646565b60f88110156126045760be1981019150612646565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611d0c5760405162461bcd60e51b815260040161050b90612f2f565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806126956126a2565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126126cc578081fd5b81516126df6126da82613316565b6132ef565b818152915060208083019084810160005b84811015612755578151870188603f82011261270b57600080fd5b8381015161271b6126da82613336565b81815260408b8184860101111561273157600080fd5b6127408388840183870161335a565b508652505092820192908201906001016126f0565b505050505092915050565b60008083601f840112612771578182fd5b50813567ffffffffffffffff811115612788578182fd5b6020830191508360208285010111156127a057600080fd5b9250929050565b600082601f8301126127b7578081fd5b81356127c56126da82613336565b91508082528360208285010111156127dc57600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215612806578081fd5b61281060a06132ef565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561284e57600080fd5b61285a848285016127a7565b60808301525092915050565b600060208284031215612877578081fd5b813561288281613386565b9392505050565b6000806040838503121561289b578081fd5b825167ffffffffffffffff808211156128b2578283fd5b81850186601f8201126128c3578384fd5b805192506128d36126da84613316565b80848252602080830192508084018a8283890287010111156128f3578788fd5b8794505b8685101561291e57805161290a81613386565b8452600194909401939281019281016128f7565b508801519096509350505080821115612935578283fd5b50612942858286016126bc565b9150509250929050565b60006020828403121561295d578081fd5b81518015158114612882578182fd5b60008060008060408587031215612981578182fd5b843567ffffffffffffffff80821115612998578384fd5b6129a488838901612760565b909650945060208701359150808211156129bc578384fd5b506129c987828801612760565b95989497509550505050565b6000602082840312156129e6578081fd5b813567ffffffffffffffff808211156129fd578283fd5b81840160608187031215612a0f578384fd5b612a1960606132ef565b9250803582811115612a29578485fd5b612a35878284016127f5565b845250602081013582811115612a49578485fd5b612a55878284016127f5565b602085015250604081013582811115612a6c578485fd5b612a78878284016127a7565b6040850152509195945050505050565b600060208284031215612a99578081fd5b5035919050565b600060208284031215612ab1578081fd5b5051919050565b600080600060408486031215612acc578283fd5b833560ff81168114612adc578384fd5b9250602084013567ffffffffffffffff811115612af7578283fd5b612b0386828701612760565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612b5281602086016020860161335a565b601f01601f19169290920160200192915050565b60008251612b7881846020870161335a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526128826020830184612b3a565b600060408252612be1604083018688612b10565b8281036020840152612bf4818587612b10565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252601690820152751d1bdbc81bdb1908189b1bd8dac81a5b9d9bdb1d995960521b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526132766040830184612b3a565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526132df6060830185612b3a565b9050826040830152949350505050565b60405181810167ffffffffffffffff8111828210171561330e57600080fd5b604052919050565b600067ffffffffffffffff82111561332c578081fd5b5060209081020190565b600067ffffffffffffffff82111561334c578081fd5b50601f01601f191660200190565b60005b8381101561337557818101518382015260200161335d565b838111156116945750506000910152565b6001600160a01b038116811461339b57600080fd5b5056fea26469706673582212207e6be46f5e0281709e9788d33be4928c51610752d8a32e78d1c8c64bea3df55764736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/mainnet/SystemRewardContract b/core/systemcontracts/luban/mainnet/SystemRewardContract new file mode 100644 index 0000000000..675e053e29 --- /dev/null +++ b/core/systemcontracts/luban/mainnet/SystemRewardContract @@ -0,0 +1 @@ +6080604052600436106101a05760003560e01c80637942fd05116100ec578063ac4317511161008a578063f9a2bbc711610064578063f9a2bbc714610550578063fb5478b314610565578063fc3e59081461057a578063fd6a68791461058f576101e4565b8063ac43175114610457578063c81b166214610526578063dc927faf1461053b576101e4565b80639dc09262116100c65780639dc0926214610403578063a1a11bf514610418578063a78abc161461042d578063ab51bb9614610442576101e4565b80637942fd05146103a057806396713da9146103b55780639a99b4f0146103ca576101e4565b80634bf6c882116101595780636e47b482116101335780636e47b4821461034c57806370fd5bad14610361578063718a8aa81461037657806375d47a0a1461038b576101e4565b80634bf6c882146102db57806351e80672146102f05780636d70f7ae14610305576101e4565b80630bee7a67146101e95780630e2374a5146102175780633a0b0eff146102485780633dffc3871461026f57806343756e5c1461029a578063493279b1146102af576101e4565b366101e45734156101e25760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101f557600080fd5b506101fe6105a4565b6040805163ffffffff9092168252519081900360200190f35b34801561022357600080fd5b5061022c6105a9565b604080516001600160a01b039092168252519081900360200190f35b34801561025457600080fd5b5061025d6105af565b60408051918252519081900360200190f35b34801561027b57600080fd5b506102846105b5565b6040805160ff9092168252519081900360200190f35b3480156102a657600080fd5b5061022c6105ba565b3480156102bb57600080fd5b506102c46105c0565b6040805161ffff9092168252519081900360200190f35b3480156102e757600080fd5b506102846105c5565b3480156102fc57600080fd5b5061022c6105ca565b34801561031157600080fd5b506103386004803603602081101561032857600080fd5b50356001600160a01b03166105d0565b604080519115158252519081900360200190f35b34801561035857600080fd5b5061022c6105ee565b34801561036d57600080fd5b506102846105f4565b34801561038257600080fd5b506102846105f9565b34801561039757600080fd5b5061022c6105fe565b3480156103ac57600080fd5b50610284610604565b3480156103c157600080fd5b50610284610609565b3480156103d657600080fd5b5061025d600480360360408110156103ed57600080fd5b506001600160a01b03813516906020013561060e565b34801561040f57600080fd5b5061022c6107b9565b34801561042457600080fd5b5061022c6107bf565b34801561043957600080fd5b506103386107c5565b34801561044e57600080fd5b506101fe6107ce565b34801561046357600080fd5b506101e26004803603604081101561047a57600080fd5b81019060208101813564010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460018302840111640100000000831117156104c957600080fd5b9193909290916020810190356401000000008111156104e757600080fd5b8201836020820111156104f957600080fd5b8035906020019184600183028401116401000000008311171561051b57600080fd5b5090925090506107d3565b34801561053257600080fd5b5061022c610b56565b34801561054757600080fd5b5061022c610b5c565b34801561055c57600080fd5b5061022c610b62565b34801561057157600080fd5b5061025d610b68565b34801561058657600080fd5b50610284610b74565b34801561059b57600080fd5b5061022c610b79565b606481565b61200181565b60015481565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff1661068b57600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106d95760405162461bcd60e51b815260040180806020018281038252602b815260200180610c67602b913960400191505060405180910390fd5b60004783106106e857476106ea565b825b9050670de0b6b3a76400008111156107075750670de0b6b3a76400005b8015610788576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610743573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107b2565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b33611007146108135760405162461bcd60e51b815260040180806020018281038252602e815260200180610cc1602e913960400191505060405180910390fd5b61087584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b7f9050565b1561094d57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506108f85760405162461bcd60e51b815260040180806020018281038252602c815260200180610cef602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610ac4565b6109b284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b7f9050565b15610a8757606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610a355760405162461bcd60e51b815260040180806020018281038252602f815260200180610c92602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610ac4565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610bb45780518252601f199092019160209182019101610b95565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610c225780518252601f199092019160209182019101610c03565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a264697066735822122078be72e2672a87e28d3e6849bea141a139b304a089fceb003c016dabd5f556fb64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/mainnet/ValidatorContract b/core/systemcontracts/luban/mainnet/ValidatorContract new file mode 100644 index 0000000000..448d746f7f --- /dev/null +++ b/core/systemcontracts/luban/mainnet/ValidatorContract @@ -0,0 +1 @@ +60806040526004361061046c5760003560e01c8063862498821161024a578063c6d3394511610139578063e40716a1116100b6578063f9a2bbc71161007a578063f9a2bbc714610b6b578063fc3e590814610b80578063fccc281314610b95578063fd4ad81f14610baa578063fd6a687914610bd957610473565b8063e40716a114610af9578063eb57e20214610b0e578063eda5868c14610b2e578063f340fa0114610b43578063f92eb86b14610b5657610473565b8063d86222d5116100fd578063d86222d514610a90578063daacdb6614610aa5578063dc927faf14610aba578063e086c7b114610acf578063e1c7392a14610ae457610473565b8063c6d3394514610a3c578063c81b166214610a51578063c8509d811461085f578063d04aa99614610a66578063d68fb56a14610a7b57610473565b8063a5422d5c116101c7578063ad3c9da61161018b578063ad3c9da6146109d0578063aef198a9146109f0578063b7ab4db514610a05578063b8cf4ef114610a27578063bf9f49951461062f57610473565b8063a5422d5c1461095c578063a78abc1614610971578063aaf5eb6814610986578063ab51bb961461099b578063ac431751146109b057610473565b806396713da91161020e57806396713da9146108f35780639dc09262146109085780639fe0f8161461091d578063a0dc275814610932578063a1a11bf51461094757610473565b8063862498821461087f57806388b32f11146108945780638b5ad0c9146108a95780638d19a410146108be5780639369d7de146108de57610473565b80634df6e0c3116103665780636e47b482116102e35780637942fd05116102a75780637942fd05146108205780637a84ca2a1461083557806381650b621461084a578063831d65d11461085f578063853230aa1461080b57610473565b80636e47b482146107b757806370fd5bad146107cc578063718a8aa8146107e157806375d47a0a146107f657806378dfed4a1461080b57610473565b8063565c56b31161032a578063565c56b3146107265780635667515a146107465780635d77156c1461075b57806362b72cf5146107705780636969a25c1461078557610473565b80634df6e0c3146106b25780635192c82c146106c757806351e80672146106dc578063549b03f2146106f157806355614fcc1461070657610473565b8063321d398a116103f45780633dffc387116103b85780633dffc3871461062f57806343756e5c1461065157806345cf9daf14610666578063493279b11461067b5780634bf6c8821461069d57610473565b8063321d398a146105975780633365af3a146105b757806335409f7f146105d75780633b071dcc146105f75780633de0f0d81461061a57610473565b80631182b8751161043b5780631182b875146104fe578063152ad3b81461052b5780631ff180691461054d578063219f22d514610562578063300c35671461057757610473565b806304c4fec61461047857806307a568471461048f5780630bee7a67146104ba5780630e2374a5146104dc57610473565b3661047357005b600080fd5b34801561048457600080fd5b5061048d610bee565b005b34801561049b57600080fd5b506104a4610c60565b6040516104b19190616ef0565b60405180910390f35b3480156104c657600080fd5b506104cf610c66565b6040516104b19190616f1a565b3480156104e857600080fd5b506104f1610c6b565b6040516104b191906162f7565b34801561050a57600080fd5b5061051e6105193660046161dd565b610c71565b6040516104b1919061646e565b34801561053757600080fd5b50610540610ea9565b6040516104b19190616463565b34801561055957600080fd5b506104a4610eb2565b34801561056e57600080fd5b506104cf610eb8565b34801561058357600080fd5b5061048d6105923660046160a6565b610ebd565b3480156105a357600080fd5b506105406105b236600461618a565b611241565b3480156105c357600080fd5b506105406105d236600461618a565b611310565b3480156105e357600080fd5b5061048d6105f236600461607f565b6113c1565b34801561060357600080fd5b5061060c61151a565b6040516104b1929190616379565b34801561062657600080fd5b506104a46117f6565b34801561063b57600080fd5b506106446117fc565b6040516104b19190616f2b565b34801561065d57600080fd5b506104f1611801565b34801561067257600080fd5b506104a4611807565b34801561068757600080fd5b5061069061180d565b6040516104b19190616ee1565b3480156106a957600080fd5b50610644611812565b3480156106be57600080fd5b5061060c611817565b3480156106d357600080fd5b506104a4611995565b3480156106e857600080fd5b506104f161199b565b3480156106fd57600080fd5b506104a46119a1565b34801561071257600080fd5b5061054061072136600461607f565b6119a7565b34801561073257600080fd5b506104a461074136600461607f565b6119dc565b34801561075257600080fd5b50610644611a2d565b34801561076757600080fd5b506104cf611a32565b34801561077c57600080fd5b506104a4611a37565b34801561079157600080fd5b506107a56107a036600461618a565b611a3d565b6040516104b196959493929190616324565b3480156107c357600080fd5b506104f1611aa1565b3480156107d857600080fd5b50610644611aa7565b3480156107ed57600080fd5b50610644611aac565b34801561080257600080fd5b506104f1611ab1565b34801561081757600080fd5b506104a4611ab7565b34801561082c57600080fd5b50610644611abd565b34801561084157600080fd5b506104a4611ac2565b34801561085657600080fd5b506104cf611ac8565b34801561086b57600080fd5b5061048d61087a3660046161dd565b611acd565b34801561088b57600080fd5b506104a4611b2e565b3480156108a057600080fd5b506104a4611b34565b3480156108b557600080fd5b506104a4611b3a565b3480156108ca57600080fd5b506104a46108d936600461607f565b611b40565b3480156108ea57600080fd5b5061048d611b80565b3480156108ff57600080fd5b50610644611c94565b34801561091457600080fd5b506104f1611c99565b34801561092957600080fd5b506104a4611c9f565b34801561093e57600080fd5b506104a4611ca4565b34801561095357600080fd5b506104f1611ca9565b34801561096857600080fd5b5061051e611caf565b34801561097d57600080fd5b50610540611cce565b34801561099257600080fd5b506104a4611cd7565b3480156109a757600080fd5b506104cf611a2d565b3480156109bc57600080fd5b5061048d6109cb36600461612e565b611ce0565b3480156109dc57600080fd5b506104a46109eb36600461607f565b61258c565b3480156109fc57600080fd5b506104a461259e565b348015610a1157600080fd5b50610a1a6125ab565b6040516104b19190616366565b348015610a3357600080fd5b506104a4612697565b348015610a4857600080fd5b506104a4611aa7565b348015610a5d57600080fd5b506104f161269c565b348015610a7257600080fd5b506104a46126a2565b348015610a8757600080fd5b506104a46126a7565b348015610a9c57600080fd5b506104a46126e6565b348015610ab157600080fd5b506104a46126f2565b348015610ac657600080fd5b506104f16126f8565b348015610adb57600080fd5b506104a46126fe565b348015610af057600080fd5b5061048d612703565b348015610b0557600080fd5b506104a46128b2565b348015610b1a57600080fd5b5061048d610b2936600461607f565b6128b8565b348015610b3a57600080fd5b506104cf6129c0565b61048d610b5136600461607f565b6129c5565b348015610b6257600080fd5b506104a4612c4d565b348015610b7757600080fd5b506104f1612c53565b348015610b8c57600080fd5b50610644611c9f565b348015610ba157600080fd5b506104f1612c59565b348015610bb657600080fd5b50610bca610bc536600461618a565b612c5f565b6040516104b193929190616ef9565b348015610be557600080fd5b506104f1612d21565b6000610bf933611b40565b9050600b8181548110610c0857fe5b600091825260209091206001601690920201015460ff16610c445760405162461bcd60e51b8152600401610c3b90616b99565b60405180910390fd5b6000610c4e6126a7565b9050610c5b338383612d27565b505050565b60095481565b606481565b61200181565b60005460609060ff16610c965760405162461bcd60e51b8152600401610c3b9061662d565b3361200014610cb75760405162461bcd60e51b8152600401610c3b90616d78565b600b54610d7557610cc6615d6b565b60015460005b81811015610d7157600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff1916911515919091179055604086015180518794610d4d93600080516020616fc3833981519152909101920190615d9a565b506060820151610d639060038301906013615e14565b505050806001019050610ccc565b5050505b610d7d615e41565b6000610dbe85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f1392505050565b9150915080610dda57610dd160646130cf565b92505050610ea2565b815160009060ff16610dff57610df883602001518460400151613130565b9050610e6e565b825160ff1660011415610e6a57826020015151600114610e4457600080516020616f83833981519152604051610e3490616a80565b60405180910390a1506067610e65565b610df88360200151600081518110610e5857fe5b6020026020010151613d84565b610e6e565b5060655b63ffffffff8116610e935750506040805160008152602081019091529150610ea29050565b610e9c816130cf565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610edc5760405162461bcd60e51b8152600401610c3b90616dc7565b6010544311610efd5760405162461bcd60e51b8152600401610c3b90616789565b60005460ff16610f1f5760405162461bcd60e51b8152600401610c3b9061662d565b600f54610f37576032600f5561100231601155611237565b60006110023168056bc75e2d63100000811115610f6657610f5f81606463ffffffff613efb16565b9150610faf565b601154811115610fa857610f5f6064610f9c600f54610f9060115486613f3d90919063ffffffff16565b9063ffffffff613f7f16565b9063ffffffff613efb16565b5050611237565b6040516309a99b4f60e41b815261100290639a99b4f090610fd6903090869060040161630b565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906161a2565b6110023160115591508161103d575050611237565b6000805b8481101561106b5785858281811061105557fe5b9050602002013582019150806001019050611041565b508061107957505050611237565b6000806000805b8981101561122f578489898381811061109557fe5b905060200201358802816110a557fe5b0493508a8a828181106110b457fe5b90506020020160208101906110c9919061607f565b6001600160a01b038116600090815260046020526040902054909350915081156111e55760006001808403815481106110fe57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561116b57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858660405161115e9190616ef0565b60405180910390a26111df565b60035461117e908663ffffffff613fb916565b6003908155810154611196908663ffffffff613fb916565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906111d6908890616ef0565b60405180910390a25b50611227565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161121e9190616ef0565b60405180910390a25b600101611080565b505050505050505b5050436010555050565b60015460009082106112555750600061130b565b60006001600160a01b03166001838154811061126d57fe5b60009182526020909120600490910201546001600160a01b0316148061129d5750600854158061129d5750600a54155b806112ac575060085460095410155b806112bd57506112bb82611310565b155b806112e657506000600b83815481106112d257fe5b906000526020600020906016020160000154115b806112fa575060016112f66125ab565b5111155b156113075750600061130b565b5060015b919050565b60015460009082106113245750600061130b565b600b548210611361576001828154811061133a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061130b565b6001828154811061136e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156113bb5750600b82815481106113a257fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146113e25760405162461bcd60e51b8152600401610c3b90616e98565b600b546114a0576113f1615d6b565b60015460005b8181101561149c57600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff191691151591909117905560408601518051879461147893600080516020616fc3833981519152909101920190615d9a565b50606082015161148e9060038301906013615e14565b5050508060010190506113f7565b5050505b6001600160a01b038116600090815260046020526040902054806114c45750611517565b6001810390506000600b82815481106114d957fe5b600091825260209091206001601690920201015460ff1690506114fc8383613fde565b80156115055750805b15610c5b576009805460001901905550505b50565b60015460609081906000805b8281101561156d576001818154811061153b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611565576001909101905b600101611526565b5060608160405190808252806020026020018201604052801561159a578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156115d357816020015b60608152602001906001900390816115be5790505b50600b546000945090915084141561174e5760005b8481101561174857600181815481106115fd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611740576001818154811061162d57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061165857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061168557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b505050505082858151811061172e57fe5b60209081029190910101526001909301925b6001016115e8565b506117ea565b60005b848110156117e8576001818154811061176657fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117e0576001818154811061179657fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106117c157fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611751565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c5460609182918061182b575060155b60606118356125ab565b9050606061184282614391565b9050828251116118595790945092506117f2915050565b8383835103101561186b578282510393505b83156118a15760c8430461188783838388880360008a8a6144ff565b61189f8383838888038989038a8b8b8b5103016144ff565b505b6060836040519080825280602002602001820160405280156118cd578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561190657816020015b60608152602001906001900390816118f15790505b50905060005b858110156119875784818151811061192057fe5b602002602001015183828151811061193457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061196057fe5b602002602001015182828151811061197457fe5b602090810291909101015260010161190c565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b038116600090815260046020526040812054806119cf57600091505061130b565b60001901610ea281611310565b6001600160a01b03811660009081526004602052604081205480611a0457600091505061130b565b600180820381548110611a1357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60105481565b60018181548110611a4a57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611aee5760405162461bcd60e51b8152600401610c3b90616d78565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611b2193929190616f39565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611b765760405162461bcd60e51b8152600401610c3b90616d00565b6000190192915050565b600b54611c3e57611b8f615d6b565b60015460005b81811015611c3a57600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff1916911515919091179055604086015180518794611c1693600080516020616fc3833981519152909101920190615d9a565b506060820151611c2c9060038301906013615e14565b505050806001019050611b95565b5050505b600854611c4b5760036008555b600a54611c58576002600a555b6000611c6333611b40565b9050611c6e81611241565b611c8a5760405162461bcd60e51b8152600401610c3b90616a3d565b6115173382614656565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001616fe36105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611d025760405162461bcd60e51b8152600401610c3b9061662d565b3361100714611d235760405162461bcd60e51b8152600401610c3b90616b06565b611d8d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506146ee9050565b15611e2a5760208114611db25760405162461bcd60e51b8152600401610c3b90616cba565b604080516020601f8401819004810282018101909252828152600091611df09185858083850183828082843760009201919091525061474792505050565b905060648110158015611e065750620186a08111155b611e225760405162461bcd60e51b8152600401610c3b906168e6565b600255612549565b611e8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506146ee9050565b15611f265760208114611eaf5760405162461bcd60e51b8152600401610c3b906164b3565b604080516020601f8401819004810282018101909252828152600091611eed9185858083850183828082843760009201919091525061474792505050565b9050612710811115611f115760405162461bcd60e51b8152600401610c3b906167cb565b6006556007805460ff19166001179055612549565b611f9084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506146ee9050565b1561202a5760208114611fb55760405162461bcd60e51b8152600401610c3b906164ea565b604080516020601f8401819004810282018101909252828152600091611ff39185858083850183828082843760009201919091525061474792505050565b600c5490915080612002575060155b8082106120215760405162461bcd60e51b8152600401610c3b9061683e565b50600855612549565b61209384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506146ee9050565b1561212c57602081146120b85760405162461bcd60e51b8152600401610c3b906165b3565b604080516020601f84018190048102820181019092528281526000916120f69185858083850183828082843760009201919091525061474792505050565b90506000811180156121085750600a81105b6121245760405162461bcd60e51b8152600401610c3b90616e14565b600a55612549565b6121a084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506146ee9050565b1561222f57602081146121c55760405162461bcd60e51b8152600401610c3b90616567565b604080516020601f84018190048102820181019092528281526000916122039185858083850183828082843760009201919091525061474792505050565b9050600d548111156122275760405162461bcd60e51b8152600401610c3b9061695c565b600e55612549565b61229884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506146ee9050565b1561231a57602081146122bd5760405162461bcd60e51b8152600401610c3b90616b54565b604080516020601f84018190048102820181019092528281526000916122fb9185858083850183828082843760009201919091525061474792505050565b600d819055600e5490915081101561231457600d54600e555b50612549565b61237e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506146ee9050565b1561242c57602081146123a35760405162461bcd60e51b8152600401610c3b906165f8565b604080516020601f84018190048102820181019092528281526000916123e19185858083850183828082843760009201919091525061474792505050565b9050600081116124035760405162461bcd60e51b8152600401610c3b9061669b565b60298111156124245760405162461bcd60e51b8152600401610c3b906166e3565b600c55612549565b61249684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506146ee9050565b1561253157602081146124bb5760405162461bcd60e51b8152600401610c3b90616c3d565b604080516020601f84018190048102820181019092528281526000916124f99185858083850183828082843760009201919091525061474792505050565b90506001811015801561250d575060648111155b6125295760405162461bcd60e51b8152600401610c3b906169cb565b600f55612549565b60405162461bcd60e51b8152600401610c3b90616e71565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161257e9493929190616481565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156125da576125c681611310565b156125d2578160010191505b6001016125b5565b50606081604051908082528060200260200182016040528015612607578160200160208202803683370190505b5090506000915060005b8381101561268e5761262281611310565b15612686576001818154811061263457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061265f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612611565b50925050505b90565b601581565b61100281565b603281565b60006126b16125ab565b519050600080600c54116126c65760156126ca565b600c545b9050808211156126d8578091505b816126e257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156127265760405162461bcd60e51b8152600401610c3b90616c06565b61272e615e41565b60006127546040518061062001604052806105ef8152602001616fe36105ef9139612f13565b91509150806127755760405162461bcd60e51b8152600401610c3b90616d37565b60005b82602001515181101561289a5760018360200151828151811061279757fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061286d57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612778565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146128d95760405162461bcd60e51b8152600401610c3b90616e98565b600b54612997576128e8615d6b565b60015460005b8181101561299357600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff191691151591909117905560408601518051879461296f93600080516020616fc3833981519152909101920190615d9a565b5060608201516129859060038301906013615e14565b5050508060010190506128ee565b5050505b60006129a28261474c565b90506129ad81611241565b156129bc576129bc8282614656565b5050565b606581565b3341146129e45760405162461bcd60e51b8152600401610c3b90616dc7565b60005460ff16612a065760405162461bcd60e51b8152600401610c3b9061662d565b60003411612a265760405162461bcd60e51b8152600401610c3b9061692d565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612a5657506006545b600083118015612a665750600081115b15612b07576000612a83612710610f9c868563ffffffff613f7f16565b90508015612b055760405161dead9082156108fc029083906000818181858888f19350505050158015612aba573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612aea9190616ef0565b60405180910390a1612b02848263ffffffff613f3d16565b93505b505b8115612c05576000600180840381548110612b1e57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612b8b57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612b7e9190616ef0565b60405180910390a2612bff565b600354612b9e908563ffffffff613fb916565b6003908155810154612bb6908563ffffffff613fb916565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612bf6908790616ef0565b60405180910390a25b50612c47565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612c3e9190616ef0565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612c6c57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612d175780601f10612cec57610100808354040283529160200191612d17565b820191906000526020600020905b815481529060010190602001808311612cfa57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612d38575081155b80612d435750600954155b15612d5057506000610ea2565b60096000815460019003919050819055506000612d9b600a54610f9c85610f9c600b8981548110612d7d57fe5b6000918252602090912060169091020154439063ffffffff613f3d16565b90506000600b8581548110612dac57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612e1157600080fd5b505afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4991906161ba565b9150915060009350808310612ec357612e628787613fde565b506040516305bfb49960e41b815261100190635bfb499090612e88908a906004016162f7565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b5050505060019350612ed5565b818310612ed557612ed38761474c565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612f1b615e41565b6000612f25615e41565b612f2d615e65565b612f3e612f39866148ef565b614914565b90506000805b612f4d8361495e565b156130c15780612f7257612f68612f638461497f565b6149cd565b60ff1684526130b9565b80600114156130b4576060612f8e612f898561497f565b614a4d565b90508051604051908082528060200260200182016040528015612fcb57816020015b612fb8615e85565b815260200190600190039081612fb05790505b508560200181905250805160405190808252806020026020018201604052801561300957816020015b6060815260200190600190039081612ff45790505b50604086015260005b81518110156130a957613023615e85565b6060600061304385858151811061303657fe5b6020026020010151614b1e565b92509250925080613063578860009a509a505050505050505050506130ca565b828960200151858151811061307457fe5b6020026020010181905250818960400151858151811061309057fe5b6020026020010181905250505050806001019050613012565b5060019250506130b9565b6130c1565b600101612f44565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816130e957905050905061310f8363ffffffff16614c38565b8160008151811061311c57fe5b6020026020010181905250610ea281614c4b565b600060298351111561316757600080516020616f8383398151915260405161315790616740565b60405180910390a15060666113bb565b60005b83518110156132055760005b818110156131fc5784818151811061318a57fe5b6020026020010151600001516001600160a01b03168583815181106131ab57fe5b6020026020010151600001516001600160a01b031614156131f457600080516020616f838339815191526040516131e19061689b565b60405180910390a16066925050506113bb565b600101613176565b5060010161316a565b506060806132138585614cd5565b60015491935091506000908190815b818110156132985767016345785d8a00006001828154811061324057fe5b9060005260206000209060040201600301541061326257836001019350613290565b60006001828154811061327157fe5b9060005260206000209060040201600301541115613290578260010192505b600101613222565b506060836040519080825280602002602001820160405280156132c5578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156132f4578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613323578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015613352578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613383578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156133b2578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fa57600080fd5b505afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343291906161a2565b905067016345785d8a000081111561347d57600080516020616f8383398151915260405161345f90616bc5565b60405180910390a160689d50505050505050505050505050506113bb565b60005b898110156136ee5767016345785d8a00006001828154811061349e57fe5b9060005260206000209060040201600301541061362357600181815481106134c257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106134f357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061352857fe5b9060005260206000209060040201600301548161354157fe5b066001838154811061354f57fe5b9060005260206000209060040201600301540390506135778382613f3d90919063ffffffff16565b898e8151811061358357fe5b6020026020010181815250506001828154811061359c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e815181106135cd57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106135fa57fe5b6020908102919091010152613615868263ffffffff613fb916565b95508c6001019c50506136e6565b60006001828154811061363257fe5b90600052602060002090600402016003015411156136e6576001818154811061365757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061368857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106136b557fe5b906000526020600020906004020160030154838c815181106136d357fe5b6020026020010181815250508a6001019a505b600101613480565b5060008415613964576002546040516303702b2960e51b815261100491636e056520918891613728918e918e918d914201906004016163e9565b6020604051808303818588803b15801561374157600080fd5b505af193505050508015613772575060408051601f3d908101601f1916820190925261376f9181019061610e565b60015b6138e9576040516000815260443d101561378e57506000613829565b60046000803e60005160e01c6308c379a081146137af576000915050613829565b60043d036004833e81513d60248201116001600160401b03821117156137da57600092505050613829565b80830180516001600160401b038111156137fb576000945050505050613829565b8060208301013d860181111561381957600095505050505050613829565b601f01601f191660405250925050505b806138345750613876565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613868919061646e565b60405180910390a2506138e4565b3d8080156138a0576040519150601f19603f3d011682016040523d82523d6000602084013e6138a5565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040516138da919061646e565b60405180910390a2505b613964565b801561392b577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b708660405161391e9190616ef0565b60405180910390a1613962565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28060405161395990616530565b60405180910390a25b505b8015613b1a5760005b8751811015613b1857600088828151811061398457fe5b6020026020010151905060006001828154811061399d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106139ce57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613a8a5760018281548110613a0f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613a5e57fe5b906000526020600020906004020160030154604051613a7d9190616ef0565b60405180910390a2613b0e565b60018281548110613a9757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613ae657fe5b906000526020600020906004020160030154604051613b059190616ef0565b60405180910390a25b505060010161396d565b505b835115613c645760005b8451811015613c62576000858281518110613b3b57fe5b60200260200101516001600160a01b03166108fc868481518110613b5b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613bf157858281518110613b9157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613bcf57fe5b6020026020010151604051613be49190616ef0565b60405180910390a2613c59565b858281518110613bfd57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613c3b57fe5b6020026020010151604051613c509190616ef0565b60405180910390a25b50600101613b24565b505b5050505050505050505050506000471115613ce0577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613ca89190616ef0565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613cde573d6000803e3d6000fd5b505b60006003819055600555815115613cfb57613cfb8282614f0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d3857600080fd5b505af1158015613d4c573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580613dd55750600180820381548110613db557fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613e1b5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061130b565b600154600554600019820111801590613e715784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061130b565b600580546001908101909155805481906000198601908110613e8f57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506156ed565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615724565b600082613f8e575060006113bb565b82820282848281613f9b57fe5b0414610ea25760405162461bcd60e51b8152600401610c3b90616ac5565b600082820183811015610ea25760405162461bcd60e51b8152600401610c3b90616664565b60008060018381548110613fee57fe5b906000526020600020906004020160030154905060006001808054905003905060016140186125ab565b511161404d5760006001858154811061402d57fe5b9060005260206000209060040201600301819055506000925050506113bb565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516140869190616ef0565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561427357600181600101815481106140c757fe5b9060005260206000209060040201600182815481106140e257fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106141a357fe5b9060005260206000209060160201600b82815481106141be57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054614215938386019390821615610100026000190190911604615eba565b5061422860038281019084016013615f2f565b5090505080600101600460006001848154811061424157fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016140a9565b50600180548061427f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806142d257fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906143046002830182615f59565b614312600383016000615f9d565b50509055600081838161432157fe5b04905080156143855760015460005b8181101561438257826001828154811061434657fe5b906000526020600020906004020160030154016001828154811061436657fe5b6000918252602090912060036004909202010155600101614330565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156143d057816020015b60608152602001906001900390816143bb5790505b50600b5490915083146143e757925061130b915050565b60005b828110156144f657600b60016004600089858151811061440657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061443a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156144d25780601f106144a7576101008083540402835291602001916144d2565b820191906000526020600020905b8154815290600101906020018083116144b557829003601f168201915b50505050508282815181106144e357fe5b60209081029190910101526001016143ea565b50949350505050565b60005b8281101561464c57600082878388016040516020016145229291906162e9565b6040516020818303038152906040528051906020012060001c8161454257fe5b06905080850182870114614643576000898388018151811061456057fe5b602002602001015190506060898489018151811061457a57fe5b602002602001015190508a8388018151811061459257fe5b60200260200101518b858a01815181106145a857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106145d757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061460557fe5b60200260200101518a858a018151811061461b57fe5b6020026020010181905250808a8489018151811061463557fe5b602002602001018190525050505b50600101614502565b5050505050505050565b600980546001908101909155600b80548390811061467057fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106146a657fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161470191906162cd565b604051602081830303815290604052805190602001208360405160200161472891906162cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b038116600090815260046020526040812054806147755750600019905061130b565b60018103905060006001828154811061478a57fe5b90600052602060002090600402016003015490506000600183815481106147ad57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614806908590616ef0565b60405180910390a28061481e5782935050505061130b565b600081838161482957fe5b04905080156148e55760005b8481101561488757816001828154811061484b57fe5b906000526020600020906004020160030154016001828154811061486b57fe5b6000918252602090912060036004909202010155600101614835565b50600180549085015b818110156148e25782600182815481106148a657fe5b90600052602060002090600402016003015401600182815481106148c657fe5b6000918252602090912060036004909202010155600101614890565b50505b5091949350505050565b6148f7615fac565b506040805180820190915281518152602082810190820152919050565b61491c615e65565b61492582615750565b61492e57600080fd5b600061493d836020015161578a565b60208085015160408051808201909152868152920190820152915050919050565b6000614968615fac565b505080518051602091820151919092015191011190565b614987615fac565b6149908261495e565b61499957600080fd5b602082015160006149a9826157ed565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906149e257508151602110155b6149eb57600080fd5b60006149fa836020015161578a565b90508083600001511015614a205760405162461bcd60e51b8152600401610c3b90616c83565b8251602080850151830180519284900392918310156144f657506020919091036101000a90049392505050565b6060614a5882615750565b614a6157600080fd5b6000614a6c836158ce565b9050606081604051908082528060200260200182016040528015614aaa57816020015b614a97615fac565b815260200190600190039081614a8f5790505b5090506000614abc856020015161578a565b60208601510190506000805b84811015614b1357614ad9836157ed565b9150604051806040016040528083815260200184815250848281518110614afc57fe5b602090810291909101015291810191600101614ac8565b509195945050505050565b614b26615e85565b60606000614b32615e85565b6060614b3c615e65565b614b4587614914565b90506000805b614b548361495e565b15614c295780614b7f57614b6f614b6a8461497f565b61592a565b6001600160a01b03168552614c21565b8060011415614ba757614b94614b6a8461497f565b6001600160a01b03166020860152614c21565b8060021415614bcf57614bbc614b6a8461497f565b6001600160a01b03166040860152614c21565b8060031415614bfb57614be4612f638461497f565b6001600160401b0316606086015260019150614c21565b8060041415614c1c57614c15614c108461497f565b615944565b9350614c21565b614c29565b600101614b4b565b50929791965091945092505050565b60606113bb614c46836159b4565b615a9a565b6060815160001415614c6c575060408051600081526020810190915261130b565b606082600081518110614c7b57fe5b602002602001015190506000600190505b8351811015614cbc57614cb282858381518110614ca557fe5b6020026020010151615aec565b9150600101614c8c565b50610ea2614ccf825160c060ff16615b69565b82615aec565b606080600080808080614ce66126a7565b6001549091505b8015614df457600181039250600b8381548110614d0657fe5b600091825260209091206001601690920201015460ff16614d2657614deb565b60018381548110614d3357fe5b60009182526020909120600490910201546001600160a01b03169450614d5a858484612d27565b9350831580614d6d575060018a51038610155b15614d7757614deb565b60005b8a51811015614de957856001600160a01b03168b8281518110614d9957fe5b6020026020010151600001516001600160a01b03161415614de15760018b8281518110614dc257fe5b6020908102919091010151901515608090910152600190960195614de9565b600101614d7a565b505b60001901614ced565b5084895103604051908082528060200260200182016040528015614e3257816020015b614e1f615e85565b815260200190600190039081614e175790505b50965084895103604051908082528060200260200182016040528015614e6c57816020015b6060815260200190600190039081614e575790505b5095506000915060005b8951811015614f0057898181518110614e8b57fe5b602002602001015160800151614ef857898181518110614ea757fe5b6020026020010151888481518110614ebb57fe5b6020026020010181905250888181518110614ed257fe5b6020026020010151878481518110614ee657fe5b60200260200101819052508260010192505b600101614e76565b5050505050505b9250929050565b600154825160005b8281101561502b576001614f28615e85565b60018381548110614f3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614fff57878181518110614fc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614ff75760009250614fff565b600101614fb1565b5081156150215780516001600160a01b03166000908152600460205260408120555b5050600101614f16565b50808211156150ea57805b828110156150e857600180548061504957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061509c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906150ce6002830182615f59565b6150dc600383016000615f9d565b50509055600101615036565b505b60008183106150f957816150fb565b825b905060005b8181101561549f576151ad86828151811061511757fe5b60200260200101516001838154811061512c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615c3b565b6153615780600101600460008884815181106151c557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061520157fe5b60200260200101516001828154811061521657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106152d157fe5b6020026020010151600b82815481106152e657fe5b9060005260206000209060160201600201908051906020019061530a929190615d9a565b506000600b828154811061531a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061534b57fe5b6000918252602090912060169091020155615497565b61542785828151811061537057fe5b6020026020010151600b838154811061538557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561541d5780601f106153f25761010080835404028352916020019161541d565b820191906000526020600020905b81548152906001019060200180831161540057829003601f168201915b5050505050615cbc565b6154725784818151811061543757fe5b6020026020010151600b828154811061544c57fe5b90600052602060002090601602016002019080519060200190615470929190615d9a565b505b60006001828154811061548157fe5b9060005260206000209060040201600301819055505b600101615100565b5082821115615677576154b0615d6b565b835b83811015615674578581815181106154c657fe5b6020026020010151826040018190525060018782815181106154e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020616fa38339815191528101918255858301516000805160206175d28339815191528201805491151560ff199092169190911790559285015180518694929361561a93600080516020616fc383398151915201920190615d9a565b5060608201516156309060038301906013615e14565b505050806001016004600089848151811061564757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016154b2565b50505b6000600981905560015493505b838110156156e5576000600b828154811061569b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106156cc57fe5b6000918252602090912060169091020155600101615684565b505050505050565b6000818361570e5760405162461bcd60e51b8152600401610c3b919061646e565b50600083858161571a57fe5b0495945050505050565b600081848411156157485760405162461bcd60e51b8152600401610c3b919061646e565b505050900390565b80516000906157615750600061130b565b6020820151805160001a9060c08210156157805760009250505061130b565b5060019392505050565b8051600090811a60808110156157a457600091505061130b565b60b88110806157bf575060c081108015906157bf575060f881105b156157ce57600191505061130b565b60c08110156157e25760b51901905061130b565b60f51901905061130b565b80516000908190811a608081101561580857600191506158c7565b60b881101561581d57607e19810191506158c7565b60c081101561586e57600060b78203600186019550806020036101000a8651049150600181018201935050808310156158685760405162461bcd60e51b8152600401610c3b90616a12565b506158c7565b60f88110156158835760be19810191506158c7565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158c55760405162461bcd60e51b8152600401610c3b90616a12565b505b5092915050565b80516000906158df5750600061130b565b600080905060006158f3846020015161578a565b602085015185519181019250015b8082101561592157615912826157ed565b82019150826001019250615901565b50909392505050565b805160009060151461593b57600080fd5b6113bb826149cd565b805160609061595257600080fd5b6000615961836020015161578a565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615998576020820181803683370190505b50905060008160200190506144f6848760200151018285615d20565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166159f857506018615a1c565b6fffffffffffffffffffffffffffffffff198416615a1857506010615a1c565b5060005b6020811015615a5257818181518110615a3157fe5b01602001516001600160f81b03191615615a4a57615a52565b600101615a1c565b60008160200390506060816040519080825280601f01601f191660200182016040528015615a87576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615acc5750607f60f81b82600081518110615aba57fe5b01602001516001600160f81b03191611155b15615ad857508061130b565b6113bb615aea8351608060ff16615b69565b835b6060806040519050835180825260208201818101602087015b81831015615b1d578051835260209283019201615b05565b50855184518101855292509050808201602086015b81831015615b4a578051835260209283019201615b32565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615b935760405162461bcd60e51b8152600401610c3b90616816565b60408051600180825281830190925260609160208201818036833701905050905060378411615bed5782840160f81b81600081518110615bcf57fe5b60200101906001600160f81b031916908160001a90535090506113bb565b6060615bf8856159b4565b90508381510160370160f81b82600081518110615c1157fe5b60200101906001600160f81b031916908160001a905350615c328282615aec565b95945050505050565b805182516000916001600160a01b039182169116148015615c75575081602001516001600160a01b031683602001516001600160a01b0316145b8015615c9a575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ea25750506060908101519101516001600160401b0390811691161490565b815181516000916001918114808314615cd85760009250615d16565b600160208701838101602088015b600284838510011415615d11578051835114615d055760009650600093505b60209283019201615ce6565b505050505b5090949350505050565b80615d2a57610c5b565b5b60208110615d4a578251825260209283019290910190601f1901615d2b565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001615d95615fc6565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ddb57805160ff1916838001178555615e08565b82800160010185558215615e08579182015b82811115615e08578251825591602001919060010190615ded565b506126e2929150615fe5565b8260138101928215615e085791602002820182811115615e08578251825591602001919060010190615ded565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040518060400160405280615e78615fac565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ef35780548555615e08565b82800160010185558215615e0857600052602060002091601f016020900482015b82811115615e08578254825591600101919060010190615f14565b8260138101928215615e085791820182811115615e08578254825591600101919060010190615f14565b50805460018160011615610100020316600290046000825580601f10615f7f5750611517565b601f0160209004906000526020600020908101906115179190615fe5565b50611517906013810190615fe5565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269491905b808211156126e25760008155600101615feb565b60008083601f840112616010578182fd5b5081356001600160401b03811115616026578182fd5b6020830191508360208083028501011115614f0757600080fd5b60008083601f840112616051578182fd5b5081356001600160401b03811115616067578182fd5b602083019150836020828501011115614f0757600080fd5b600060208284031215616090578081fd5b81356001600160a01b0381168114610ea2578182fd5b600080600080604085870312156160bb578283fd5b84356001600160401b03808211156160d1578485fd5b6160dd88838901615fff565b909650945060208701359150808211156160f5578384fd5b5061610287828801615fff565b95989497509550505050565b60006020828403121561611f578081fd5b81518015158114610ea2578182fd5b60008060008060408587031215616143578384fd5b84356001600160401b0380821115616159578586fd5b61616588838901616040565b9096509450602087013591508082111561617d578384fd5b5061610287828801616040565b60006020828403121561619b578081fd5b5035919050565b6000602082840312156161b3578081fd5b5051919050565b600080604083850312156161cc578182fd5b505080516020909101519092909150565b6000806000604084860312156161f1578283fd5b833560ff81168114616201578384fd5b925060208401356001600160401b0381111561621b578283fd5b61622786828701616040565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561626c5781516001600160a01b031687529582019590820190600101616247565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526162b9816020860160208601616f56565b601f01601f19169290920160200192915050565b600082516162df818460208701616f56565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610ea26020830184616234565b60006040825261638c6040830185616234565b602083820381850152818551808452828401915082838202850101838801865b838110156163da57601f198784030185526163c88383516162a1565b948601949250908501906001016163ac565b50909998505050505050505050565b6000608082526163fc6080830187616234565b828103602084810191909152865180835287820192820190845b8181101561643257845183529383019391830191600101616416565b505084810360408601526164468188616234565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610ea260208301846162a1565b600060408252616495604083018688616277565b82810360208401526164a8818587616277565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615c3260608301846162a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615c32604083018486616277565b60005b83811015616f71578181015183820152602001616f59565b83811115612c47575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa26469706673582212206cf6e773ca0b0d999abe4e586cd00abd836c1f2e74f76626269d55c8fc09634364736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/luban/types.go b/core/systemcontracts/luban/types.go new file mode 100644 index 0000000000..4f7c7754a4 --- /dev/null +++ b/core/systemcontracts/luban/types.go @@ -0,0 +1,31 @@ +package luban + +import _ "embed" + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/ValidatorContract + ChapelValidatorContract string + //go:embed chapel/SlashContract + ChapelSlashContract string + //go:embed chapel/SystemRewardContract + ChapelSystemRewardContract string + //go:embed chapel/RelayerHubContract + ChapelRelayerHubContract string + //go:embed chapel/CrossChainContract + ChapelCrossChainContract string +) + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/ValidatorContract + MainnetValidatorContract string + //go:embed mainnet/SlashContract + MainnetSlashContract string + //go:embed mainnet/SystemRewardContract + MainnetSystemRewardContract string + //go:embed mainnet/RelayerHubContract + MainnetRelayerHubContract string + //go:embed mainnet/CrossChainContract + MainnetCrossChainContract string +) diff --git a/core/systemcontracts/mirror/chapel/RelayerIncentivizeContract b/core/systemcontracts/mirror/chapel/RelayerIncentivizeContract new file mode 100644 index 0000000000..dd00f9f6ef --- /dev/null +++ b/core/systemcontracts/mirror/chapel/RelayerIncentivizeContract @@ -0,0 +1 @@ +6080604052600436106102815760003560e01c8063930e1b091161014f578063bd4cc830116100c1578063e75d72c71161007a578063e75d72c7146107b5578063e89a3020146107e8578063f9a2bbc714610812578063fc3e590814610827578063fd6a68791461083c578063fdd31fcd1461085157610288565b8063bd4cc83014610722578063c81b16621461074c578063d0ab528a14610761578063dc927faf14610776578063dcae76ab1461078b578063e1c7392a146107a057610288565b8063a78abc1611610113578063a78abc16146105d3578063a7c6a59d146105e8578063ab51bb96146105fd578063ac43175114610612578063ace9fcc2146106e3578063af400681146106f857610288565b8063930e1b091461054c57806396713da91461057f5780639dc0926214610594578063a1a11bf5146105a9578063a3c3c0ad146105be57610288565b806343756e5c116101f35780636f93d2e6116101ac5780636f93d2e61461048457806370fd5bad146104e357806374f2272d146104f857806375d47a0a1461050d5780637942fd05146105225780637e146cc51461053757610288565b806343756e5c146103ef578063493279b1146104045780634bf6c8821461043057806351e8067214610445578063541333071461045a5780636e47b4821461046f57610288565b806312950c461161024557806312950c46146103215780631b20087c146103365780631c6433121461034b5780633a9756121461028d5780633dffc3871461039157806340bb43c0146103bc57610288565b8063081e9d131461028d57806308f2ec06146102b4578063093f2fc4146102c95780630bee7a67146102de57806310e06a761461030c57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610884565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102a2610889565b3480156102d557600080fd5b506102a261088e565b3480156102ea57600080fd5b506102f3610893565b6040805163ffffffff9092168252519081900360200190f35b34801561031857600080fd5b506102a2610898565b34801561032d57600080fd5b506102a261089e565b34801561034257600080fd5b506102a26108a4565b34801561035757600080fd5b506103756004803603602081101561036e57600080fd5b50356108aa565b604080516001600160a01b039092168252519081900360200190f35b34801561039d57600080fd5b506103a6610884565b6040805160ff9092168252519081900360200190f35b3480156103c857600080fd5b506102a2600480360360208110156103df57600080fd5b50356001600160a01b03166108d1565b3480156103fb57600080fd5b506103756108e3565b34801561041057600080fd5b506104196108e9565b6040805161ffff9092168252519081900360200190f35b34801561043c57600080fd5b506103a66108ee565b34801561045157600080fd5b506103756108f3565b34801561046657600080fd5b506102a2610893565b34801561047b57600080fd5b506103756108f9565b34801561049057600080fd5b506104cf600480360360808110156104a757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108ff565b604080519115158252519081900360200190f35b3480156104ef57600080fd5b506103a6610d91565b34801561050457600080fd5b506102a2610d96565b34801561051957600080fd5b50610375610d9c565b34801561052e57600080fd5b506103a6610da2565b34801561054357600080fd5b506102a2610da7565b34801561055857600080fd5b506102a26004803603602081101561056f57600080fd5b50356001600160a01b0316610dac565b34801561058b57600080fd5b506103a6610dbe565b3480156105a057600080fd5b50610375610dc3565b3480156105b557600080fd5b50610375610dc9565b3480156105ca57600080fd5b506102a2610dcf565b3480156105df57600080fd5b506104cf610dd5565b3480156105f457600080fd5b506102a2610dde565b34801561060957600080fd5b506102f3610de4565b34801561061e57600080fd5b506106e16004803603604081101561063557600080fd5b81019060208101813564010000000081111561065057600080fd5b82018360208201111561066257600080fd5b8035906020019184600183028401116401000000008311171561068457600080fd5b9193909290916020810190356401000000008111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111640100000000831117156106d657600080fd5b509092509050610de9565b005b3480156106ef57600080fd5b506102a2611537565b34801561070457600080fd5b506102a26004803603602081101561071b57600080fd5b503561153d565b34801561072e57600080fd5b506102a26004803603602081101561074557600080fd5b5035611598565b34801561075857600080fd5b506103756115b1565b34801561076d57600080fd5b506102a26115b7565b34801561078257600080fd5b506103756115bd565b34801561079757600080fd5b506102a26115c3565b3480156107ac57600080fd5b506106e16115c9565b3480156107c157600080fd5b506106e1600480360360208110156107d857600080fd5b50356001600160a01b0316611692565b3480156107f457600080fd5b506103756004803603602081101561080b57600080fd5b50356117eb565b34801561081e57600080fd5b506103756117f8565b34801561083357600080fd5b506103a66117fe565b34801561084857600080fd5b50610375611803565b34801561085d57600080fd5b506102a26004803603602081101561087457600080fd5b50356001600160a01b0316611809565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b600681815481106108b757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606181565b600881565b61200081565b61100581565b6000805460ff16610957576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109975760405162461bcd60e51b815260040180806020018281038252602f815260200180612377602f913960400191505060405180910390fd5b60008215610a4a576110026001600160a01b0316639a99b4f06110056109c8600e548861181b90919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b50519050610b59565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a9457600080fd5b505af1158015610aa8573d6000803e3d6000fd5b505050506040513d6020811015610abe57600080fd5b5051600e5490915015610b5957600e54604080516309a99b4f60e41b81526110056004820152602481019290925251610b569161100291639a99b4f0916044808201926020929091908290030181600087803b158015610b1d57600080fd5b505af1158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b5051829063ffffffff61181b16565b90505b600c805460010190556000610b6d8261187e565b600954909150610b83908263ffffffff61181b16565b600955600a54610bab908290610b9f908563ffffffff61181b16565b9063ffffffff6118a716565b600a556001600160a01b038716600090815260056020526040902054610c1757600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610c9557600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610d8457600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610d0f6118e9565b90506000610d1b611bcd565b6001600160a01b0389166000908152600d6020526040902054909150610d59908290610d4d908563ffffffff61181b16565b9063ffffffff61181b16565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610e295760405162461bcd60e51b815260040180806020018281038252602e8152602001806122bc602e913960400191505060405180910390fd5b60005460ff16610e6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ea6021913960400191505060405180910390fd5b610ede84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611e4b9050565b15610fab5760208114610f225760405162461bcd60e51b81526004018080602001828103825260328152602001806123a66032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610f6091858580838501838280828437600092019190915250611f3292505050565b9050600254811115610fa35760405162461bcd60e51b81526004018080602001828103825260608152602001806121956060913960600191505060405180910390fd5b6001556114a5565b61100484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081019091526022808252909250905061229a6020830139611e4b565b156110dc57602081146110485760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161108691858580838501838280828437600092019190915250611f3292505050565b9050801580159061109957506001548110155b6110d45760405162461bcd60e51b815260040180806020018281038252606c81526020018061230b606c913960800191505060405180910390fd5b6002556114a5565b61115084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611e4b9050565b1561121d57602081146111945760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916111d291858580838501838280828437600092019190915250611f3292505050565b90506004548111156112155760405162461bcd60e51b81526004018080602001828103825260568152602001806121f56056913960600191505060405180910390fd5b6003556114a5565b61129184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611e4b9050565b1561136957602081146112d55760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161131391858580838501838280828437600092019190915250611f3292505050565b9050801580159061132657506003548110155b6113615760405162461bcd60e51b81526004018080602001828103825260618152602001806121066061913960800191505060405180910390fd5b6004556114a5565b6113dd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f64796e616d69634578747261496e63656e74697665416d6f756e74000000000060208201529150611e4b9050565b1561146857602081146114215760405162461bcd60e51b815260040180806020018281038252602e815260200180612167602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161145f91858580838501838280828437600092019190915250611f3292505050565b600e55506114a5565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161154e575080611593565b81602810801561155f575060508211155b1561156c57506028611593565b60508211801561157d5750606e8211155b1561158d57506078819003611593565b50600481045b919050565b6000602882116115a9575080611593565b506028611593565b61100281565b600e5481565b61100381565b60095481565b60005460ff1615611621576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff161561166f576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d6020526040902054806116f1576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506117a15760405161100290819084156108fc029085906000818181858888f1935050505015801561175b573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506117e8565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b600881815481106108b757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600082820183811015611875576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061187860025461189b60015485611f3790919063ffffffff16565b9063ffffffff611f9016565b600061187583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd2565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561194557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611927575b5050505050905060608151604051908082528060200260200182016040528015611979578160200160208202803683370190505b50905060005b8251811015611a0657600083828151811061199657fe5b6020026020010151905060006119d060056000846001600160a01b03166001600160a01b0316815260200190815260200160002054611598565b9050808484815181106119df57fe5b60209081029190910101526119fa868263ffffffff61181b16565b9550505060010161197f565b506000611a2460045461189b60035488611f3790919063ffffffff16565b9050611a36858263ffffffff6118a716565b94508460015b8451811015611b0d576000611a718761189b8a888681518110611a5b57fe5b6020026020010151611f3790919063ffffffff16565b9050611abe81600d6000898681518110611a8757fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461181b90919063ffffffff16565b600d6000888581518110611ace57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611b02838263ffffffff6118a716565b925050600101611a3c565b50611b2381600d600087600081518110611a8757fe5b600d600086600081518110611b3457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b8451811015611bb55760056000868381518110611b8757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611b6e565b50611bc2600660006120ce565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611c2957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c0b575b5050505050905060608151604051908082528060200260200182016040528015611c5d578160200160208202803683370190505b50905060005b8251811015611cdc576000838281518110611c7a57fe5b602002602001015190506000611cb460076000846001600160a01b03166001600160a01b031681526020019081526020016000205461153d565b905080848481518110611cc357fe5b6020908102919091010152949094019350600101611c63565b506000611cfa60045461189b60035488611f3790919063ffffffff16565b9050611d0c858263ffffffff6118a716565b94508460015b8451811015611d96576000611d318761189b8a888681518110611a5b57fe5b9050611d4781600d6000898681518110611a8757fe5b600d6000888581518110611d5757fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611d8b838263ffffffff6118a716565b925050600101611d12565b50611dac81600d600087600081518110611a8757fe5b600d600086600081518110611dbd57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611e3e5760076000868381518110611e1057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611df7565b50611bc2600860006120ce565b6000816040516020018082805190602001908083835b60208310611e805780518252601f199092019160209182019101611e61565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611f4657506000611878565b82820282848281611f5357fe5b04146118755760405162461bcd60e51b81526004018080602001828103825260218152602001806122796021913960400191505060405180910390fd5b600061187583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612069565b600081848411156120615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202657818101518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836120b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561202657818101518382015260200161200e565b5060008385816120c457fe5b0495945050505050565b50805460008255906000526020600020908101906117e89190611bca91905b8082111561210157600081556001016120ed565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656c656e677468206f662064796e616d69634578747261496e63656e74697665416d6f756e74206d69736d617463686e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220627dba6e536686005f0eaa9f77c130ba330278d37049b690a78442862109871c64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/mirror/chapel/TokenHubContract b/core/systemcontracts/mirror/chapel/TokenHubContract new file mode 100644 index 0000000000..71b3f459df --- /dev/null +++ b/core/systemcontracts/mirror/chapel/TokenHubContract @@ -0,0 +1 @@ +60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e590814610996578063fd6a687914610ce6578063ff9c00271461068657610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063d9e6dae9116100d1578063d9e6dae914610608578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610ad2578063b9fd21e314610b0b578063ba35ead614610b20578063bbface1f14610b3557610366565b8063aa7415f5146109ab578063ab51bb96146109f2578063ac43175114610a0757610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a78abc1614610981578063a7c9f02d1461099657610366565b8063613684751161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105875780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b8063613684751461060857806366dea52a146106865780636e0565201461069b5780636e47b482146107c757806370fd5bad1461068657806371d30863146107dc57610366565b806343a368b9116102d757806350432d32116102b157806350432d321461061d57806351e806721461063257806359b92789146106475780635d499b1b1461067157610366565b806343a368b9146105c7578063493279b1146105dc5780634bf6c8821461060857610366565b80630bee7a671461036b5780631182b87514610399578063149d14d9146104935780633d713223146104ba5780633dffc3871461058757806343756e5c146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805163ffffffff9092168252519081900360200190f35b3480156103a557600080fd5b5061041e600480360360408110156103bc57600080fd5b60ff8235169190810190604081016020820135600160201b8111156103e057600080fd5b8201836020820111156103f257600080fd5b803590602001918460018302840111600160201b8311171561041357600080fd5b509092509050610d00565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610458578181015183820152602001610440565b50505050905090810190601f1680156104855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049f57600080fd5b506104a8610e2e565b60408051918252519081900360200190f35b3480156104c657600080fd5b5061056b600480360360208110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e34945050505050565b604080516001600160a01b039092168252519081900360200190f35b34801561059357600080fd5b5061059c610e58565b6040805160ff9092168252519081900360200190f35b3480156105be57600080fd5b5061056b610e5d565b3480156105d357600080fd5b506104a8610e63565b3480156105e857600080fd5b506105f1610e6f565b6040805161ffff9092168252519081900360200190f35b34801561061457600080fd5b5061059c610e74565b34801561062957600080fd5b506104a8610e79565b34801561063e57600080fd5b5061056b610e84565b34801561065357600080fd5b5061056b6004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104a8610ea5565b34801561069257600080fd5b5061059c610eae565b6107b3600480360360808110156106b157600080fd5b810190602081018135600160201b8111156106cb57600080fd5b8201836020820111156106dd57600080fd5b803590602001918460208302840111600160201b831117156106fe57600080fd5b919390929091602081019035600160201b81111561071b57600080fd5b82018360208201111561072d57600080fd5b803590602001918460208302840111600160201b8311171561074e57600080fd5b919390929091602081019035600160201b81111561076b57600080fd5b82018360208201111561077d57600080fd5b803590602001918460208302840111600160201b8311171561079e57600080fd5b91935091503567ffffffffffffffff16610eb3565b604080519115158252519081900360200190f35b3480156107d357600080fd5b5061056b611388565b3480156107e857600080fd5b506104a861138e565b3480156107fd57600080fd5b5061056b611394565b34801561081257600080fd5b5061059c61139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061059c61156e565b34801561090057600080fd5b506104a8611573565b34801561091557600080fd5b506104a86004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b5061056b6116bd565b34801561096357600080fd5b5061056b6116c3565b34801561097857600080fd5b5061059c6116c9565b34801561098d57600080fd5b506107b36116ce565b3480156109a257600080fd5b5061059c6116d7565b6107b3600480360360808110156109c157600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116dc565b3480156109fe57600080fd5b506103806116c9565b348015610a1357600080fd5b5061036460048036036040811015610a2a57600080fd5b810190602081018135600160201b811115610a4457600080fd5b820183602082011115610a5657600080fd5b803590602001918460018302840111600160201b83111715610a7757600080fd5b919390929091602081019035600160201b811115610a9457600080fd5b820183602082011115610aa657600080fd5b803590602001918460018302840111600160201b83111715610ac757600080fd5b509092509050611d9d565b348015610ade57600080fd5b5061036460048036036040811015610af557600080fd5b50803590602001356001600160a01b031661200c565b348015610b1757600080fd5b506104a8612082565b348015610b2c57600080fd5b506104a861208c565b348015610b4157600080fd5b506104a860048036036020811015610b5857600080fd5b50356001600160a01b0316612092565b348015610b7457600080fd5b506104a860048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b5061056b6120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b5061056b612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061059c61223b565b348015610c8057600080fd5b5061059c612240565b348015610c9557600080fd5b5061056b612245565b348015610caa57600080fd5b506104a861224b565b348015610cbf57600080fd5b5061041e60048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b5061056b612378565b606481565b60005460609060ff16610d48576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b3361200014610d885760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff841660021415610dda57610dd383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e27565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610ef9576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b868514610f375760405162461bcd60e51b815260040180806020018281038252603b81526020018061471b603b913960400191505060405180910390fd5b868314610f755760405162461bcd60e51b815260040180806020018281038252603f8152602001806145ee603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fc15760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156110055760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611038578160200160208202803683370190505b50905060005b84811015611113576402540be4008b8b8381811061105857fe5b905060200201358161106657fe5b06156110a35760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6110c88b8b838181106110b257fe5b90506020020135856124a290919063ffffffff16565b93506110f46402540be4008c8c848181106110df57fe5b905060200201356124fc90919063ffffffff16565b82828151811061110057fe5b602090810291909101015260010161103e565b506001546111389061112b908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111765760405162461bcd60e51b81526004018080602001828103825260568152602001806147c86056913960600191505060405180910390fd5b611186348463ffffffff61259716565b9150611190614337565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d76003611254846125d9565b611269876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c75781810151838201526020016112af565b50505050905090810190601f1680156112f45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614451602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611722576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561176e5760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156117b25760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b600080806001600160a01b038816611891576001546117d890879063ffffffff6124a216565b3410156118165760405162461bcd60e51b81526004018080602001828103825260618152602001806145686061913960800191505060405180910390fd5b6402540be40086061561185a5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b61186a348763ffffffff61259716565b9050611881866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b34565b6001600160a01b0388166000908152600360205260409020549250826118e85760405162461bcd60e51b81526004018080602001828103825260318152602001806145376031913960400191505060405180910390fd5b6001543410156119295760405162461bcd60e51b815260040180806020018281038252603f81526020018061468a603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061197457506008811180156119745750611972876007198301600a0a63ffffffff6128f016565b155b6119af5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6119b98782612932565b92506119c484612972565b15611a0c576305f5e100831015611a0c5760405162461bcd60e51b815260040180806020018281038252603a815260200180614480603a913960400191505060405180910390fd5b600881101580611a265750600881108015611a2657508683115b611a615760405162461bcd60e51b81526004018080602001828103825260258152602001806145c96025913960400191505060405180910390fd5b677ce66c50e2840000831115611aa85760405162461bcd60e51b81526004018080602001828103825260358152602001806145026035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b5051611b3257600080fd5b505b611b3c614337565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bea57fe5b602002602001018181525050878160600151600081518110611c0857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c3a57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c65846125d9565b611c7a866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cd8578181015183820152602001611cc0565b50505050905090810190601f168015611d055780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d2657600080fd5b505af1158015611d3a573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611ddd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146c9602e913960400191505060405180910390fd5b60208114611e32576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f3a576020820151670de0b6b3a76400008111801590611ee157506402540be4008106155b611f32576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f77565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461204c5760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b6060612388614383565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143b8565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e53565b50506040805160008152602081019091529150610e539050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146696021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143df565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b81526004018080602001828103825260248152602001806146f76024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600760ff82161015612a0057600092505050610e53565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e53565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e53565b5060019392505050565b612a80614337565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144ba6024913960400191505060405180910390fd5b612ad36143df565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613baf565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e614383565b6000612b88614383565b612b90614416565b612ba1612b9c86613be8565b613c0d565b90506000805b612bb083613c57565b15612ca85780612bd257612bcb612bc684613c78565b613cc6565b8452612ca0565b8060011415612bff57612bec612be784613c78565b613d7d565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c78565b6040850152612ca0565b8060031415612c4657612c33612be784613c78565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c78565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c78565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e53565b8160400151471015612cfc57506003610e53565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e53565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e53565b8160a0015167ffffffffffffffff16421115612e0a57506001610e53565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e53565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e53565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e539050565b5060059150610e539050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2781613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613d97565b613e7d565b60408051600560a21b8318601482015260348101909152606090610e2781613e7d565b60608151600014156132315750604080516000815260208101909152610e53565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ecf565b9150600101613251565b50610e27613294825160c060ff16613f4c565b82613ecf565b6132a26143df565b60006132ac6143df565b6132b4614416565b6132c0612b9c86613be8565b90506000805b6132cf83613c57565b15612ca857806132f5576132e5612be784613c78565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c78565b614044565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cc6565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c78565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d7d565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c78565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b613953614337565b600061395d614337565b613965614416565b613971612b9c86613be8565b90506000805b61398083613c57565b15612ca8578061399d57613996612bc684613c78565b8452613ba7565b80600114156139c5576139b2612be784613c78565b6001600160a01b03166020850152613ba7565b8060021415613a545760606139dc61330c85613c78565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613ba7565b8060031415613ae9576060613a6b61330c85613c78565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c78565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415612c9b57613b93612bc684613c78565b67ffffffffffffffff1660a0850152600191505b600101613977565b60006008821115613bd157612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613bf0614436565b506040805180820190915281518152602082810190820152919050565b613c15614416565b613c1e82614115565b613c2757600080fd5b6000613c368360200151614145565b60208085015160408051808201909152868152920190820152915050919050565b6000613c61614436565b505080518051602091820151919092015191011190565b613c80614436565b613c8982613c57565b613c9257600080fd5b60208201516000613ca2826141a8565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cdb57508151602110155b613ce457600080fd5b6000613cf38360200151614145565b90508083600001511015613d4e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d7457826020036101000a820491505b50949350505050565b8051600090601514613d8e57600080fd5b6116b782613cc6565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613ddb57506018613dff565b6fffffffffffffffffffffffffffffffff198416613dfb57506010613dff565b5060005b6020811015613e3557818181518110613e1457fe5b01602001516001600160f81b03191615613e2d57613e35565b600101613dff565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e6a576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613eaf5750607f60f81b82600081518110613e9d57fe5b01602001516001600160f81b03191611155b15613ebb575080610e53565b6116b7613ecd8351608060ff16613f4c565b835b6060806040519050835180825260208201818101602087015b81831015613f00578051835260209283019201613ee8565b50855184518101855292509050808201602086015b81831015613f2d578051835260209283019201613f15565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613f9c576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ff65782840160f81b81600081518110613fd857fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061400185613d97565b90508381510160370160f81b8260008151811061401a57fe5b60200101906001600160f81b031916908160001a90535061403b8282613ecf565b95945050505050565b606061404f82614115565b61405857600080fd5b6000614063836142db565b90506060816040519080825280602002602001820160405280156140a157816020015b61408e614436565b8152602001906001900390816140865790505b50905060006140b38560200151614145565b60208601510190506000805b8481101561410a576140d0836141a8565b91506040518060400160405280838152602001848152508482815181106140f357fe5b6020908102919091010152918101916001016140bf565b509195945050505050565b805160009061412657506000610e53565b6020820151805160001a9060c0821015612a6e57600092505050610e53565b8051600090811a608081101561415f576000915050610e53565b60b881108061417a575060c0811080159061417a575060f881105b15614189576001915050610e53565b60c081101561419d5760b519019050610e53565b60f519019050610e53565b80516000908190811a60808110156141c357600191506142d4565b60b88110156141d857607e19810191506142d4565b60c081101561425257600060b78203600186019550806020036101000a86510491506001810182019350508083101561424c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142d4565b60f88110156142675760be19810191506142d4565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142d2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906142ec57506000610e53565b600080905060006143008460200151614145565b602085015185519181019250015b8082101561432e5761431f826141a8565b6001909301929091019061430e565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614429614436565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220835eacc2107a8d1718a0f05e56e1f7d7731256afbbcfccbe6551048c3c72819b64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/mirror/chapel/TokenManagerContract b/core/systemcontracts/mirror/chapel/TokenManagerContract new file mode 100644 index 0000000000..ff08599e04 --- /dev/null +++ b/core/systemcontracts/mirror/chapel/TokenManagerContract @@ -0,0 +1 @@ +6080604052600436106103815760003560e01c80637d078e13116101d1578063b795031711610102578063d9e6dae9116100a0578063fa9e91591161006f578063fa9e915914610d38578063fc3e5908146105b2578063fd6a687914610d4d578063fe3a2af514610d6257610381565b8063d9e6dae9146106fc578063dc927faf14610cf9578063e605bca014610d0e578063f9a2bbc714610d2357610381565b8063c8509d81116100dc578063c8509d8114610bdf578063c8e704a4146105b2578063d117a11014610c64578063d7109ce614610ce457610381565b8063b79503171461073b578063bd32d3f9146104d9578063c81b166214610bca57610381565b80639a854bbd1161016f578063a78abc1611610149578063a78abc1614610ad5578063ab51bb9614610aea578063ab67a4851461073b578063ac43175114610aff57610381565b80639a854bbd14610a965780639dc0926214610aab578063a1a11bf514610ac057610381565b8063859180fb116101ab578063859180fb146106e757806394553a4e14610a3757806395b9ad2614610a6c57806396713da914610a8157610381565b80637d078e13146104ee5780637ec816dd1461099b578063831d65d1146109b057610381565b8063493279b1116102b657806366dea52a1161025457806372c4e0861161022357806372c4e0861461081957806375d47a0a146108bd57806377d9dae8146108d25780637942fd051461098657610381565b806366dea52a1461073b5780636b3f1307146107505780636e47b4821461080457806370fd5bad1461073b57610381565b806351e806721161029057806351e80672146107115780635d499b1b146107265780635f558f861461073b57806361368475146106fc57610381565b8063493279b1146106bb5780634bc81c00146106e75780634bf6c882146106fc57610381565b80632e02d77611610323578063401809f9116102fd578063401809f9146105b257806343756e5c146105c7578063445fcefe146105f8578063487c88ac146104ee57610381565b80632e02d7761461054c57806337e6ecda1461057f5780633dffc387146104ee57610381565b80631f91600b1161035f5780631f91600b146104d957806323996b53146104ee57806325c751b7146105035780632d89ac32146104ee57610381565b80630bee7a67146103865780630f212b1b146103b45780631182b875146103df575b600080fd5b34801561039257600080fd5b5061039b610d77565b6040805163ffffffff9092168252519081900360200190f35b3480156103c057600080fd5b506103c9610d7c565b6040805160ff9092168252519081900360200190f35b3480156103eb57600080fd5b506104646004803603604081101561040257600080fd5b60ff8235169190810190604081016020820135600160201b81111561042657600080fd5b82018360208201111561043857600080fd5b803590602001918460018302840111600160201b8311171561045957600080fd5b509092509050610d81565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049e578181015183820152602001610486565b50505050905090810190601f1680156104cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e557600080fd5b506103c9610e9b565b3480156104fa57600080fd5b506103c9610ea0565b6105386004803603604081101561051957600080fd5b5080356001600160a01b031690602001356001600160401b0316610ea5565b604080519115158252519081900360200190f35b34801561055857600080fd5b506105386004803603602081101561056f57600080fd5b50356001600160a01b03166113f1565b34801561058b57600080fd5b50610538600480360360208110156105a257600080fd5b50356001600160a01b0316611406565b3480156105be57600080fd5b506103c961141b565b3480156105d357600080fd5b506105dc611420565b604080516001600160a01b039092168252519081900360200190f35b34801561060457600080fd5b506106a96004803603602081101561061b57600080fd5b810190602081018135600160201b81111561063557600080fd5b82018360208201111561064757600080fd5b803590602001918460018302840111600160201b8311171561066857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611426945050505050565b60408051918252519081900360200190f35b3480156106c757600080fd5b506106d0611584565b6040805161ffff9092168252519081900360200190f35b3480156106f357600080fd5b506103c9611589565b34801561070857600080fd5b506103c961158e565b34801561071d57600080fd5b506105dc611593565b34801561073257600080fd5b506106a9611599565b34801561074757600080fd5b506103c96115a2565b6105386004803603604081101561076657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111600160201b831117156107c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a7945050505050565b34801561081057600080fd5b506105dc611e7d565b6105386004803603602081101561082f57600080fd5b810190602081018135600160201b81111561084957600080fd5b82018360208201111561085b57600080fd5b803590602001918460018302840111600160201b8311171561087c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e83945050505050565b3480156108c957600080fd5b506105dc6122cf565b610538600480360360408110156108e857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460018302840111600160201b8311171561094557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122d5945050505050565b34801561099257600080fd5b506103c96127db565b3480156109a757600080fd5b506106a96127e0565b3480156109bc57600080fd5b50610a35600480360360408110156109d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156109f757600080fd5b820183602082011115610a0957600080fd5b803590602001918460018302840111600160201b83111715610a2a57600080fd5b5090925090506127e6565b005b61053860048036036040811015610a4d57600080fd5b5080356001600160a01b031690602001356001600160401b0316612935565b348015610a7857600080fd5b506103c961332c565b348015610a8d57600080fd5b506103c9613331565b348015610aa257600080fd5b506106a9613336565b348015610ab757600080fd5b506105dc613342565b348015610acc57600080fd5b506105dc613348565b348015610ae157600080fd5b5061053861334e565b348015610af657600080fd5b5061039b613357565b348015610b0b57600080fd5b50610a3560048036036040811015610b2257600080fd5b810190602081018135600160201b811115610b3c57600080fd5b820183602082011115610b4e57600080fd5b803590602001918460018302840111600160201b83111715610b6f57600080fd5b919390929091602081019035600160201b811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b803590602001918460018302840111600160201b83111715610bbf57600080fd5b50909250905061335c565b348015610bd657600080fd5b506105dc613631565b348015610beb57600080fd5b50610a3560048036036040811015610c0257600080fd5b60ff8235169190810190604081016020820135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b509092509050613637565b348015610c7057600080fd5b50610c8e60048036036020811015610c8757600080fd5b503561370d565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a08301526001600160401b0390921660c082015290519081900360e00190f35b348015610cf057600080fd5b506106a9613764565b348015610d0557600080fd5b506105dc613769565b348015610d1a57600080fd5b506106a961376f565b348015610d2f57600080fd5b506105dc613775565b348015610d4457600080fd5b506106a961377b565b348015610d5957600080fd5b506105dc613781565b348015610d6e57600080fd5b506103c9613357565b606481565b600681565b60603361200014610dc35760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff841660011415610e1557610e0e83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378792505050565b9050610e94565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605848484604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1506040805160008152602081019091525b9392505050565b600481565b600181565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b5051905080610f5e576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205460ff16610fc1576040805162461bcd60e51b81526020600482015260136024820152723737ba103137bab73210313c9036b4b93937b960691b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffe57600080fd5b505afa158015611012573d6000803e3d6000fd5b505050506040513d602081101561102857600080fd5b505190506402540be4003406158015611053575060055461104f908263ffffffff613a1716565b3410155b61108e5760405162461bcd60e51b8152600401808060200182810382526046815260200180615b156046913960600191505060405180910390fd5b42607801846001600160401b0316101580156110b85750426201518001846001600160401b031611155b6110f35760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d602081101561115857600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0389169163313ce567916004808301926020929190829003018186803b1580156111a057600080fd5b505afa1580156111b4573d6000803e3d6000fd5b505050506040513d60208110156111ca57600080fd5b50519050677ce66c50e28400006111e48360ff8416613a71565b1115611230576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b600554611004906108fc9061124c90349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015611274573d6000803e3d6000fd5b5061127d615869565b6040518060c00160405280336001600160a01b03168152602001896001600160a01b031681526020018681526020018481526020016112cc6402540be400600554613b4290919063ffffffff16565b81526001600160401b038916602090910152905061200063f7a251d760056112f384613b84565b61131d6402540be40061131160055434613b0090919063ffffffff16565b9063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137b578181015183820152602001611363565b50505050905090810190601f1680156113a85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c957600080fd5b505af11580156113dd573d6000803e3d6000fd5b505050506001955050505050505b92915050565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b600381565b61100181565b602081015160009061143661589e565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a08201526101009091046001600160401b031660c0820152906114bd5760009250505061157f565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561151b57600080fd5b505afa15801561152f573d6000803e3d6000fd5b505050506040513d602081101561154557600080fd5b5051608083015160608401519192506000916115669163ffffffff613b0016565b9050611578818363ffffffff613b0016565b9450505050505b919050565b606181565b600581565b600881565b61200081565b6402540be40081565b600281565b6001600160a01b03821660009081526002602052604081205460ff16156115ff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615bb8602b913960400191505060405180910390fd5b600061160a83613cb9565b905061161461589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526116d9576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b60006116f682608001518360600151613b0090919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b03161461174c5760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d60208110156117b957600080fd5b50516001600160a01b0316146118005760405162461bcd60e51b815260040180806020018281038252602e8152602001806159e4602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d602081101561187657600080fd5b505160408051636eb1769f60e11b8152336004820152306024820152905191925083916119079184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d60208110156118f957600080fd5b50519063ffffffff613a1716565b101561195a576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561199c57600080fd5b505afa1580156119b0573d6000803e3d6000fd5b505050506040513d60208110156119c657600080fd5b505190508082108015906119df57506402540be4008206155b611a1a5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b6000611a26868b613cc0565b905063ffffffff8116611c25576001600160a01b038a166323b872dd33611004611a56898963ffffffff613b0016565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050506040513d6020811015611ae857600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611be4578181015183820152602001611bcc565b50505050905090810190601f168015611c115780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2611cdd565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611ca1578181015183820152602001611c89565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611d376158da565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611d7f573d6000803e3d6000fd5b5061200063f7a251d76001611d938461411a565b611da8886402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e06578181015183820152602001611dee565b50505050905090810190601f168015611e335780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b61100581565b600080611e8f83613cb9565b9050611e9961589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c0830152611f5e576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c001516001600160401b031610611fbf576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b5051905080821080159061204457506402540be4008206155b61207f5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556120d96158da565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561211c573d6000803e3d6000fd5b5061200063f7a251d760016121308461411a565b612145876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a357818101518382015260200161218b565b50505050905090810190601f1680156121d05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156121f157600080fd5b505af1158015612205573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561228757818101518382015260200161226f565b50505050905090810190601f1680156122b45780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806122e183613cb9565b90506122eb61589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526123b0576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146124045760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d602081101561247157600080fd5b50516001600160a01b0316146124ce576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703230206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b5051905080821080159061255357506402540be4008206155b61258e5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556125e86158da565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561262b573d6000803e3d6000fd5b5061200063f7a251d7600161263f8461411a565b612654876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156126b257818101518382015260200161269a565b50505050905090810190601f1680156126df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561270057600080fd5b505af1158015612714573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561279257818101518382015260200161277a565b50505050905090810190601f1680156127bf5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b60045481565b33612000146128265760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156128765761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061419092505050565b612930565b60ff8316600514156128c15761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061443d92505050565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b15801561298257600080fd5b505afa158015612996573d6000803e3d6000fd5b505050506040513d60208110156129ac57600080fd5b5051146129f0576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e48189bdd5b99609a1b604482015290519081900360640190fd5b6001600160a01b03831660009081526002602052604090205460ff1615612a4f576040805162461bcd60e51b815260206004820152600e60248201526d6d6972726f722070656e64696e6760901b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8c57600080fd5b505afa158015612aa0573d6000803e3d6000fd5b505050506040513d6020811015612ab657600080fd5b505190506402540be4003406158015612ae15750600454612add908263ffffffff613a1716565b3410155b612b1c5760405162461bcd60e51b815260040180806020018281038252604d815260200180615997604d913960600191505060405180910390fd5b42607801836001600160401b031610158015612b465750426201518001836001600160401b031611155b612b815760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612bbc57600080fd5b505afa158015612bd0573d6000803e3d6000fd5b505050506040513d6020811015612be657600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038816916318160ddd916004808301926020929190829003018186803b158015612c2e57600080fd5b505afa158015612c42573d6000803e3d6000fd5b505050506040513d6020811015612c5857600080fd5b50519050677ce66c50e2840000612c728260ff8516613a71565b1115612cbe576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b6060866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612cf957600080fd5b505afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612d3657600080fd5b8101908080516040519392919084600160201b821115612d5557600080fd5b908301906020820185811115612d6a57600080fd5b8251600160201b811182820188101715612d8357600080fd5b82525081516020918201929091019080838360005b83811015612db0578181015183820152602001612d98565b50505050905090810190601f168015612ddd5780820380516001836020036101000a031916815260200191505b50604052505050905060608190506001815110158015612dff57506020815111155b612e50576040805162461bcd60e51b815260206004820152601d60248201527f6e616d65206c656e677468206d75737420626520696e205b312c33325d000000604482015290519081900360640190fd5b6060886001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e8b57600080fd5b505afa158015612e9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ec857600080fd5b8101908080516040519392919084600160201b821115612ee757600080fd5b908301906020820185811115612efc57600080fd5b8251600160201b811182820188101715612f1557600080fd5b82525081516020918201929091019080838360005b83811015612f42578181015183820152602001612f2a565b50505050905090810190601f168015612f6f5780820380516001836020036101000a031916815260200191505b5060405250508151919250829160021180159150612f8f57508051600810155b612fe0576040805162461bcd60e51b815260206004820152601e60248201527f73796d626f6c206c656e677468206d75737420626520696e205b322c385d0000604482015290519081900360640190fd5b60005b81518160ff16101561313457604160f81b828260ff168151811061300357fe5b01602001516001600160f81b031916108015906130415750602d60f91b828260ff168151811061302f57fe5b01602001516001600160f81b03191611155b806130995750606160f81b828260ff168151811061305b57fe5b01602001516001600160f81b031916108015906130995750603d60f91b828260ff168151811061308757fe5b01602001516001600160f81b03191611155b806130f15750600360fc1b828260ff16815181106130b357fe5b01602001516001600160f81b031916108015906130f15750603960f81b828260ff16815181106130df57fe5b01602001516001600160f81b03191611155b61312c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615ac6602e913960400191505060405180910390fd5b600101612fe3565b50600454611004906108fc9061315190349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015613179573d6000803e3d6000fd5b506001600160a01b038a166000908152600260209081526040909120805460ff1916600117905584810151908301516131b06158f1565b604051806101000160405280336001600160a01b031681526020018e6001600160a01b031681526020018481526020018381526020018981526020018a60ff16815260200161320f6402540be400600454613b4290919063ffffffff16565b81526001600160401b038e16602090910152905061200063f7a251d7600461323684614608565b6132546402540be40061131160045434613b0090919063ffffffff16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156132b257818101518382015260200161329a565b50505050905090810190601f1680156132df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561330057600080fd5b505af1158015613314573d6000803e3d6000fd5b5050505060019a505050505050505050505092915050565b600781565b600981565b677ce66c50e284000081565b61100781565b61100681565b60005460ff1681565b600081565b336110071461339c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615b5b602e913960400191505060405180910390fd5b602081146133f1576040805162461bcd60e51b815260206004820152601860248201527f65787065637465642076616c7565206c656e6774682033320000000000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f880181900481028201810190925286815293945060609392508691508590819084018382808284376000920191909152505050506020830151909150686d6972726f7246656560b81b8114156134e65760208201516402540be4008106156134de576040805162461bcd60e51b815260206004820152601a60248201527f6d6972726f72466565206d757374206265204e202a2031653130000000000000604482015290519081900360640190fd5b60045561359c565b6673796e6346656560c81b81141561355f5760208201516402540be400810615613557576040805162461bcd60e51b815260206004820152601860248201527f73796e63466565206d757374206265204e202a20316531300000000000000000604482015290519081900360640190fd5b60055561359c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61100281565b33612000146136775760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156136c25761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061477a92505050565b60ff8316600514156128c15761287182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506148b992505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b039093169391929181169061010090046001600160401b031687565b604d81565b61100381565b60055481565b61100081565b61271081565b61100481565b606061379161589e565b600061379c846149b3565b91509150806137f2576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff166138a5576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff0019166101006001600160401b03909216919091021790556139fc565b815160ff16600114156139af5760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156138fe57600080fd5b505afa158015613912573d6000803e3d6000fd5b505050506040513d602081101561392857600080fd5b505190506001600160a01b038116156139a95760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561399057600080fd5b505af11580156139a4573d6000803e3d6000fd5b505050505b506139fc565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b600082820183811015610e94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006008821115613ae957604d60071983011115613acb576040805162461bcd60e51b8152602060048201526012602482015271746f6f206c6172676520646563696d616c7360701b604482015290519081900360640190fd5b613ae2836007198401600a0a63ffffffff613b4216565b90506113eb565b610e94836008849003600a0a63ffffffff614b0416565b6000610e9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614b5d565b6000610e9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614bf4565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613b9f5750508351909150613bca906001600160a01b0316614c59565b81600081518110613bd757fe5b6020026020010181905250613bf883602001516001600160a01b0316614c59565b81600181518110613c0557fe5b6020026020010181905250613c20836040015160001c614c7c565b81600281518110613c2d57fe5b6020026020010181905250613c458360600151614c7c565b81600381518110613c5257fe5b6020026020010181905250613c6a8360800151614c7c565b81600481518110613c7757fe5b6020026020010181905250613c988360a001516001600160401b0316614c7c565b81600581518110613ca557fe5b6020026020010181905250610e9481614c8f565b6020015190565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613cfc57600080fd5b505afa158015613d10573d6000803e3d6000fd5b505050506040513d6020811015613d2657600080fd5b5051604080516395d89b4160e01b8152905160ff90921692506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b158015613d7257600080fd5b505afa158015613d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613daf57600080fd5b8101908080516040519392919084600160201b821115613dce57600080fd5b908301906020820185811115613de357600080fd5b8251600160201b811182820188101715613dfc57600080fd5b82525081516020918201929091019080838360005b83811015613e29578181015183820152602001613e11565b50505050905090810190601f168015613e565780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b158015613ea657600080fd5b505afa158015613eba573d6000803e3d6000fd5b505050506040513d6020811015613ed057600080fd5b505160808701516060880151919250600091613ef19163ffffffff613b0016565b9050428760c001516001600160401b03161015613f165750600193506113eb92505050565b613f24838860200151614d19565b613f365750600293506113eb92505050565b80821115613f4c5750600393506113eb92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8e57600080fd5b505afa158015613fa2573d6000803e3d6000fd5b505050506040513d6020811015613fb857600080fd5b505114613fcd5750600493506113eb92505050565b8660a0015160ff168414613fe95750600593506113eb92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b15801561402e57600080fd5b505afa158015614042573d6000803e3d6000fd5b505050506040513d602081101561405857600080fd5b50516001600160a01b03161415806140fa57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156140cb57600080fd5b505afa1580156140df573d6000803e3d6000fd5b505050506040513d60208110156140f557600080fd5b505114155b1561410d5750600693506113eb92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081614133575050835190915061415b9063ffffffff16614c7c565b8160008151811061416857fe5b6020026020010181905250614183836020015160001c614c7c565b81600181518110613ca557fe5b614198615869565b60006141a383614e01565b91509150806141f0576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b03166000908152600290915260409020805460ff1916905560a082015160ff166143515760808201516040516110049180156108fc02916000818181858888f19350505050158015614253573d6000803e3d6000fd5b506110046001600160a01b0316638eff336c8360600151846020015185604001516040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018260ff1681526020019350505050600060405180830381600087803b1580156142cd57600080fd5b505af11580156142e1573d6000803e3d6000fd5b50505050602082810180516001600160a01b03908116600090815260038452604090819020805460ff1916600117905591516060860151835190815292519116927f41787d7db08fc5907641ee8343379f28215727eb123d4b462099afab4300b036928290030190a2505061443a565b815160808301516040516000926001600160a01b0316916127109184818181858888f193505050503d80600081146143a5576040519150601f19603f3d011682016040523d82523d6000602084013e6143aa565b606091505b50509050806143e75760808301516040516110029180156108fc02916000818181858888f193505050501580156143e5573d6000803e3d6000fd5b505b82602001516001600160a01b03167fefe400ad0042ebf81a245de9ae669616105e0ca9fc946352c085da0c2bc524e58460a00151604051808260ff1660ff16815260200191505060405180910390a25050505b50565b614445615935565b600061445083614f0e565b915091508061449d576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b606082015160ff1661451d5760408083015190516110049180156108fc02916000818181858888f193505050501580156144db573d6000803e3d6000fd5b5081602001516001600160a01b03167fbb7d3a9a559080d8281b0e4fb39dacbe2fdcafd5ef765e9a6ed871c9167dc60f60405160405180910390a2505061443a565b81602001516001600160a01b03167ff1e25fa536da84053644fd788b1d6a27ea6edd1f3af80c7d36ca253c4c82c9c38360600151604051808260ff1660ff16815260200191505060405180910390a2815160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d80600081146145c0576040519150601f19603f3d011682016040523d82523d6000602084013e6145c5565b606091505b50509050806146025760408084015190516110029180156108fc02916000818181858888f19350505050158015614600573d6000803e3d6000fd5b505b50505050565b6040805160088082526101208201909252606091829190816020015b6060815260200190600190039081614624575050835190915061464f906001600160a01b0316614c59565b8160008151811061465c57fe5b602002602001018190525061467d83602001516001600160a01b0316614c59565b8160018151811061468a57fe5b60200260200101819052506146a5836040015160001c614c7c565b816002815181106146b257fe5b60200260200101819052506146cd836060015160001c614c7c565b816003815181106146da57fe5b60200260200101819052506146f28360800151614c7c565b816004815181106146ff57fe5b602002602001018190525061471a8360a0015160ff16614c7c565b8160058151811061472757fe5b602002602001018190525061473f8360c00151614c7c565b8160068151811061474c57fe5b602002602001018190525061476d8360e001516001600160401b0316614c7c565b81600781518110613ca557fe5b6147826158f1565b600061478d83614fda565b91509150806147da576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b039081166000908152600290925260408220805460ff19169055835160c085015191169061271090614824906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614861576040519150601f19603f3d011682016040523d82523d6000602084013e614866565b606091505b50509050806146025760c0830151611002906108fc90614891906402540be40063ffffffff614b0416565b6040518115909202916000818181858888f19350505050158015614600573d6000803e3d6000fd5b6148c1615869565b60006148cc8361512b565b9150915080614919576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b815160808301516000916001600160a01b03169061271090614946906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614983576040519150601f19603f3d011682016040523d82523d6000602084013e614988565b606091505b5050905080614602576080830151611002906108fc90614891906402540be40063ffffffff614b0416565b6149bb61589e565b60006149c561589e565b6149cd61595c565b6149de6149d98661523b565b615260565b90506000805b6149ed836152aa565b15614af75780614a1257614a08614a03846152cb565b615319565b60ff168452614aef565b8060011415614a3157614a27614a03846152cb565b6020850152614aef565b8060021415614a5e57614a4b614a46846152cb565b6153ce565b6001600160a01b03166040850152614aef565b8060031415614a7d57614a73614a03846152cb565b6060850152614aef565b8060041415614a9c57614a92614a03846152cb565b6080850152614aef565b8060051415614abe57614ab1614a03846152cb565b60ff1660a0850152614aef565b8060061415614aea57614ad3614a03846152cb565b6001600160401b031660c085015260019150614aef565b614af7565b6001016149e4565b5091935090915050915091565b600082614b13575060006113eb565b82820282848281614b2057fe5b0414610e945760405162461bcd60e51b8152600401808060200182810382526021815260200180615af46021913960400191505060405180910390fd5b60008184841115614bec5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb1578181015183820152602001614b99565b50505050905090810190601f168015614bde5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614c435760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614bb1578181015183820152602001614b99565b506000838581614c4f57fe5b0495945050505050565b60408051600560a21b8318601482015260348101909152606090610e94816153e8565b60606113eb614c8a8361543e565b6153e8565b6060815160001415614cb0575060408051600081526020810190915261157f565b606082600081518110614cbf57fe5b602002602001015190506000600190505b8351811015614d0057614cf682858381518110614ce957fe5b6020026020010151615524565b9150600101614cd0565b50610e94614d13825160c060ff166155a1565b82615524565b8151600090839060081080614d2f575080516002115b15614d3e5760009150506113eb565b60408051602080825281830190925260609160208201818036833701905050905083602082015280825181518110614d7257fe5b6020910101516001600160f81b031916602d60f81b14614d97576000925050506113eb565b600160005b8351811015614df757828181518110614db157fe5b602001015160f81c60f81b6001600160f81b031916848281518110614dd257fe5b01602001516001600160f81b03191614614def5760009150614df7565b600101614d9c565b5095945050505050565b614e09615869565b6000614e13615869565b614e1b61595c565b614e276149d98661523b565b90506000805b614e36836152aa565b15614af75780614e5c57614e4c614a46846152cb565b6001600160a01b03168452614f06565b8060011415614e8457614e71614a46846152cb565b6001600160a01b03166020850152614f06565b8060021415614ea657614e99614a03846152cb565b60ff166040850152614f06565b8060031415614ec557614ebb614a03846152cb565b6060850152614f06565b8060041415614ee457614eda614a03846152cb565b6080850152614f06565b8060051415614aea57614ef9614a03846152cb565b60ff1660a0850152600191505b600101614e2d565b614f16615935565b6000614f20615935565b614f2861595c565b614f346149d98661523b565b90506000805b614f43836152aa565b15614af75780614f6957614f59614a46846152cb565b6001600160a01b03168452614fd2565b8060011415614f9157614f7e614a46846152cb565b6001600160a01b03166020850152614fd2565b8060021415614fb057614fa6614a03846152cb565b6040850152614fd2565b8060031415614aea57614fc5614a03846152cb565b60ff166060850152600191505b600101614f3a565b614fe26158f1565b6000614fec6158f1565b614ff461595c565b6150006149d98661523b565b90506000805b61500f836152aa565b15614af7578061503557615025614a46846152cb565b6001600160a01b03168452615123565b806001141561505d5761504a614a46846152cb565b6001600160a01b03166020850152615123565b806002141561507c57615072614a03846152cb565b6040850152615123565b806003141561509b57615091614a03846152cb565b6060850152615123565b80600414156150ba576150b0614a03846152cb565b6080850152615123565b80600514156150dc576150cf614a03846152cb565b60ff1660a0850152615123565b80600614156150fb576150f1614a03846152cb565b60c0850152615123565b8060071415614aea57615110614a03846152cb565b6001600160401b031660e0850152600191505b600101615006565b615133615869565b600061513d615869565b61514561595c565b6151516149d98661523b565b90506000805b615160836152aa565b15614af7578061518657615176614a46846152cb565b6001600160a01b03168452615233565b80600114156151ae5761519b614a46846152cb565b6001600160a01b03166020850152615233565b80600214156151cd576151c3614a03846152cb565b6040850152615233565b80600314156151ec576151e2614a03846152cb565b6060850152615233565b806004141561520b57615201614a03846152cb565b6080850152615233565b8060051415614aea57615220614a03846152cb565b6001600160401b031660a0850152600191505b600101615157565b61524361597c565b506040805180820190915281518152602082810190820152919050565b61526861595c565b61527182615699565b61527a57600080fd5b600061528983602001516156d3565b60208085015160408051808201909152868152920190820152915050919050565b60006152b461597c565b505080518051602091820151919092015191011190565b6152d361597c565b6152dc826152aa565b6152e557600080fd5b602082015160006152f582615736565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061532e57508151602110155b61533757600080fd5b600061534683602001516156d3565b905080836000015110156153a1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613a0e57506020919091036101000a90049392505050565b80516000906015146153df57600080fd5b6113eb82615319565b60608151600114801561541a5750607f60f81b8260008151811061540857fe5b01602001516001600160f81b03191611155b1561542657508061157f565b6113eb6154388351608060ff166155a1565b83615524565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615482575060186154a6565b6fffffffffffffffffffffffffffffffff1984166154a2575060106154a6565b5060005b60208110156154dc578181815181106154bb57fe5b01602001516001600160f81b031916156154d4576154dc565b6001016154a6565b60008160200390506060816040519080825280601f01601f191660200182016040528015615511576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561555557805183526020928301920161553d565b50855184518101855292509050808201602086015b8183101561558257805183526020928301920161556a565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106155f1576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161564b5782840160f81b8160008151811061562d57fe5b60200101906001600160f81b031916908160001a90535090506113eb565b60606156568561543e565b90508381510160370160f81b8260008151811061566f57fe5b60200101906001600160f81b031916908160001a9053506156908282615524565b95945050505050565b80516000906156aa5750600061157f565b6020820151805160001a9060c08210156156c95760009250505061157f565b5060019392505050565b8051600090811a60808110156156ed57600091505061157f565b60b8811080615708575060c08110801590615708575060f881105b1561571757600191505061157f565b60c081101561572b5760b51901905061157f565b60f51901905061157f565b80516000908190811a60808110156157515760019150615862565b60b881101561576657607e1981019150615862565b60c08110156157e057600060b78203600186019550806020036101000a8651049150600181018201935050808310156157da576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615862565b60f88110156157f55760be1981019150615862565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615860576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528061596f61597c565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6d73672e76616c7565206d757374206265204e202a203165313020616e642067726561746572207468616e2073756d206f66206d696e6952656c617946656520616e64206d6972726f724665656f6e6c79206265703230206f776e65722063616e20617070726f766520746869732062696e64207265717565737465787069726554696d65206d7573742062652074776f206d696e75746573206c6174657220616e64206f6e6520646179206561726c69657272656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e64207265717565737473796d626f6c2073686f756c64206f6e6c7920636f6e7461696e20616c70686162657420616e64206e756d626572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e76616c7565206d757374206265204e202a203165313020616e64206e6f206c6573732073756d206f66206d696e6952656c617946656520616e642073796e63466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e747261637474686520626570323020746f6b656e20697320696e206d6972726f722070656e64696e6720737461747573a2646970667358221220d5a978e7f66cfd1df68dce9198b278a4a761278f29fe7aab4682c9ea36b909d264736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/mirror/mainnet/RelayerIncentivizeContract b/core/systemcontracts/mirror/mainnet/RelayerIncentivizeContract new file mode 100644 index 0000000000..abde5bea95 --- /dev/null +++ b/core/systemcontracts/mirror/mainnet/RelayerIncentivizeContract @@ -0,0 +1 @@ +6080604052600436106102815760003560e01c8063930e1b091161014f578063bd4cc830116100c1578063e75d72c71161007a578063e75d72c7146107b5578063e89a3020146107e8578063f9a2bbc714610812578063fc3e590814610827578063fd6a68791461083c578063fdd31fcd1461085157610288565b8063bd4cc83014610722578063c81b16621461074c578063d0ab528a14610761578063dc927faf14610776578063dcae76ab1461078b578063e1c7392a146107a057610288565b8063a78abc1611610113578063a78abc16146105d3578063a7c6a59d146105e8578063ab51bb96146105fd578063ac43175114610612578063ace9fcc2146106e3578063af400681146106f857610288565b8063930e1b091461054c57806396713da91461057f5780639dc0926214610594578063a1a11bf5146105a9578063a3c3c0ad146105be57610288565b806343756e5c116101f35780636f93d2e6116101ac5780636f93d2e61461048457806370fd5bad146104e357806374f2272d146104f857806375d47a0a1461050d5780637942fd05146105225780637e146cc51461053757610288565b806343756e5c146103ef578063493279b1146104045780634bf6c8821461043057806351e8067214610445578063541333071461045a5780636e47b4821461046f57610288565b806312950c461161024557806312950c46146103215780631b20087c146103365780631c6433121461034b5780633a9756121461028d5780633dffc3871461039157806340bb43c0146103bc57610288565b8063081e9d131461028d57806308f2ec06146102b4578063093f2fc4146102c95780630bee7a67146102de57806310e06a761461030c57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610884565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102a2610889565b3480156102d557600080fd5b506102a261088e565b3480156102ea57600080fd5b506102f3610893565b6040805163ffffffff9092168252519081900360200190f35b34801561031857600080fd5b506102a2610898565b34801561032d57600080fd5b506102a261089e565b34801561034257600080fd5b506102a26108a4565b34801561035757600080fd5b506103756004803603602081101561036e57600080fd5b50356108aa565b604080516001600160a01b039092168252519081900360200190f35b34801561039d57600080fd5b506103a6610884565b6040805160ff9092168252519081900360200190f35b3480156103c857600080fd5b506102a2600480360360208110156103df57600080fd5b50356001600160a01b03166108d1565b3480156103fb57600080fd5b506103756108e3565b34801561041057600080fd5b506104196108e9565b6040805161ffff9092168252519081900360200190f35b34801561043c57600080fd5b506103a66108ee565b34801561045157600080fd5b506103756108f3565b34801561046657600080fd5b506102a2610893565b34801561047b57600080fd5b506103756108f9565b34801561049057600080fd5b506104cf600480360360808110156104a757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108ff565b604080519115158252519081900360200190f35b3480156104ef57600080fd5b506103a6610d91565b34801561050457600080fd5b506102a2610d96565b34801561051957600080fd5b50610375610d9c565b34801561052e57600080fd5b506103a6610da2565b34801561054357600080fd5b506102a2610da7565b34801561055857600080fd5b506102a26004803603602081101561056f57600080fd5b50356001600160a01b0316610dac565b34801561058b57600080fd5b506103a6610dbe565b3480156105a057600080fd5b50610375610dc3565b3480156105b557600080fd5b50610375610dc9565b3480156105ca57600080fd5b506102a2610dcf565b3480156105df57600080fd5b506104cf610dd5565b3480156105f457600080fd5b506102a2610dde565b34801561060957600080fd5b506102f3610de4565b34801561061e57600080fd5b506106e16004803603604081101561063557600080fd5b81019060208101813564010000000081111561065057600080fd5b82018360208201111561066257600080fd5b8035906020019184600183028401116401000000008311171561068457600080fd5b9193909290916020810190356401000000008111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111640100000000831117156106d657600080fd5b509092509050610de9565b005b3480156106ef57600080fd5b506102a2611537565b34801561070457600080fd5b506102a26004803603602081101561071b57600080fd5b503561153d565b34801561072e57600080fd5b506102a26004803603602081101561074557600080fd5b5035611598565b34801561075857600080fd5b506103756115b1565b34801561076d57600080fd5b506102a26115b7565b34801561078257600080fd5b506103756115bd565b34801561079757600080fd5b506102a26115c3565b3480156107ac57600080fd5b506106e16115c9565b3480156107c157600080fd5b506106e1600480360360208110156107d857600080fd5b50356001600160a01b0316611692565b3480156107f457600080fd5b506103756004803603602081101561080b57600080fd5b50356117eb565b34801561081e57600080fd5b506103756117f8565b34801561083357600080fd5b506103a66117fe565b34801561084857600080fd5b50610375611803565b34801561085d57600080fd5b506102a26004803603602081101561087457600080fd5b50356001600160a01b0316611809565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b600681815481106108b757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b603881565b600881565b61200081565b61100581565b6000805460ff16610957576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109975760405162461bcd60e51b815260040180806020018281038252602f815260200180612377602f913960400191505060405180910390fd5b60008215610a4a576110026001600160a01b0316639a99b4f06110056109c8600e548861181b90919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b50519050610b59565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a9457600080fd5b505af1158015610aa8573d6000803e3d6000fd5b505050506040513d6020811015610abe57600080fd5b5051600e5490915015610b5957600e54604080516309a99b4f60e41b81526110056004820152602481019290925251610b569161100291639a99b4f0916044808201926020929091908290030181600087803b158015610b1d57600080fd5b505af1158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b5051829063ffffffff61181b16565b90505b600c805460010190556000610b6d8261187e565b600954909150610b83908263ffffffff61181b16565b600955600a54610bab908290610b9f908563ffffffff61181b16565b9063ffffffff6118a716565b600a556001600160a01b038716600090815260056020526040902054610c1757600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610c9557600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610d8457600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610d0f6118e9565b90506000610d1b611bcd565b6001600160a01b0389166000908152600d6020526040902054909150610d59908290610d4d908563ffffffff61181b16565b9063ffffffff61181b16565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610e295760405162461bcd60e51b815260040180806020018281038252602e8152602001806122bc602e913960400191505060405180910390fd5b60005460ff16610e6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ea6021913960400191505060405180910390fd5b610ede84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611e4b9050565b15610fab5760208114610f225760405162461bcd60e51b81526004018080602001828103825260328152602001806123a66032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610f6091858580838501838280828437600092019190915250611f3292505050565b9050600254811115610fa35760405162461bcd60e51b81526004018080602001828103825260608152602001806121956060913960600191505060405180910390fd5b6001556114a5565b61100484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081019091526022808252909250905061229a6020830139611e4b565b156110dc57602081146110485760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161108691858580838501838280828437600092019190915250611f3292505050565b9050801580159061109957506001548110155b6110d45760405162461bcd60e51b815260040180806020018281038252606c81526020018061230b606c913960800191505060405180910390fd5b6002556114a5565b61115084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611e4b9050565b1561121d57602081146111945760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916111d291858580838501838280828437600092019190915250611f3292505050565b90506004548111156112155760405162461bcd60e51b81526004018080602001828103825260568152602001806121f56056913960600191505060405180910390fd5b6003556114a5565b61129184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611e4b9050565b1561136957602081146112d55760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161131391858580838501838280828437600092019190915250611f3292505050565b9050801580159061132657506003548110155b6113615760405162461bcd60e51b81526004018080602001828103825260618152602001806121066061913960800191505060405180910390fd5b6004556114a5565b6113dd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f64796e616d69634578747261496e63656e74697665416d6f756e74000000000060208201529150611e4b9050565b1561146857602081146114215760405162461bcd60e51b815260040180806020018281038252602e815260200180612167602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161145f91858580838501838280828437600092019190915250611f3292505050565b600e55506114a5565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161154e575080611593565b81602810801561155f575060508211155b1561156c57506028611593565b60508211801561157d5750606e8211155b1561158d57506078819003611593565b50600481045b919050565b6000602882116115a9575080611593565b506028611593565b61100281565b600e5481565b61100381565b60095481565b60005460ff1615611621576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff161561166f576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d6020526040902054806116f1576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506117a15760405161100290819084156108fc029085906000818181858888f1935050505015801561175b573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506117e8565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b600881815481106108b757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600082820183811015611875576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061187860025461189b60015485611f3790919063ffffffff16565b9063ffffffff611f9016565b600061187583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd2565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561194557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611927575b5050505050905060608151604051908082528060200260200182016040528015611979578160200160208202803683370190505b50905060005b8251811015611a0657600083828151811061199657fe5b6020026020010151905060006119d060056000846001600160a01b03166001600160a01b0316815260200190815260200160002054611598565b9050808484815181106119df57fe5b60209081029190910101526119fa868263ffffffff61181b16565b9550505060010161197f565b506000611a2460045461189b60035488611f3790919063ffffffff16565b9050611a36858263ffffffff6118a716565b94508460015b8451811015611b0d576000611a718761189b8a888681518110611a5b57fe5b6020026020010151611f3790919063ffffffff16565b9050611abe81600d6000898681518110611a8757fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461181b90919063ffffffff16565b600d6000888581518110611ace57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611b02838263ffffffff6118a716565b925050600101611a3c565b50611b2381600d600087600081518110611a8757fe5b600d600086600081518110611b3457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b8451811015611bb55760056000868381518110611b8757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611b6e565b50611bc2600660006120ce565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611c2957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c0b575b5050505050905060608151604051908082528060200260200182016040528015611c5d578160200160208202803683370190505b50905060005b8251811015611cdc576000838281518110611c7a57fe5b602002602001015190506000611cb460076000846001600160a01b03166001600160a01b031681526020019081526020016000205461153d565b905080848481518110611cc357fe5b6020908102919091010152949094019350600101611c63565b506000611cfa60045461189b60035488611f3790919063ffffffff16565b9050611d0c858263ffffffff6118a716565b94508460015b8451811015611d96576000611d318761189b8a888681518110611a5b57fe5b9050611d4781600d6000898681518110611a8757fe5b600d6000888581518110611d5757fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611d8b838263ffffffff6118a716565b925050600101611d12565b50611dac81600d600087600081518110611a8757fe5b600d600086600081518110611dbd57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611e3e5760076000868381518110611e1057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611df7565b50611bc2600860006120ce565b6000816040516020018082805190602001908083835b60208310611e805780518252601f199092019160209182019101611e61565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611f4657506000611878565b82820282848281611f5357fe5b04146118755760405162461bcd60e51b81526004018080602001828103825260218152602001806122796021913960400191505060405180910390fd5b600061187583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612069565b600081848411156120615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202657818101518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836120b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561202657818101518382015260200161200e565b5060008385816120c457fe5b0495945050505050565b50805460008255906000526020600020908101906117e89190611bca91905b8082111561210157600081556001016120ed565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656c656e677468206f662064796e616d69634578747261496e63656e74697665416d6f756e74206d69736d617463686e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220ed761a0a8bb4eac3f5f94897efb6059f8cb261a19ed73bef336cbc05af2a532064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/mirror/mainnet/TokenHubContract b/core/systemcontracts/mirror/mainnet/TokenHubContract new file mode 100644 index 0000000000..28c50d4da5 --- /dev/null +++ b/core/systemcontracts/mirror/mainnet/TokenHubContract @@ -0,0 +1 @@ +60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e590814610996578063fd6a687914610ce6578063ff9c00271461068657610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063d9e6dae9116100d1578063d9e6dae914610608578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610ad2578063b9fd21e314610b0b578063ba35ead614610b20578063bbface1f14610b3557610366565b8063aa7415f5146109ab578063ab51bb96146109f2578063ac43175114610a0757610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a78abc1614610981578063a7c9f02d1461099657610366565b8063613684751161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105875780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b8063613684751461060857806366dea52a146106865780636e0565201461069b5780636e47b482146107c757806370fd5bad1461068657806371d30863146107dc57610366565b806343a368b9116102d757806350432d32116102b157806350432d321461061d57806351e806721461063257806359b92789146106475780635d499b1b1461067157610366565b806343a368b9146105c7578063493279b1146105dc5780634bf6c8821461060857610366565b80630bee7a671461036b5780631182b87514610399578063149d14d9146104935780633d713223146104ba5780633dffc3871461058757806343756e5c146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805163ffffffff9092168252519081900360200190f35b3480156103a557600080fd5b5061041e600480360360408110156103bc57600080fd5b60ff8235169190810190604081016020820135600160201b8111156103e057600080fd5b8201836020820111156103f257600080fd5b803590602001918460018302840111600160201b8311171561041357600080fd5b509092509050610d00565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610458578181015183820152602001610440565b50505050905090810190601f1680156104855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049f57600080fd5b506104a8610e2e565b60408051918252519081900360200190f35b3480156104c657600080fd5b5061056b600480360360208110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e34945050505050565b604080516001600160a01b039092168252519081900360200190f35b34801561059357600080fd5b5061059c610e58565b6040805160ff9092168252519081900360200190f35b3480156105be57600080fd5b5061056b610e5d565b3480156105d357600080fd5b506104a8610e63565b3480156105e857600080fd5b506105f1610e6f565b6040805161ffff9092168252519081900360200190f35b34801561061457600080fd5b5061059c610e74565b34801561062957600080fd5b506104a8610e79565b34801561063e57600080fd5b5061056b610e84565b34801561065357600080fd5b5061056b6004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104a8610ea5565b34801561069257600080fd5b5061059c610eae565b6107b3600480360360808110156106b157600080fd5b810190602081018135600160201b8111156106cb57600080fd5b8201836020820111156106dd57600080fd5b803590602001918460208302840111600160201b831117156106fe57600080fd5b919390929091602081019035600160201b81111561071b57600080fd5b82018360208201111561072d57600080fd5b803590602001918460208302840111600160201b8311171561074e57600080fd5b919390929091602081019035600160201b81111561076b57600080fd5b82018360208201111561077d57600080fd5b803590602001918460208302840111600160201b8311171561079e57600080fd5b91935091503567ffffffffffffffff16610eb3565b604080519115158252519081900360200190f35b3480156107d357600080fd5b5061056b611388565b3480156107e857600080fd5b506104a861138e565b3480156107fd57600080fd5b5061056b611394565b34801561081257600080fd5b5061059c61139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061059c61156e565b34801561090057600080fd5b506104a8611573565b34801561091557600080fd5b506104a86004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b5061056b6116bd565b34801561096357600080fd5b5061056b6116c3565b34801561097857600080fd5b5061059c6116c9565b34801561098d57600080fd5b506107b36116ce565b3480156109a257600080fd5b5061059c6116d7565b6107b3600480360360808110156109c157600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116dc565b3480156109fe57600080fd5b506103806116c9565b348015610a1357600080fd5b5061036460048036036040811015610a2a57600080fd5b810190602081018135600160201b811115610a4457600080fd5b820183602082011115610a5657600080fd5b803590602001918460018302840111600160201b83111715610a7757600080fd5b919390929091602081019035600160201b811115610a9457600080fd5b820183602082011115610aa657600080fd5b803590602001918460018302840111600160201b83111715610ac757600080fd5b509092509050611d9d565b348015610ade57600080fd5b5061036460048036036040811015610af557600080fd5b50803590602001356001600160a01b031661200c565b348015610b1757600080fd5b506104a8612082565b348015610b2c57600080fd5b506104a861208c565b348015610b4157600080fd5b506104a860048036036020811015610b5857600080fd5b50356001600160a01b0316612092565b348015610b7457600080fd5b506104a860048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b5061056b6120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b5061056b612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061059c61223b565b348015610c8057600080fd5b5061059c612240565b348015610c9557600080fd5b5061056b612245565b348015610caa57600080fd5b506104a861224b565b348015610cbf57600080fd5b5061041e60048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b5061056b612378565b606481565b60005460609060ff16610d48576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b3361200014610d885760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff841660021415610dda57610dd383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e27565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b603881565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610ef9576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b868514610f375760405162461bcd60e51b815260040180806020018281038252603b81526020018061471b603b913960400191505060405180910390fd5b868314610f755760405162461bcd60e51b815260040180806020018281038252603f8152602001806145ee603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fc15760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156110055760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611038578160200160208202803683370190505b50905060005b84811015611113576402540be4008b8b8381811061105857fe5b905060200201358161106657fe5b06156110a35760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6110c88b8b838181106110b257fe5b90506020020135856124a290919063ffffffff16565b93506110f46402540be4008c8c848181106110df57fe5b905060200201356124fc90919063ffffffff16565b82828151811061110057fe5b602090810291909101015260010161103e565b506001546111389061112b908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111765760405162461bcd60e51b81526004018080602001828103825260568152602001806147c86056913960600191505060405180910390fd5b611186348463ffffffff61259716565b9150611190614337565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d76003611254846125d9565b611269876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c75781810151838201526020016112af565b50505050905090810190601f1680156112f45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614451602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611722576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561176e5760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156117b25760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b600080806001600160a01b038816611891576001546117d890879063ffffffff6124a216565b3410156118165760405162461bcd60e51b81526004018080602001828103825260618152602001806145686061913960800191505060405180910390fd5b6402540be40086061561185a5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b61186a348763ffffffff61259716565b9050611881866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b34565b6001600160a01b0388166000908152600360205260409020549250826118e85760405162461bcd60e51b81526004018080602001828103825260318152602001806145376031913960400191505060405180910390fd5b6001543410156119295760405162461bcd60e51b815260040180806020018281038252603f81526020018061468a603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061197457506008811180156119745750611972876007198301600a0a63ffffffff6128f016565b155b6119af5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6119b98782612932565b92506119c484612972565b15611a0c576305f5e100831015611a0c5760405162461bcd60e51b815260040180806020018281038252603a815260200180614480603a913960400191505060405180910390fd5b600881101580611a265750600881108015611a2657508683115b611a615760405162461bcd60e51b81526004018080602001828103825260258152602001806145c96025913960400191505060405180910390fd5b677ce66c50e2840000831115611aa85760405162461bcd60e51b81526004018080602001828103825260358152602001806145026035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b5051611b3257600080fd5b505b611b3c614337565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bea57fe5b602002602001018181525050878160600151600081518110611c0857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c3a57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c65846125d9565b611c7a866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cd8578181015183820152602001611cc0565b50505050905090810190601f168015611d055780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d2657600080fd5b505af1158015611d3a573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611ddd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146c9602e913960400191505060405180910390fd5b60208114611e32576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f3a576020820151670de0b6b3a76400008111801590611ee157506402540be4008106155b611f32576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f77565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461204c5760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b6060612388614383565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143b8565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e53565b50506040805160008152602081019091529150610e539050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146696021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143df565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b81526004018080602001828103825260248152602001806146f76024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600760ff82161015612a0057600092505050610e53565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e53565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e53565b5060019392505050565b612a80614337565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144ba6024913960400191505060405180910390fd5b612ad36143df565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613baf565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e614383565b6000612b88614383565b612b90614416565b612ba1612b9c86613be8565b613c0d565b90506000805b612bb083613c57565b15612ca85780612bd257612bcb612bc684613c78565b613cc6565b8452612ca0565b8060011415612bff57612bec612be784613c78565b613d7d565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c78565b6040850152612ca0565b8060031415612c4657612c33612be784613c78565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c78565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c78565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e53565b8160400151471015612cfc57506003610e53565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e53565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e53565b8160a0015167ffffffffffffffff16421115612e0a57506001610e53565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e53565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e53565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e539050565b5060059150610e539050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2781613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613d97565b613e7d565b60408051600560a21b8318601482015260348101909152606090610e2781613e7d565b60608151600014156132315750604080516000815260208101909152610e53565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ecf565b9150600101613251565b50610e27613294825160c060ff16613f4c565b82613ecf565b6132a26143df565b60006132ac6143df565b6132b4614416565b6132c0612b9c86613be8565b90506000805b6132cf83613c57565b15612ca857806132f5576132e5612be784613c78565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c78565b614044565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cc6565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c78565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d7d565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c78565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b613953614337565b600061395d614337565b613965614416565b613971612b9c86613be8565b90506000805b61398083613c57565b15612ca8578061399d57613996612bc684613c78565b8452613ba7565b80600114156139c5576139b2612be784613c78565b6001600160a01b03166020850152613ba7565b8060021415613a545760606139dc61330c85613c78565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613ba7565b8060031415613ae9576060613a6b61330c85613c78565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c78565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415612c9b57613b93612bc684613c78565b67ffffffffffffffff1660a0850152600191505b600101613977565b60006008821115613bd157612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613bf0614436565b506040805180820190915281518152602082810190820152919050565b613c15614416565b613c1e82614115565b613c2757600080fd5b6000613c368360200151614145565b60208085015160408051808201909152868152920190820152915050919050565b6000613c61614436565b505080518051602091820151919092015191011190565b613c80614436565b613c8982613c57565b613c9257600080fd5b60208201516000613ca2826141a8565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cdb57508151602110155b613ce457600080fd5b6000613cf38360200151614145565b90508083600001511015613d4e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d7457826020036101000a820491505b50949350505050565b8051600090601514613d8e57600080fd5b6116b782613cc6565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613ddb57506018613dff565b6fffffffffffffffffffffffffffffffff198416613dfb57506010613dff565b5060005b6020811015613e3557818181518110613e1457fe5b01602001516001600160f81b03191615613e2d57613e35565b600101613dff565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e6a576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613eaf5750607f60f81b82600081518110613e9d57fe5b01602001516001600160f81b03191611155b15613ebb575080610e53565b6116b7613ecd8351608060ff16613f4c565b835b6060806040519050835180825260208201818101602087015b81831015613f00578051835260209283019201613ee8565b50855184518101855292509050808201602086015b81831015613f2d578051835260209283019201613f15565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613f9c576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ff65782840160f81b81600081518110613fd857fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061400185613d97565b90508381510160370160f81b8260008151811061401a57fe5b60200101906001600160f81b031916908160001a90535061403b8282613ecf565b95945050505050565b606061404f82614115565b61405857600080fd5b6000614063836142db565b90506060816040519080825280602002602001820160405280156140a157816020015b61408e614436565b8152602001906001900390816140865790505b50905060006140b38560200151614145565b60208601510190506000805b8481101561410a576140d0836141a8565b91506040518060400160405280838152602001848152508482815181106140f357fe5b6020908102919091010152918101916001016140bf565b509195945050505050565b805160009061412657506000610e53565b6020820151805160001a9060c0821015612a6e57600092505050610e53565b8051600090811a608081101561415f576000915050610e53565b60b881108061417a575060c0811080159061417a575060f881105b15614189576001915050610e53565b60c081101561419d5760b519019050610e53565b60f519019050610e53565b80516000908190811a60808110156141c357600191506142d4565b60b88110156141d857607e19810191506142d4565b60c081101561425257600060b78203600186019550806020036101000a86510491506001810182019350508083101561424c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142d4565b60f88110156142675760be19810191506142d4565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142d2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906142ec57506000610e53565b600080905060006143008460200151614145565b602085015185519181019250015b8082101561432e5761431f826141a8565b6001909301929091019061430e565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614429614436565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220c72f4ad63f8f84b0b15ae9d71fffb0d09b3b3b97a728e64b385305ecb6431b0e64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/mirror/mainnet/TokenManagerContract b/core/systemcontracts/mirror/mainnet/TokenManagerContract new file mode 100644 index 0000000000..6d9286373c --- /dev/null +++ b/core/systemcontracts/mirror/mainnet/TokenManagerContract @@ -0,0 +1 @@ +6080604052600436106103815760003560e01c80637d078e13116101d1578063b795031711610102578063d9e6dae9116100a0578063fa9e91591161006f578063fa9e915914610d38578063fc3e5908146105b2578063fd6a687914610d4d578063fe3a2af514610d6257610381565b8063d9e6dae9146106fc578063dc927faf14610cf9578063e605bca014610d0e578063f9a2bbc714610d2357610381565b8063c8509d81116100dc578063c8509d8114610bdf578063c8e704a4146105b2578063d117a11014610c64578063d7109ce614610ce457610381565b8063b79503171461073b578063bd32d3f9146104d9578063c81b166214610bca57610381565b80639a854bbd1161016f578063a78abc1611610149578063a78abc1614610ad5578063ab51bb9614610aea578063ab67a4851461073b578063ac43175114610aff57610381565b80639a854bbd14610a965780639dc0926214610aab578063a1a11bf514610ac057610381565b8063859180fb116101ab578063859180fb146106e757806394553a4e14610a3757806395b9ad2614610a6c57806396713da914610a8157610381565b80637d078e13146104ee5780637ec816dd1461099b578063831d65d1146109b057610381565b8063493279b1116102b657806366dea52a1161025457806372c4e0861161022357806372c4e0861461081957806375d47a0a146108bd57806377d9dae8146108d25780637942fd051461098657610381565b806366dea52a1461073b5780636b3f1307146107505780636e47b4821461080457806370fd5bad1461073b57610381565b806351e806721161029057806351e80672146107115780635d499b1b146107265780635f558f861461073b57806361368475146106fc57610381565b8063493279b1146106bb5780634bc81c00146106e75780634bf6c882146106fc57610381565b80632e02d77611610323578063401809f9116102fd578063401809f9146105b257806343756e5c146105c7578063445fcefe146105f8578063487c88ac146104ee57610381565b80632e02d7761461054c57806337e6ecda1461057f5780633dffc387146104ee57610381565b80631f91600b1161035f5780631f91600b146104d957806323996b53146104ee57806325c751b7146105035780632d89ac32146104ee57610381565b80630bee7a67146103865780630f212b1b146103b45780631182b875146103df575b600080fd5b34801561039257600080fd5b5061039b610d77565b6040805163ffffffff9092168252519081900360200190f35b3480156103c057600080fd5b506103c9610d7c565b6040805160ff9092168252519081900360200190f35b3480156103eb57600080fd5b506104646004803603604081101561040257600080fd5b60ff8235169190810190604081016020820135600160201b81111561042657600080fd5b82018360208201111561043857600080fd5b803590602001918460018302840111600160201b8311171561045957600080fd5b509092509050610d81565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049e578181015183820152602001610486565b50505050905090810190601f1680156104cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e557600080fd5b506103c9610e9b565b3480156104fa57600080fd5b506103c9610ea0565b6105386004803603604081101561051957600080fd5b5080356001600160a01b031690602001356001600160401b0316610ea5565b604080519115158252519081900360200190f35b34801561055857600080fd5b506105386004803603602081101561056f57600080fd5b50356001600160a01b03166113f1565b34801561058b57600080fd5b50610538600480360360208110156105a257600080fd5b50356001600160a01b0316611406565b3480156105be57600080fd5b506103c961141b565b3480156105d357600080fd5b506105dc611420565b604080516001600160a01b039092168252519081900360200190f35b34801561060457600080fd5b506106a96004803603602081101561061b57600080fd5b810190602081018135600160201b81111561063557600080fd5b82018360208201111561064757600080fd5b803590602001918460018302840111600160201b8311171561066857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611426945050505050565b60408051918252519081900360200190f35b3480156106c757600080fd5b506106d0611584565b6040805161ffff9092168252519081900360200190f35b3480156106f357600080fd5b506103c9611589565b34801561070857600080fd5b506103c961158e565b34801561071d57600080fd5b506105dc611593565b34801561073257600080fd5b506106a9611599565b34801561074757600080fd5b506103c96115a2565b6105386004803603604081101561076657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111600160201b831117156107c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a7945050505050565b34801561081057600080fd5b506105dc611e7d565b6105386004803603602081101561082f57600080fd5b810190602081018135600160201b81111561084957600080fd5b82018360208201111561085b57600080fd5b803590602001918460018302840111600160201b8311171561087c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e83945050505050565b3480156108c957600080fd5b506105dc6122cf565b610538600480360360408110156108e857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460018302840111600160201b8311171561094557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122d5945050505050565b34801561099257600080fd5b506103c96127db565b3480156109a757600080fd5b506106a96127e0565b3480156109bc57600080fd5b50610a35600480360360408110156109d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156109f757600080fd5b820183602082011115610a0957600080fd5b803590602001918460018302840111600160201b83111715610a2a57600080fd5b5090925090506127e6565b005b61053860048036036040811015610a4d57600080fd5b5080356001600160a01b031690602001356001600160401b0316612935565b348015610a7857600080fd5b506103c961332c565b348015610a8d57600080fd5b506103c9613331565b348015610aa257600080fd5b506106a9613336565b348015610ab757600080fd5b506105dc613342565b348015610acc57600080fd5b506105dc613348565b348015610ae157600080fd5b5061053861334e565b348015610af657600080fd5b5061039b613357565b348015610b0b57600080fd5b50610a3560048036036040811015610b2257600080fd5b810190602081018135600160201b811115610b3c57600080fd5b820183602082011115610b4e57600080fd5b803590602001918460018302840111600160201b83111715610b6f57600080fd5b919390929091602081019035600160201b811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b803590602001918460018302840111600160201b83111715610bbf57600080fd5b50909250905061335c565b348015610bd657600080fd5b506105dc613631565b348015610beb57600080fd5b50610a3560048036036040811015610c0257600080fd5b60ff8235169190810190604081016020820135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b509092509050613637565b348015610c7057600080fd5b50610c8e60048036036020811015610c8757600080fd5b503561370d565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a08301526001600160401b0390921660c082015290519081900360e00190f35b348015610cf057600080fd5b506106a9613764565b348015610d0557600080fd5b506105dc613769565b348015610d1a57600080fd5b506106a961376f565b348015610d2f57600080fd5b506105dc613775565b348015610d4457600080fd5b506106a961377b565b348015610d5957600080fd5b506105dc613781565b348015610d6e57600080fd5b506103c9613357565b606481565b600681565b60603361200014610dc35760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff841660011415610e1557610e0e83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378792505050565b9050610e94565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605848484604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1506040805160008152602081019091525b9392505050565b600481565b600181565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b5051905080610f5e576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205460ff16610fc1576040805162461bcd60e51b81526020600482015260136024820152723737ba103137bab73210313c9036b4b93937b960691b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffe57600080fd5b505afa158015611012573d6000803e3d6000fd5b505050506040513d602081101561102857600080fd5b505190506402540be4003406158015611053575060055461104f908263ffffffff613a1716565b3410155b61108e5760405162461bcd60e51b8152600401808060200182810382526046815260200180615b156046913960600191505060405180910390fd5b42607801846001600160401b0316101580156110b85750426201518001846001600160401b031611155b6110f35760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d602081101561115857600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0389169163313ce567916004808301926020929190829003018186803b1580156111a057600080fd5b505afa1580156111b4573d6000803e3d6000fd5b505050506040513d60208110156111ca57600080fd5b50519050677ce66c50e28400006111e48360ff8416613a71565b1115611230576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b600554611004906108fc9061124c90349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015611274573d6000803e3d6000fd5b5061127d615869565b6040518060c00160405280336001600160a01b03168152602001896001600160a01b031681526020018681526020018481526020016112cc6402540be400600554613b4290919063ffffffff16565b81526001600160401b038916602090910152905061200063f7a251d760056112f384613b84565b61131d6402540be40061131160055434613b0090919063ffffffff16565b9063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137b578181015183820152602001611363565b50505050905090810190601f1680156113a85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c957600080fd5b505af11580156113dd573d6000803e3d6000fd5b505050506001955050505050505b92915050565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b600381565b61100181565b602081015160009061143661589e565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a08201526101009091046001600160401b031660c0820152906114bd5760009250505061157f565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561151b57600080fd5b505afa15801561152f573d6000803e3d6000fd5b505050506040513d602081101561154557600080fd5b5051608083015160608401519192506000916115669163ffffffff613b0016565b9050611578818363ffffffff613b0016565b9450505050505b919050565b603881565b600581565b600881565b61200081565b6402540be40081565b600281565b6001600160a01b03821660009081526002602052604081205460ff16156115ff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615bb8602b913960400191505060405180910390fd5b600061160a83613cb9565b905061161461589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526116d9576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b60006116f682608001518360600151613b0090919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b03161461174c5760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d60208110156117b957600080fd5b50516001600160a01b0316146118005760405162461bcd60e51b815260040180806020018281038252602e8152602001806159e4602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d602081101561187657600080fd5b505160408051636eb1769f60e11b8152336004820152306024820152905191925083916119079184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d60208110156118f957600080fd5b50519063ffffffff613a1716565b101561195a576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561199c57600080fd5b505afa1580156119b0573d6000803e3d6000fd5b505050506040513d60208110156119c657600080fd5b505190508082108015906119df57506402540be4008206155b611a1a5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b6000611a26868b613cc0565b905063ffffffff8116611c25576001600160a01b038a166323b872dd33611004611a56898963ffffffff613b0016565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050506040513d6020811015611ae857600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611be4578181015183820152602001611bcc565b50505050905090810190601f168015611c115780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2611cdd565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611ca1578181015183820152602001611c89565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611d376158da565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611d7f573d6000803e3d6000fd5b5061200063f7a251d76001611d938461411a565b611da8886402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e06578181015183820152602001611dee565b50505050905090810190601f168015611e335780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b61100581565b600080611e8f83613cb9565b9050611e9961589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c0830152611f5e576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c001516001600160401b031610611fbf576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b5051905080821080159061204457506402540be4008206155b61207f5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556120d96158da565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561211c573d6000803e3d6000fd5b5061200063f7a251d760016121308461411a565b612145876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a357818101518382015260200161218b565b50505050905090810190601f1680156121d05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156121f157600080fd5b505af1158015612205573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561228757818101518382015260200161226f565b50505050905090810190601f1680156122b45780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806122e183613cb9565b90506122eb61589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526123b0576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146124045760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d602081101561247157600080fd5b50516001600160a01b0316146124ce576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703230206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b5051905080821080159061255357506402540be4008206155b61258e5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556125e86158da565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561262b573d6000803e3d6000fd5b5061200063f7a251d7600161263f8461411a565b612654876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156126b257818101518382015260200161269a565b50505050905090810190601f1680156126df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561270057600080fd5b505af1158015612714573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561279257818101518382015260200161277a565b50505050905090810190601f1680156127bf5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b60045481565b33612000146128265760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156128765761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061419092505050565b612930565b60ff8316600514156128c15761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061443d92505050565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b15801561298257600080fd5b505afa158015612996573d6000803e3d6000fd5b505050506040513d60208110156129ac57600080fd5b5051146129f0576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e48189bdd5b99609a1b604482015290519081900360640190fd5b6001600160a01b03831660009081526002602052604090205460ff1615612a4f576040805162461bcd60e51b815260206004820152600e60248201526d6d6972726f722070656e64696e6760901b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8c57600080fd5b505afa158015612aa0573d6000803e3d6000fd5b505050506040513d6020811015612ab657600080fd5b505190506402540be4003406158015612ae15750600454612add908263ffffffff613a1716565b3410155b612b1c5760405162461bcd60e51b815260040180806020018281038252604d815260200180615997604d913960600191505060405180910390fd5b42607801836001600160401b031610158015612b465750426201518001836001600160401b031611155b612b815760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612bbc57600080fd5b505afa158015612bd0573d6000803e3d6000fd5b505050506040513d6020811015612be657600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038816916318160ddd916004808301926020929190829003018186803b158015612c2e57600080fd5b505afa158015612c42573d6000803e3d6000fd5b505050506040513d6020811015612c5857600080fd5b50519050677ce66c50e2840000612c728260ff8516613a71565b1115612cbe576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b6060866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612cf957600080fd5b505afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612d3657600080fd5b8101908080516040519392919084600160201b821115612d5557600080fd5b908301906020820185811115612d6a57600080fd5b8251600160201b811182820188101715612d8357600080fd5b82525081516020918201929091019080838360005b83811015612db0578181015183820152602001612d98565b50505050905090810190601f168015612ddd5780820380516001836020036101000a031916815260200191505b50604052505050905060608190506001815110158015612dff57506020815111155b612e50576040805162461bcd60e51b815260206004820152601d60248201527f6e616d65206c656e677468206d75737420626520696e205b312c33325d000000604482015290519081900360640190fd5b6060886001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e8b57600080fd5b505afa158015612e9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ec857600080fd5b8101908080516040519392919084600160201b821115612ee757600080fd5b908301906020820185811115612efc57600080fd5b8251600160201b811182820188101715612f1557600080fd5b82525081516020918201929091019080838360005b83811015612f42578181015183820152602001612f2a565b50505050905090810190601f168015612f6f5780820380516001836020036101000a031916815260200191505b5060405250508151919250829160021180159150612f8f57508051600810155b612fe0576040805162461bcd60e51b815260206004820152601e60248201527f73796d626f6c206c656e677468206d75737420626520696e205b322c385d0000604482015290519081900360640190fd5b60005b81518160ff16101561313457604160f81b828260ff168151811061300357fe5b01602001516001600160f81b031916108015906130415750602d60f91b828260ff168151811061302f57fe5b01602001516001600160f81b03191611155b806130995750606160f81b828260ff168151811061305b57fe5b01602001516001600160f81b031916108015906130995750603d60f91b828260ff168151811061308757fe5b01602001516001600160f81b03191611155b806130f15750600360fc1b828260ff16815181106130b357fe5b01602001516001600160f81b031916108015906130f15750603960f81b828260ff16815181106130df57fe5b01602001516001600160f81b03191611155b61312c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615ac6602e913960400191505060405180910390fd5b600101612fe3565b50600454611004906108fc9061315190349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015613179573d6000803e3d6000fd5b506001600160a01b038a166000908152600260209081526040909120805460ff1916600117905584810151908301516131b06158f1565b604051806101000160405280336001600160a01b031681526020018e6001600160a01b031681526020018481526020018381526020018981526020018a60ff16815260200161320f6402540be400600454613b4290919063ffffffff16565b81526001600160401b038e16602090910152905061200063f7a251d7600461323684614608565b6132546402540be40061131160045434613b0090919063ffffffff16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156132b257818101518382015260200161329a565b50505050905090810190601f1680156132df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561330057600080fd5b505af1158015613314573d6000803e3d6000fd5b5050505060019a505050505050505050505092915050565b600781565b600981565b677ce66c50e284000081565b61100781565b61100681565b60005460ff1681565b600081565b336110071461339c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615b5b602e913960400191505060405180910390fd5b602081146133f1576040805162461bcd60e51b815260206004820152601860248201527f65787065637465642076616c7565206c656e6774682033320000000000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f880181900481028201810190925286815293945060609392508691508590819084018382808284376000920191909152505050506020830151909150686d6972726f7246656560b81b8114156134e65760208201516402540be4008106156134de576040805162461bcd60e51b815260206004820152601a60248201527f6d6972726f72466565206d757374206265204e202a2031653130000000000000604482015290519081900360640190fd5b60045561359c565b6673796e6346656560c81b81141561355f5760208201516402540be400810615613557576040805162461bcd60e51b815260206004820152601860248201527f73796e63466565206d757374206265204e202a20316531300000000000000000604482015290519081900360640190fd5b60055561359c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61100281565b33612000146136775760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156136c25761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061477a92505050565b60ff8316600514156128c15761287182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506148b992505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b039093169391929181169061010090046001600160401b031687565b604d81565b61100381565b60055481565b61100081565b61271081565b61100481565b606061379161589e565b600061379c846149b3565b91509150806137f2576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff166138a5576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff0019166101006001600160401b03909216919091021790556139fc565b815160ff16600114156139af5760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156138fe57600080fd5b505afa158015613912573d6000803e3d6000fd5b505050506040513d602081101561392857600080fd5b505190506001600160a01b038116156139a95760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561399057600080fd5b505af11580156139a4573d6000803e3d6000fd5b505050505b506139fc565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b600082820183811015610e94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006008821115613ae957604d60071983011115613acb576040805162461bcd60e51b8152602060048201526012602482015271746f6f206c6172676520646563696d616c7360701b604482015290519081900360640190fd5b613ae2836007198401600a0a63ffffffff613b4216565b90506113eb565b610e94836008849003600a0a63ffffffff614b0416565b6000610e9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614b5d565b6000610e9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614bf4565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613b9f5750508351909150613bca906001600160a01b0316614c59565b81600081518110613bd757fe5b6020026020010181905250613bf883602001516001600160a01b0316614c59565b81600181518110613c0557fe5b6020026020010181905250613c20836040015160001c614c7c565b81600281518110613c2d57fe5b6020026020010181905250613c458360600151614c7c565b81600381518110613c5257fe5b6020026020010181905250613c6a8360800151614c7c565b81600481518110613c7757fe5b6020026020010181905250613c988360a001516001600160401b0316614c7c565b81600581518110613ca557fe5b6020026020010181905250610e9481614c8f565b6020015190565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613cfc57600080fd5b505afa158015613d10573d6000803e3d6000fd5b505050506040513d6020811015613d2657600080fd5b5051604080516395d89b4160e01b8152905160ff90921692506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b158015613d7257600080fd5b505afa158015613d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613daf57600080fd5b8101908080516040519392919084600160201b821115613dce57600080fd5b908301906020820185811115613de357600080fd5b8251600160201b811182820188101715613dfc57600080fd5b82525081516020918201929091019080838360005b83811015613e29578181015183820152602001613e11565b50505050905090810190601f168015613e565780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b158015613ea657600080fd5b505afa158015613eba573d6000803e3d6000fd5b505050506040513d6020811015613ed057600080fd5b505160808701516060880151919250600091613ef19163ffffffff613b0016565b9050428760c001516001600160401b03161015613f165750600193506113eb92505050565b613f24838860200151614d19565b613f365750600293506113eb92505050565b80821115613f4c5750600393506113eb92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8e57600080fd5b505afa158015613fa2573d6000803e3d6000fd5b505050506040513d6020811015613fb857600080fd5b505114613fcd5750600493506113eb92505050565b8660a0015160ff168414613fe95750600593506113eb92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b15801561402e57600080fd5b505afa158015614042573d6000803e3d6000fd5b505050506040513d602081101561405857600080fd5b50516001600160a01b03161415806140fa57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156140cb57600080fd5b505afa1580156140df573d6000803e3d6000fd5b505050506040513d60208110156140f557600080fd5b505114155b1561410d5750600693506113eb92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081614133575050835190915061415b9063ffffffff16614c7c565b8160008151811061416857fe5b6020026020010181905250614183836020015160001c614c7c565b81600181518110613ca557fe5b614198615869565b60006141a383614e01565b91509150806141f0576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b03166000908152600290915260409020805460ff1916905560a082015160ff166143515760808201516040516110049180156108fc02916000818181858888f19350505050158015614253573d6000803e3d6000fd5b506110046001600160a01b0316638eff336c8360600151846020015185604001516040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018260ff1681526020019350505050600060405180830381600087803b1580156142cd57600080fd5b505af11580156142e1573d6000803e3d6000fd5b50505050602082810180516001600160a01b03908116600090815260038452604090819020805460ff1916600117905591516060860151835190815292519116927f41787d7db08fc5907641ee8343379f28215727eb123d4b462099afab4300b036928290030190a2505061443a565b815160808301516040516000926001600160a01b0316916127109184818181858888f193505050503d80600081146143a5576040519150601f19603f3d011682016040523d82523d6000602084013e6143aa565b606091505b50509050806143e75760808301516040516110029180156108fc02916000818181858888f193505050501580156143e5573d6000803e3d6000fd5b505b82602001516001600160a01b03167fefe400ad0042ebf81a245de9ae669616105e0ca9fc946352c085da0c2bc524e58460a00151604051808260ff1660ff16815260200191505060405180910390a25050505b50565b614445615935565b600061445083614f0e565b915091508061449d576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b606082015160ff1661451d5760408083015190516110049180156108fc02916000818181858888f193505050501580156144db573d6000803e3d6000fd5b5081602001516001600160a01b03167fbb7d3a9a559080d8281b0e4fb39dacbe2fdcafd5ef765e9a6ed871c9167dc60f60405160405180910390a2505061443a565b81602001516001600160a01b03167ff1e25fa536da84053644fd788b1d6a27ea6edd1f3af80c7d36ca253c4c82c9c38360600151604051808260ff1660ff16815260200191505060405180910390a2815160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d80600081146145c0576040519150601f19603f3d011682016040523d82523d6000602084013e6145c5565b606091505b50509050806146025760408084015190516110029180156108fc02916000818181858888f19350505050158015614600573d6000803e3d6000fd5b505b50505050565b6040805160088082526101208201909252606091829190816020015b6060815260200190600190039081614624575050835190915061464f906001600160a01b0316614c59565b8160008151811061465c57fe5b602002602001018190525061467d83602001516001600160a01b0316614c59565b8160018151811061468a57fe5b60200260200101819052506146a5836040015160001c614c7c565b816002815181106146b257fe5b60200260200101819052506146cd836060015160001c614c7c565b816003815181106146da57fe5b60200260200101819052506146f28360800151614c7c565b816004815181106146ff57fe5b602002602001018190525061471a8360a0015160ff16614c7c565b8160058151811061472757fe5b602002602001018190525061473f8360c00151614c7c565b8160068151811061474c57fe5b602002602001018190525061476d8360e001516001600160401b0316614c7c565b81600781518110613ca557fe5b6147826158f1565b600061478d83614fda565b91509150806147da576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b039081166000908152600290925260408220805460ff19169055835160c085015191169061271090614824906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614861576040519150601f19603f3d011682016040523d82523d6000602084013e614866565b606091505b50509050806146025760c0830151611002906108fc90614891906402540be40063ffffffff614b0416565b6040518115909202916000818181858888f19350505050158015614600573d6000803e3d6000fd5b6148c1615869565b60006148cc8361512b565b9150915080614919576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b815160808301516000916001600160a01b03169061271090614946906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614983576040519150601f19603f3d011682016040523d82523d6000602084013e614988565b606091505b5050905080614602576080830151611002906108fc90614891906402540be40063ffffffff614b0416565b6149bb61589e565b60006149c561589e565b6149cd61595c565b6149de6149d98661523b565b615260565b90506000805b6149ed836152aa565b15614af75780614a1257614a08614a03846152cb565b615319565b60ff168452614aef565b8060011415614a3157614a27614a03846152cb565b6020850152614aef565b8060021415614a5e57614a4b614a46846152cb565b6153ce565b6001600160a01b03166040850152614aef565b8060031415614a7d57614a73614a03846152cb565b6060850152614aef565b8060041415614a9c57614a92614a03846152cb565b6080850152614aef565b8060051415614abe57614ab1614a03846152cb565b60ff1660a0850152614aef565b8060061415614aea57614ad3614a03846152cb565b6001600160401b031660c085015260019150614aef565b614af7565b6001016149e4565b5091935090915050915091565b600082614b13575060006113eb565b82820282848281614b2057fe5b0414610e945760405162461bcd60e51b8152600401808060200182810382526021815260200180615af46021913960400191505060405180910390fd5b60008184841115614bec5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb1578181015183820152602001614b99565b50505050905090810190601f168015614bde5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614c435760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614bb1578181015183820152602001614b99565b506000838581614c4f57fe5b0495945050505050565b60408051600560a21b8318601482015260348101909152606090610e94816153e8565b60606113eb614c8a8361543e565b6153e8565b6060815160001415614cb0575060408051600081526020810190915261157f565b606082600081518110614cbf57fe5b602002602001015190506000600190505b8351811015614d0057614cf682858381518110614ce957fe5b6020026020010151615524565b9150600101614cd0565b50610e94614d13825160c060ff166155a1565b82615524565b8151600090839060081080614d2f575080516002115b15614d3e5760009150506113eb565b60408051602080825281830190925260609160208201818036833701905050905083602082015280825181518110614d7257fe5b6020910101516001600160f81b031916602d60f81b14614d97576000925050506113eb565b600160005b8351811015614df757828181518110614db157fe5b602001015160f81c60f81b6001600160f81b031916848281518110614dd257fe5b01602001516001600160f81b03191614614def5760009150614df7565b600101614d9c565b5095945050505050565b614e09615869565b6000614e13615869565b614e1b61595c565b614e276149d98661523b565b90506000805b614e36836152aa565b15614af75780614e5c57614e4c614a46846152cb565b6001600160a01b03168452614f06565b8060011415614e8457614e71614a46846152cb565b6001600160a01b03166020850152614f06565b8060021415614ea657614e99614a03846152cb565b60ff166040850152614f06565b8060031415614ec557614ebb614a03846152cb565b6060850152614f06565b8060041415614ee457614eda614a03846152cb565b6080850152614f06565b8060051415614aea57614ef9614a03846152cb565b60ff1660a0850152600191505b600101614e2d565b614f16615935565b6000614f20615935565b614f2861595c565b614f346149d98661523b565b90506000805b614f43836152aa565b15614af75780614f6957614f59614a46846152cb565b6001600160a01b03168452614fd2565b8060011415614f9157614f7e614a46846152cb565b6001600160a01b03166020850152614fd2565b8060021415614fb057614fa6614a03846152cb565b6040850152614fd2565b8060031415614aea57614fc5614a03846152cb565b60ff166060850152600191505b600101614f3a565b614fe26158f1565b6000614fec6158f1565b614ff461595c565b6150006149d98661523b565b90506000805b61500f836152aa565b15614af7578061503557615025614a46846152cb565b6001600160a01b03168452615123565b806001141561505d5761504a614a46846152cb565b6001600160a01b03166020850152615123565b806002141561507c57615072614a03846152cb565b6040850152615123565b806003141561509b57615091614a03846152cb565b6060850152615123565b80600414156150ba576150b0614a03846152cb565b6080850152615123565b80600514156150dc576150cf614a03846152cb565b60ff1660a0850152615123565b80600614156150fb576150f1614a03846152cb565b60c0850152615123565b8060071415614aea57615110614a03846152cb565b6001600160401b031660e0850152600191505b600101615006565b615133615869565b600061513d615869565b61514561595c565b6151516149d98661523b565b90506000805b615160836152aa565b15614af7578061518657615176614a46846152cb565b6001600160a01b03168452615233565b80600114156151ae5761519b614a46846152cb565b6001600160a01b03166020850152615233565b80600214156151cd576151c3614a03846152cb565b6040850152615233565b80600314156151ec576151e2614a03846152cb565b6060850152615233565b806004141561520b57615201614a03846152cb565b6080850152615233565b8060051415614aea57615220614a03846152cb565b6001600160401b031660a0850152600191505b600101615157565b61524361597c565b506040805180820190915281518152602082810190820152919050565b61526861595c565b61527182615699565b61527a57600080fd5b600061528983602001516156d3565b60208085015160408051808201909152868152920190820152915050919050565b60006152b461597c565b505080518051602091820151919092015191011190565b6152d361597c565b6152dc826152aa565b6152e557600080fd5b602082015160006152f582615736565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061532e57508151602110155b61533757600080fd5b600061534683602001516156d3565b905080836000015110156153a1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613a0e57506020919091036101000a90049392505050565b80516000906015146153df57600080fd5b6113eb82615319565b60608151600114801561541a5750607f60f81b8260008151811061540857fe5b01602001516001600160f81b03191611155b1561542657508061157f565b6113eb6154388351608060ff166155a1565b83615524565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615482575060186154a6565b6fffffffffffffffffffffffffffffffff1984166154a2575060106154a6565b5060005b60208110156154dc578181815181106154bb57fe5b01602001516001600160f81b031916156154d4576154dc565b6001016154a6565b60008160200390506060816040519080825280601f01601f191660200182016040528015615511576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561555557805183526020928301920161553d565b50855184518101855292509050808201602086015b8183101561558257805183526020928301920161556a565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106155f1576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161564b5782840160f81b8160008151811061562d57fe5b60200101906001600160f81b031916908160001a90535090506113eb565b60606156568561543e565b90508381510160370160f81b8260008151811061566f57fe5b60200101906001600160f81b031916908160001a9053506156908282615524565b95945050505050565b80516000906156aa5750600061157f565b6020820151805160001a9060c08210156156c95760009250505061157f565b5060019392505050565b8051600090811a60808110156156ed57600091505061157f565b60b8811080615708575060c08110801590615708575060f881105b1561571757600191505061157f565b60c081101561572b5760b51901905061157f565b60f51901905061157f565b80516000908190811a60808110156157515760019150615862565b60b881101561576657607e1981019150615862565b60c08110156157e057600060b78203600186019550806020036101000a8651049150600181018201935050808310156157da576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615862565b60f88110156157f55760be1981019150615862565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615860576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528061596f61597c565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6d73672e76616c7565206d757374206265204e202a203165313020616e642067726561746572207468616e2073756d206f66206d696e6952656c617946656520616e64206d6972726f724665656f6e6c79206265703230206f776e65722063616e20617070726f766520746869732062696e64207265717565737465787069726554696d65206d7573742062652074776f206d696e75746573206c6174657220616e64206f6e6520646179206561726c69657272656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e64207265717565737473796d626f6c2073686f756c64206f6e6c7920636f6e7461696e20616c70686162657420616e64206e756d626572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e76616c7565206d757374206265204e202a203165313020616e64206e6f206c6573732073756d206f66206d696e6952656c617946656520616e642073796e63466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e747261637474686520626570323020746f6b656e20697320696e206d6972726f722070656e64696e6720737461747573a2646970667358221220ab8dfdd9914857b55fc1c6e49c911de2d861380dc81004c5ff0a4e67915545b764736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/mirror/types.go b/core/systemcontracts/mirror/types.go new file mode 100644 index 0000000000..05d3c78bc7 --- /dev/null +++ b/core/systemcontracts/mirror/types.go @@ -0,0 +1,23 @@ +package mirror + +import _ "embed" + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/TokenManagerContract + MainnetTokenManagerContract string + //go:embed mainnet/TokenHubContract + MainnetTokenHubContract string + //go:embed mainnet/RelayerIncentivizeContract + MainnetRelayerIncentivizeContract string +) + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/TokenManagerContract + ChapelTokenManagerContract string + //go:embed chapel/TokenHubContract + ChapelTokenHubContract string + //go:embed chapel/RelayerIncentivizeContract + ChapelRelayerIncentivizeContract string +) diff --git a/core/systemcontracts/moran/chapel/CrossChainContract b/core/systemcontracts/moran/chapel/CrossChainContract new file mode 100644 index 0000000000..136a79641e --- /dev/null +++ b/core/systemcontracts/moran/chapel/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102695760003560e01c80637942fd0511610151578063c27cdcfb116100c3578063e1c7392a11610087578063e1c7392a14610775578063e3b048051461077d578063f7a251d71461079d578063f9a2bbc714610815578063fc3e59081461081d578063fd6a68791461082557610269565b8063c27cdcfb1461070e578063c81b16621461072e578063d31f968d14610736578063d76a867514610765578063dc927faf1461076d57610269565b80639dc09262116101155780639dc0926214610630578063a1a11bf514610638578063a78abc1614610640578063ab51bb9614610648578063ac43175114610650578063b0355f5b1461048057610269565b80637942fd051461053b57806384013b6a14610543578063863fe4ab146106205780638cc8f5611461051b57806396713da91461062857610269565b8063422f9050116101ea5780636e47a51a116101ae5780636e47a51a146104f35780636e47b4821461051357806370fd5bad1461051b578063718a8aa81461052357806374f079b81461052b57806375d47a0a1461053357610269565b8063422f90501461048857806343756e5c146104bc578063493279b1146104c45780634bf6c882146104e357806351e80672146104eb57610269565b80632ff32aea116102315780632ff32aea146102f3578063308325f4146103145780633a648b151461031c5780633bdc47a6146103585780633dffc3871461048057610269565b806305e682581461026e5780630bee7a671461028c5780630e2374a5146102ad57806314b3023b146102d157806322556cdc146102eb575b600080fd5b61027661082d565b6040805160ff9092168252519081900360200190f35b610294610832565b6040805163ffffffff9092168252519081900360200190f35b6102b5610837565b604080516001600160a01b039092168252519081900360200190f35b6102d961083d565b60408051918252519081900360200190f35b6102d9610843565b6102fb610848565b60408051600792830b90920b8252519081900360200190f35b6102d9610851565b61033c6004803603602081101561033257600080fd5b503560ff16610857565b604080516001600160401b039092168252519081900360200190f35b61040b6004803603606081101561036e57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111600160201b831117156103ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610872945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044557818101518382015260200161042d565b50505050905090810190601f1680156104725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766108e8565b6104a86004803603602081101561049e57600080fd5b503560ff166108ed565b604080519115158252519081900360200190f35b6102b5610902565b6104cc610908565b6040805161ffff9092168252519081900360200190f35b61027661090d565b6102b5610912565b6102b56004803603602081101561050957600080fd5b503560ff16610918565b6102b5610933565b610276610939565b61027661093e565b6102d9610943565b6102b5610949565b61027661094f565b61061e600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b919390929091602081019035600160201b8111156105c357600080fd5b8201836020820111156105d557600080fd5b803590602001918460018302840111600160201b831117156105f657600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff16610954565b005b6102d9611c4d565b610276611c55565b6102b5611c5a565b6102b5611c60565b6104a8611c66565b61029461082d565b61061e6004803603604081101561066657600080fd5b810190602081018135600160201b81111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460018302840111600160201b831117156106b357600080fd5b919390929091602081019035600160201b8111156106d057600080fd5b8201836020820111156106e257600080fd5b803590602001918460018302840111600160201b8311171561070357600080fd5b509092509050611c6f565b61033c6004803603602081101561072457600080fd5b503560ff16612211565b6102b561222c565b6104a86004803603604081101561074c57600080fd5b5080356001600160a01b0316906020013560ff16612232565b61040b612252565b6102b5612271565b61061e612277565b61033c6004803603602081101561079357600080fd5b503560ff1661262e565b61061e600480360360608110156107b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156107d757600080fd5b8201836020820111156107e957600080fd5b803590602001918460018302840111600160201b8311171561080a57600080fd5b919350915035612649565b6102b561279a565b6102766127a0565b6102b56127a5565b600081565b606481565b61200181565b60015481565b603281565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156108aa576020820181803683370190505b50602181018690526001810187905282815290506041810160006108cd866127ab565b5090506108dc818388516127b5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b601081565b60035481565b61100881565b600b81565b60005460ff166109a7576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d6020811015610a1057600080fd5b5051610a63576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d791331480610a9857507337b8516a0f88e65d677229b402ec6c1e0e33300433145b610ad35760405162461bcd60e51b815260040180806020018281038252602a815260200180612d5a602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610b43576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610bb857600080fd5b505afa158015610bcc573d6000803e3d6000fd5b505050506040513d6020811015610be257600080fd5b5051610c1f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612db66023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610c8e576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015610cf7576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614610d495760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610e8d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015610e3657600080fd5b505afa158015610e4a573d6000803e3d6000fd5b505050506040513d6020811015610e6057600080fd5b505160408051808201909152600381526269626360e81b6020820152610e868e8e6127f6565b858561283d565b610ed5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610f2157600080fd5b505afa158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505190508b8b600080806060610f608961293a565b935093509350935083611022578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fda578181015183820152602001610fc2565b50505050905090810190601f1680156110075780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050611c3d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166115a75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b838110156110ef5781810151838201526020016110d7565b50505050905090810190601f16801561111c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561113c57600080fd5b505af192505050801561122057506040513d6000823e601f3d908101601f19168201604052602081101561116f57600080fd5b8101908080516040519392919084600160201b82111561118e57600080fd5b9083019060208201858111156111a357600080fd5b8251600160201b8111828201881017156111bc57600080fd5b82525081516020918201929091019080838360005b838110156111e95781810151838201526020016111d1565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b5060405250505060015b611532576040516000815260443d101561123c575060006112d7565b60046000803e60005160e01c6308c379a0811461125d5760009150506112d7565b60043d036004833e81513d60248201116001600160401b0382111715611288576000925050506112d7565b80830180516001600160401b038111156112a95760009450505050506112d7565b8060208301013d86018111156112c7576000955050505050506112d7565b601f01601f191660405250925050505b806112e257506113f4565b60ff8716600090815260076020526040812054611319916001600160401b039091169089906113149060029088610872565b6129ea565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061152d565b3d80801561141e576040519150601f19603f3d011682016040523d82523d6000602084013e611423565b606091505b5060ff8716600090815260076020526040812054611456916001600160401b039091169089906113149060029088610872565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156114f15781810151838201526020016114d9565b50505050905090810190601f16801561151e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6115a1565b80511561159f5760ff871660009081526007602052604081205461156b916001600160401b039091169089906113149060019086610872565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50611b75565b60ff83166001141561184b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015611631578181015183820152602001611619565b50505050905090810190601f16801561165e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b6115a1576040516000815260443d10156116ab57506000611746565b60046000803e60005160e01c6308c379a081146116cc576000915050611746565b60043d036004833e81513d60248201116001600160401b03821117156116f757600092505050611746565b80830180516001600160401b03811115611718576000945050505050611746565b8060208301013d860181111561173657600095505050505050611746565b601f01601f191660405250925050505b8061175157506117b6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156113b457818101518382015260200161139c565b3d8080156117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156114f15781810151838201526020016114d9565b60ff831660021415611b755760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156118d55781810151838201526020016118bd565b50505050905090810190601f1680156119025780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561192257600080fd5b505af1925050508015611933575060015b611b73576040516000815260443d101561194f575060006119ea565b60046000803e60005160e01c6308c379a081146119705760009150506119ea565b60043d036004833e81513d60248201116001600160401b038211171561199b576000925050506119ea565b80830180516001600160401b038111156119bc5760009450505050506119ea565b8060208301013d86018111156119da576000955050505050506119ea565b601f01601f191660405250925050505b806119f55750611a9e565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611a5e578181015183820152602001611a46565b50505050905090810190601f168015611a8b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611b73565b3d808015611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b37578181015183820152602001611b1f565b50505050905090810190601f168015611b645780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680611ba7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611c0757600080fd5b505af1158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611caf5760405162461bcd60e51b815260040180806020018281038252602e815260200180612ce2602e913960400191505060405180910390fd5b611d1884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b60208201529150612b409050565b15611db357604080516020601f8401819004810282018101909252828152600091611d5b91858580838501838280828437600092019190915250612c2792505050565b90506127108111158015611d705750600a8110155b611dab5760405162461bcd60e51b8152600401808060200182810382526032815260200180612d846032913960400191505060405180910390fd5b60015561217f565b611e1c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b60208201529150612b409050565b15611fa457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611e9f5760405162461bcd60e51b815260040180806020018281038252605a815260200180612c88605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611ebd81612c2c565b611f0e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061217f565b61201184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b60208201529150612b409050565b1561214257606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050600290911490506120945760405162461bcd60e51b815260040180806020018281038252604a815260200180612d10604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612138576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061217f565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff16156122cf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff1661269c576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166126f95760405162461bcd60e51b8152600401808060200182810382526031815260200180612c576031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261275e9284928a9261131492909189918c908c908190840183828082843760009201919091525061087292505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b602081106127d5578251825260209283019290910190601f19016127b6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561284c57506000612931565b606082518451865160800101016040519080825280601f01601f191660200182016040528015612883576020820181803683370190505b509050600061289182612c32565b6020808901518252019050866000806128a9896127ab565b80865260209095019490925090506128c28285836127b5565b928301926128cf886127ab565b80865260209095019490925090506128e88285836127b5565b9283018a8152602001926128fb876127ab565b909250905061290b8285836127b5565b508351602001612919612c38565b60208183886065600019fa5051600114955050505050505b95945050505050565b6000806000606060218551101561296a5750506040805160008082526020820190925290925082915081906129e3565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156129b5576020820181803683370190505b50905060006129c3826127ab565b5090506129d5858260218d51036127b5565b506001975091955093509150505b9193509193565b600254431115612a29576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b161790915560035543600255612a6a565b60038054600190810191829055541015612a6a576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b00578181015183820152602001612ae8565b50505050905090810190601f168015612b2d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b60208310612b755780518252601f199092019160209182019101612b56565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612be35780518252601f199092019160209182019101612bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220035a34f6ccce4a5331a704da5375e26753e5146b5f166b6efe218f523c6a401064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/moran/chapel/LightClientContract b/core/systemcontracts/moran/chapel/LightClientContract new file mode 100644 index 0000000000..fedd2ee29e --- /dev/null +++ b/core/systemcontracts/moran/chapel/LightClientContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102275760003560e01c8063a1a11bf511610130578063dc927faf116100b8578063e405bbc31161007c578063e405bbc3146106a7578063ea54b2aa146106af578063f9a2bbc7146106b7578063fc3e5908146106bf578063fd6a6879146106c757610227565b8063dc927faf14610627578063dda831481461062f578063df5fe70414610655578063e1c7392a1461067b578063e2761af01461068357610227565b8063adc879e9116100ff578063adc879e914610552578063c81b16621461055a578063cba510a914610562578063d816987914610588578063da8d08f01461060157610227565b8063a1a11bf514610462578063a78abc161461046a578063ab51bb9614610486578063ac4317511461048e57610227565b8063564b81ef116101b3578063718a8aa811610182578063718a8aa81461043a57806375d47a0a146104425780637942fd051461044a57806396713da9146104525780639dc092621461045a57610227565b8063564b81ef146102e85780635c5ae8db146103655780636e47b4821461042a57806370fd5bad1461043257610227565b80633dffc387116101fa5780633dffc3871461029357806343756e5c146102b1578063493279b1146102b95780634bf6c882146102d857806351e80672146102e057610227565b80630bee7a671461022c5780630e2374a51461024d5780632657e9b61461027157806333f7798d1461028b575b600080fd5b6102346106cf565b6040805163ffffffff9092168252519081900360200190f35b6102556106d4565b604080516001600160a01b039092168252519081900360200190f35b6102796106da565b60408051918252519081900360200190f35b6102796106e5565b61029b6106eb565b6040805160ff9092168252519081900360200190f35b6102556106f0565b6102c16106f6565b6040805161ffff9092168252519081900360200190f35b61029b6106fb565b610255610700565b6102f0610706565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038b6004803603602081101561037b57600080fd5b50356001600160401b0316610812565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ec5781810151838201526020016103d4565b50505050905090810190601f1680156104195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6102556108cd565b61029b6108d3565b61029b6108d8565b6102556108dd565b61029b6108e3565b61029b6108e8565b6102556108ed565b6102556108f3565b6104726108f9565b604080519115158252519081900360200190f35b610234610902565b610550600480360360408110156104a457600080fd5b8101906020810181356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460018302840111640100000000831117156104f357600080fd5b91939092909160208101903564010000000081111561051157600080fd5b82018360208201111561052357600080fd5b8035906020019184600183028401116401000000008311171561054557600080fd5b509092509050610907565b005b610279610bc0565b610255610bc6565b6102796004803603602081101561057857600080fd5b50356001600160401b0316610bcc565b6104726004803603604081101561059e57600080fd5b8101906020810181356401000000008111156105b957600080fd5b8201836020820111156105cb57600080fd5b803590602001918460018302840111640100000000831117156105ed57600080fd5b9193509150356001600160401b0316610beb565b6102556004803603602081101561061757600080fd5b50356001600160401b031661143c565b610255611457565b6102556004803603602081101561064557600080fd5b50356001600160401b031661145d565b6104726004803603602081101561066b57600080fd5b50356001600160401b0316611481565b6105506114c3565b61068b611668565b604080516001600160401b039092168252519081900360200190f35b61068b611677565b6102f061168d565b6102556116aa565b61029b6116b0565b6102556116b5565b606481565b61200181565b662386f26fc1000081565b60055481565b600181565b61100181565b606181565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561077c57828160ff168151811061075057fe5b01602001516001600160f81b0319161561076f57600190910190610774565b61077c565b600101610735565b5060608160ff166040519080825280601f01601f1916602001820160405280156107ad576020820181803683370190505b50905060005b8260ff168160ff16101561080957838160ff16815181106107d057fe5b602001015160f81c60f81b828260ff16815181106107ea57fe5b60200101906001600160f81b031916908160001a9053506001016107b3565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905084565b61100581565b600281565b601081565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661095e576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461099e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611b67602e913960400191505060405180910390fd5b610a1284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e67650000000000602082015291506116bb9050565b15610af15760208114610a565760405162461bcd60e51b815260040180806020018281038252602e815260200180611b06602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a94918585808385018382808284376000920191909152506117a292505050565b9050600081118015610aae5750670de0b6b3a76400008111155b610ae95760405162461bcd60e51b815260040180806020018281038252602f815260200180611b95602f913960400191505060405180910390fd5b600555610b2e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6020811015610c5857600080fd5b5051610cab576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d791331480610ce057507337b8516a0f88e65d677229b402ec6c1e0e33300433145b610d1b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611bc4602a913960400191505060405180910390fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610d8f576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610ddc5760405162461bcd60e51b8152600401808060200182810382526026815260200180611bee6026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610df7611904565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610ebd5780601f10610e9257610100808354040283529160200191610ebd565b820191906000526020600020905b815481529060010190602001808311610ea057829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610efa57506003546001600160401b0390811690831610155b15610fdb5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050815250509050610ec9565b6060810151516110d25780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529395509092919083018282801561108a5780601f1061105f5761010080835404028352916020019161108a565b820191906000526020600020905b81548152906001019060200180831161106d57829003601f168201915b505050506060830182905250516110d25760405162461bcd60e51b8152600401808060200182810382526021815260200180611ae56021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b509050600061111f826117a7565b905061112d848683866117ad565b6111685760405162461bcd60e51b81526004018080602001828103825260238152602001806119e26023913960400191505060405180910390fd5b600083820191506111ae8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181992505050565b945090506111bd818386611823565b825160200193506111cc61192a565b6110008186866064600019fa6111e157600080fd5b805194506000600160f81b8616156112705750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b50505b856001600160401b03169550602082019350600061129085888415611864565b90985090506001600160401b03808216908c16146112df5760405162461bcd60e51b8152600401808060200182810382526033815260200180611b346033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b9392611366926003850192910190611949565b50506003546001600160401b03600160401b9091048116908d16111590506113ae576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b03161515806114bd57506003546001600160401b038381169116145b92915050565b60005460ff161561151b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061154060405180610100016040528060e08152602001611a0560e09139611819565b81516004559092509050611552611904565b600061156084846000611864565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff19169416939093178355808601519183019190915591840151600282015560608401518051949650929450859390926115cc926003850192910190611949565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e08152602001611a0560e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116f05780518252601f1990920191602091820191016116d1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061175e5780518252601f19909201916020918201910161173f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b60008460600151518284010392506000806117cb8760600151611819565b90925090506117db828683611823565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b60208110611843578251825260209283019290910190601f1901611824565b915181516020939093036101000a6000190180199091169216919091179052565b61186c611904565b600884015160288501516048909501805190956000929161188b611904565b6020810183905260408101829052866118f65760008060688a036040519080825280601f01601f1916602001820160405280156118cf576020820181803683370190505b50606084018190526118e090611819565b90925090506118f360208c018383611823565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061198a57805160ff19168380011785556119b7565b828001600101855582156119b7579182015b828111156119b757825182559160200191906001019061199c565b506119c39291506119c7565b5090565b61080f91905b808211156119c357600081556001016119cd56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e6765746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c6179657263616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a2646970667358221220f10bd4cea020bbc51bd92dc8d0216f48c220336c9ca0178fb7726dc899c15ee164736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/moran/chapel/RelayerHubContract b/core/systemcontracts/moran/chapel/RelayerHubContract new file mode 100644 index 0000000000..e5176ffbb3 --- /dev/null +++ b/core/systemcontracts/moran/chapel/RelayerHubContract @@ -0,0 +1 @@ +6080604052600436106101d85760003560e01c80637ae2308811610102578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610569578063fb7cfdd71461057e578063fc3e590814610593578063fd6a6879146105a8576101d8565b8063c81b166214610515578063dc927faf1461052a578063e1c7392a1461053f578063e79a198f14610554576101d8565b8063a1a11bf5116100d1578063a1a11bf514610407578063a78abc161461041c578063ab51bb9614610431578063ac43175114610446576101d8565b80637ae23088146103b357806395468d26146103c857806396713da9146103dd5780639dc09262146103f2576101d8565b806351e806721161017a57806370fd5bad1161014957806370fd5bad1461035f578063718a8aa81461037457806375d47a0a146103895780637942fd051461039e576101d8565b806351e80672146102c7578063541d5548146102dc5780636a87d780146103235780636e47b4821461034a576101d8565b80633dffc387116101b65780633dffc3871461024657806343756e5c14610271578063493279b1146102865780634bf6c882146102b2576101d8565b80630bee7a67146101dd5780630e2374a51461020b5780631aa3a0081461023c575b600080fd5b3480156101e957600080fd5b506101f26105bd565b6040805163ffffffff9092168252519081900360200190f35b34801561021757600080fd5b506102206105c2565b604080516001600160a01b039092168252519081900360200190f35b6102446105c8565b005b34801561025257600080fd5b5061025b610749565b6040805160ff9092168252519081900360200190f35b34801561027d57600080fd5b5061022061074e565b34801561029257600080fd5b5061029b610754565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b5061025b610759565b3480156102d357600080fd5b5061022061075e565b3480156102e857600080fd5b5061030f600480360360208110156102ff57600080fd5b50356001600160a01b0316610764565b604080519115158252519081900360200190f35b34801561032f57600080fd5b50610338610782565b60408051918252519081900360200190f35b34801561035657600080fd5b50610220610788565b34801561036b57600080fd5b5061025b61078e565b34801561038057600080fd5b5061025b610793565b34801561039557600080fd5b50610220610798565b3480156103aa57600080fd5b5061025b61079e565b3480156103bf57600080fd5b506103386107a3565b3480156103d457600080fd5b506103386107b0565b3480156103e957600080fd5b5061025b6107bc565b3480156103fe57600080fd5b506102206107c1565b34801561041357600080fd5b506102206107c7565b34801561042857600080fd5b5061030f6107cd565b34801561043d57600080fd5b506101f26107d6565b34801561045257600080fd5b506102446004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460018302840111640100000000831117156104b857600080fd5b9193909290916020810190356401000000008111156104d657600080fd5b8201836020820111156104e857600080fd5b8035906020019184600183028401116401000000008311171561050a57600080fd5b5090925090506107db565b34801561052157600080fd5b50610220610bfd565b34801561053657600080fd5b50610220610c03565b34801561054b57600080fd5b50610244610c09565b34801561056057600080fd5b50610244610c8b565b34801561057557600080fd5b50610220610e44565b34801561058a57600080fd5b50610338610e4a565b34801561059f57600080fd5b5061025b610e50565b3480156105b457600080fd5b50610220610e55565b606481565b61200181565b3360009081526004602052604090205460ff1615610625576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610678576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61068133610e5b565b156106bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806110486027913960400191505060405180910390fd5b333214610707576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b6040805162461bcd60e51b81526020600482015260126024820152711c9959da5cdd195c881cdd5cdc195b99195960721b604482015290519081900360640190fd5b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b601081565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661082e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461086e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061106f602e913960400191505060405180910390fd5b6108d484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e619050565b156109d757602081146109185760405162461bcd60e51b815260040180806020018281038252602281526020018061109d6022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161095691858580838501838280828437600092019190915250610f4892505050565b90506001811180156109715750683635c9adc5dea000008111155b801561097e575060025481115b6109cf576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b6b565b610a3284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e619050565b15610b2e5760208114610a8c576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610aca91858580838501838280828437600092019190915250610f4892505050565b9050600081118015610add575060015481105b610b26576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b6b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c61576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610ce6576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d39576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d4161102d565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610d85919063ffffffff610f4d16565b6040518115909202916000818181858888f19350505050158015610dad573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610de3573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610e965780518252601f199092019160209182019101610e77565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f045780518252601f199092019160209182019101610ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610f8f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b9392505050565b600081848411156110255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fea578181015183820152602001610fd2565b50505050905090810190601f1680156110175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a2646970667358221220bbf2444a200f2d4960875a9cb3258cef8b5f4e79c03999d34530f4a42b7aefd364736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/moran/mainnet/CrossChainContract b/core/systemcontracts/moran/mainnet/CrossChainContract new file mode 100644 index 0000000000..af40586151 --- /dev/null +++ b/core/systemcontracts/moran/mainnet/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102695760003560e01c80637942fd0511610151578063c27cdcfb116100c3578063e1c7392a11610087578063e1c7392a14610775578063e3b048051461077d578063f7a251d71461079d578063f9a2bbc714610815578063fc3e59081461081d578063fd6a68791461082557610269565b8063c27cdcfb1461070e578063c81b16621461072e578063d31f968d14610736578063d76a867514610765578063dc927faf1461076d57610269565b80639dc09262116101155780639dc0926214610630578063a1a11bf514610638578063a78abc1614610640578063ab51bb9614610648578063ac43175114610650578063b0355f5b1461048057610269565b80637942fd051461053b57806384013b6a14610543578063863fe4ab146106205780638cc8f5611461051b57806396713da91461062857610269565b8063422f9050116101ea5780636e47a51a116101ae5780636e47a51a146104f35780636e47b4821461051357806370fd5bad1461051b578063718a8aa81461052357806374f079b81461052b57806375d47a0a1461053357610269565b8063422f90501461048857806343756e5c146104bc578063493279b1146104c45780634bf6c882146104e357806351e80672146104eb57610269565b80632ff32aea116102315780632ff32aea146102f3578063308325f4146103145780633a648b151461031c5780633bdc47a6146103585780633dffc3871461048057610269565b806305e682581461026e5780630bee7a671461028c5780630e2374a5146102ad57806314b3023b146102d157806322556cdc146102eb575b600080fd5b61027661082d565b6040805160ff9092168252519081900360200190f35b610294610832565b6040805163ffffffff9092168252519081900360200190f35b6102b5610837565b604080516001600160a01b039092168252519081900360200190f35b6102d961083d565b60408051918252519081900360200190f35b6102d9610843565b6102fb610848565b60408051600792830b90920b8252519081900360200190f35b6102d9610851565b61033c6004803603602081101561033257600080fd5b503560ff16610857565b604080516001600160401b039092168252519081900360200190f35b61040b6004803603606081101561036e57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111600160201b831117156103ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610872945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044557818101518382015260200161042d565b50505050905090810190601f1680156104725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766108e8565b6104a86004803603602081101561049e57600080fd5b503560ff166108ed565b604080519115158252519081900360200190f35b6102b5610902565b6104cc610908565b6040805161ffff9092168252519081900360200190f35b61027661090d565b6102b5610912565b6102b56004803603602081101561050957600080fd5b503560ff16610918565b6102b5610933565b610276610939565b61027661093e565b6102d9610943565b6102b5610949565b61027661094f565b61061e600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b919390929091602081019035600160201b8111156105c357600080fd5b8201836020820111156105d557600080fd5b803590602001918460018302840111600160201b831117156105f657600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff16610954565b005b6102d9611c4d565b610276611c55565b6102b5611c5a565b6102b5611c60565b6104a8611c66565b61029461082d565b61061e6004803603604081101561066657600080fd5b810190602081018135600160201b81111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460018302840111600160201b831117156106b357600080fd5b919390929091602081019035600160201b8111156106d057600080fd5b8201836020820111156106e257600080fd5b803590602001918460018302840111600160201b8311171561070357600080fd5b509092509050611c6f565b61033c6004803603602081101561072457600080fd5b503560ff16612211565b6102b561222c565b6104a86004803603604081101561074c57600080fd5b5080356001600160a01b0316906020013560ff16612232565b61040b612252565b6102b5612271565b61061e612277565b61033c6004803603602081101561079357600080fd5b503560ff1661262e565b61061e600480360360608110156107b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156107d757600080fd5b8201836020820111156107e957600080fd5b803590602001918460018302840111600160201b8311171561080a57600080fd5b919350915035612649565b6102b561279a565b6102766127a0565b6102b56127a5565b600081565b606481565b61200181565b60015481565b603281565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156108aa576020820181803683370190505b50602181018690526001810187905282815290506041810160006108cd866127ab565b5090506108dc818388516127b5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b601081565b60035481565b61100881565b600b81565b60005460ff166109a7576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d6020811015610a1057600080fd5b5051610a63576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480610a98575073446aa6e0dc65690403df3f127750da1322941f3e33145b610ad35760405162461bcd60e51b815260040180806020018281038252602a815260200180612d5a602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610b43576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610bb857600080fd5b505afa158015610bcc573d6000803e3d6000fd5b505050506040513d6020811015610be257600080fd5b5051610c1f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612db66023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610c8e576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015610cf7576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614610d495760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610e8d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015610e3657600080fd5b505afa158015610e4a573d6000803e3d6000fd5b505050506040513d6020811015610e6057600080fd5b505160408051808201909152600381526269626360e81b6020820152610e868e8e6127f6565b858561283d565b610ed5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610f2157600080fd5b505afa158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505190508b8b600080806060610f608961293a565b935093509350935083611022578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fda578181015183820152602001610fc2565b50505050905090810190601f1680156110075780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050611c3d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166115a75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b838110156110ef5781810151838201526020016110d7565b50505050905090810190601f16801561111c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561113c57600080fd5b505af192505050801561122057506040513d6000823e601f3d908101601f19168201604052602081101561116f57600080fd5b8101908080516040519392919084600160201b82111561118e57600080fd5b9083019060208201858111156111a357600080fd5b8251600160201b8111828201881017156111bc57600080fd5b82525081516020918201929091019080838360005b838110156111e95781810151838201526020016111d1565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b5060405250505060015b611532576040516000815260443d101561123c575060006112d7565b60046000803e60005160e01c6308c379a0811461125d5760009150506112d7565b60043d036004833e81513d60248201116001600160401b0382111715611288576000925050506112d7565b80830180516001600160401b038111156112a95760009450505050506112d7565b8060208301013d86018111156112c7576000955050505050506112d7565b601f01601f191660405250925050505b806112e257506113f4565b60ff8716600090815260076020526040812054611319916001600160401b039091169089906113149060029088610872565b6129ea565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061152d565b3d80801561141e576040519150601f19603f3d011682016040523d82523d6000602084013e611423565b606091505b5060ff8716600090815260076020526040812054611456916001600160401b039091169089906113149060029088610872565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156114f15781810151838201526020016114d9565b50505050905090810190601f16801561151e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6115a1565b80511561159f5760ff871660009081526007602052604081205461156b916001600160401b039091169089906113149060019086610872565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50611b75565b60ff83166001141561184b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015611631578181015183820152602001611619565b50505050905090810190601f16801561165e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b6115a1576040516000815260443d10156116ab57506000611746565b60046000803e60005160e01c6308c379a081146116cc576000915050611746565b60043d036004833e81513d60248201116001600160401b03821117156116f757600092505050611746565b80830180516001600160401b03811115611718576000945050505050611746565b8060208301013d860181111561173657600095505050505050611746565b601f01601f191660405250925050505b8061175157506117b6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156113b457818101518382015260200161139c565b3d8080156117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156114f15781810151838201526020016114d9565b60ff831660021415611b755760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156118d55781810151838201526020016118bd565b50505050905090810190601f1680156119025780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561192257600080fd5b505af1925050508015611933575060015b611b73576040516000815260443d101561194f575060006119ea565b60046000803e60005160e01c6308c379a081146119705760009150506119ea565b60043d036004833e81513d60248201116001600160401b038211171561199b576000925050506119ea565b80830180516001600160401b038111156119bc5760009450505050506119ea565b8060208301013d86018111156119da576000955050505050506119ea565b601f01601f191660405250925050505b806119f55750611a9e565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611a5e578181015183820152602001611a46565b50505050905090810190601f168015611a8b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611b73565b3d808015611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b37578181015183820152602001611b1f565b50505050905090810190601f168015611b645780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680611ba7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611c0757600080fd5b505af1158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611caf5760405162461bcd60e51b815260040180806020018281038252602e815260200180612ce2602e913960400191505060405180910390fd5b611d1884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b60208201529150612b409050565b15611db357604080516020601f8401819004810282018101909252828152600091611d5b91858580838501838280828437600092019190915250612c2792505050565b90506127108111158015611d705750600a8110155b611dab5760405162461bcd60e51b8152600401808060200182810382526032815260200180612d846032913960400191505060405180910390fd5b60015561217f565b611e1c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b60208201529150612b409050565b15611fa457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611e9f5760405162461bcd60e51b815260040180806020018281038252605a815260200180612c88605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611ebd81612c2c565b611f0e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061217f565b61201184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b60208201529150612b409050565b1561214257606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050600290911490506120945760405162461bcd60e51b815260040180806020018281038252604a815260200180612d10604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612138576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061217f565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff16156122cf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff1661269c576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166126f95760405162461bcd60e51b8152600401808060200182810382526031815260200180612c576031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261275e9284928a9261131492909189918c908c908190840183828082843760009201919091525061087292505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b602081106127d5578251825260209283019290910190601f19016127b6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561284c57506000612931565b606082518451865160800101016040519080825280601f01601f191660200182016040528015612883576020820181803683370190505b509050600061289182612c32565b6020808901518252019050866000806128a9896127ab565b80865260209095019490925090506128c28285836127b5565b928301926128cf886127ab565b80865260209095019490925090506128e88285836127b5565b9283018a8152602001926128fb876127ab565b909250905061290b8285836127b5565b508351602001612919612c38565b60208183886065600019fa5051600114955050505050505b95945050505050565b6000806000606060218551101561296a5750506040805160008082526020820190925290925082915081906129e3565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156129b5576020820181803683370190505b50905060006129c3826127ab565b5090506129d5858260218d51036127b5565b506001975091955093509150505b9193509193565b600254431115612a29576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b161790915560035543600255612a6a565b60038054600190810191829055541015612a6a576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b00578181015183820152602001612ae8565b50505050905090810190601f168015612b2d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b60208310612b755780518252601f199092019160209182019101612b56565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612be35780518252601f199092019160209182019101612bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220273761c387b9ebd0b15a5a47689f1de8e0168465c6b2da4606f3abaa43a17fef64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/moran/mainnet/LightClientContract b/core/systemcontracts/moran/mainnet/LightClientContract new file mode 100644 index 0000000000..130c6729a2 --- /dev/null +++ b/core/systemcontracts/moran/mainnet/LightClientContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102275760003560e01c8063a1a11bf511610130578063dc927faf116100b8578063e405bbc31161007c578063e405bbc3146106a7578063ea54b2aa146106af578063f9a2bbc7146106b7578063fc3e5908146106bf578063fd6a6879146106c757610227565b8063dc927faf14610627578063dda831481461062f578063df5fe70414610655578063e1c7392a1461067b578063e2761af01461068357610227565b8063adc879e9116100ff578063adc879e914610552578063c81b16621461055a578063cba510a914610562578063d816987914610588578063da8d08f01461060157610227565b8063a1a11bf514610462578063a78abc161461046a578063ab51bb9614610486578063ac4317511461048e57610227565b8063564b81ef116101b3578063718a8aa811610182578063718a8aa81461043a57806375d47a0a146104425780637942fd051461044a57806396713da9146104525780639dc092621461045a57610227565b8063564b81ef146102e85780635c5ae8db146103655780636e47b4821461042a57806370fd5bad1461043257610227565b80633dffc387116101fa5780633dffc3871461029357806343756e5c146102b1578063493279b1146102b95780634bf6c882146102d857806351e80672146102e057610227565b80630bee7a671461022c5780630e2374a51461024d5780632657e9b61461027157806333f7798d1461028b575b600080fd5b6102346106cf565b6040805163ffffffff9092168252519081900360200190f35b6102556106d4565b604080516001600160a01b039092168252519081900360200190f35b6102796106da565b60408051918252519081900360200190f35b6102796106e5565b61029b6106eb565b6040805160ff9092168252519081900360200190f35b6102556106f0565b6102c16106f6565b6040805161ffff9092168252519081900360200190f35b61029b6106fb565b610255610700565b6102f0610706565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038b6004803603602081101561037b57600080fd5b50356001600160401b0316610812565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ec5781810151838201526020016103d4565b50505050905090810190601f1680156104195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6102556108cd565b61029b6108d3565b61029b6108d8565b6102556108dd565b61029b6108e3565b61029b6108e8565b6102556108ed565b6102556108f3565b6104726108f9565b604080519115158252519081900360200190f35b610234610902565b610550600480360360408110156104a457600080fd5b8101906020810181356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460018302840111640100000000831117156104f357600080fd5b91939092909160208101903564010000000081111561051157600080fd5b82018360208201111561052357600080fd5b8035906020019184600183028401116401000000008311171561054557600080fd5b509092509050610907565b005b610279610bc0565b610255610bc6565b6102796004803603602081101561057857600080fd5b50356001600160401b0316610bcc565b6104726004803603604081101561059e57600080fd5b8101906020810181356401000000008111156105b957600080fd5b8201836020820111156105cb57600080fd5b803590602001918460018302840111640100000000831117156105ed57600080fd5b9193509150356001600160401b0316610beb565b6102556004803603602081101561061757600080fd5b50356001600160401b031661143c565b610255611457565b6102556004803603602081101561064557600080fd5b50356001600160401b031661145d565b6104726004803603602081101561066b57600080fd5b50356001600160401b0316611481565b6105506114c3565b61068b61166a565b604080516001600160401b039092168252519081900360200190f35b61068b611679565b6102f061168f565b6102556116ae565b61029b6116b4565b6102556116b9565b606481565b61200181565b662386f26fc1000081565b60055481565b600181565b61100181565b603881565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561077c57828160ff168151811061075057fe5b01602001516001600160f81b0319161561076f57600190910190610774565b61077c565b600101610735565b5060608160ff166040519080825280601f01601f1916602001820160405280156107ad576020820181803683370190505b50905060005b8260ff168160ff16101561080957838160ff16815181106107d057fe5b602001015160f81c60f81b828260ff16815181106107ea57fe5b60200101906001600160f81b031916908160001a9053506001016107b3565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905084565b61100581565b600281565b601081565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661095e576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461099e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a8b602e913960400191505060405180910390fd5b610a1284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e67650000000000602082015291506116bf9050565b15610af15760208114610a565760405162461bcd60e51b815260040180806020018281038252602e815260200180611a2a602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a94918585808385018382808284376000920191909152506117a692505050565b9050600081118015610aae5750670de0b6b3a76400008111155b610ae95760405162461bcd60e51b815260040180806020018281038252602f815260200180611ab9602f913960400191505060405180910390fd5b600555610b2e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6020811015610c5857600080fd5b5051610cab576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480610ce0575073446aa6e0dc65690403df3f127750da1322941f3e33145b610d1b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611ae8602a913960400191505060405180910390fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610d8f576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610ddc5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b126026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610df7611908565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610ebd5780601f10610e9257610100808354040283529160200191610ebd565b820191906000526020600020905b815481529060010190602001808311610ea057829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610efa57506003546001600160401b0390811690831610155b15610fdb5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050815250509050610ec9565b6060810151516110d25780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529395509092919083018282801561108a5780601f1061105f5761010080835404028352916020019161108a565b820191906000526020600020905b81548152906001019060200180831161106d57829003601f168201915b505050506060830182905250516110d25760405162461bcd60e51b8152600401808060200182810382526021815260200180611a096021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b509050600061111f826117ab565b905061112d848683866117b1565b6111685760405162461bcd60e51b81526004018080602001828103825260238152602001806119e66023913960400191505060405180910390fd5b600083820191506111ae8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181d92505050565b945090506111bd818386611827565b825160200193506111cc61192e565b6110008186866064600019fa6111e157600080fd5b805194506000600160f81b8616156112705750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b50505b856001600160401b03169550602082019350600061129085888415611868565b90985090506001600160401b03808216908c16146112df5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a586033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b939261136692600385019291019061194d565b50506003546001600160401b03600160401b9091048116908d16111590506113ae576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b03161515806114bd57506003546001600160401b038381169116145b92915050565b60005460ff161561151b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6000806115426040518061024001604052806102208152602001611b38610220913961181d565b81516004559092509050611554611908565b600061156284846000611868565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff19169416939093178355808601519183019190915591840151600282015560608401518051949650929450859390926115ce92600385019291019061194d565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b6040518061024001604052806102208152602001611b38610220913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116f45780518252601f1990920191602091820191016116d5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106117625780518252601f199092019160209182019101611743565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b60008460600151518284010392506000806117cf876060015161181d565b90925090506117df828683611827565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b60208110611847578251825260209283019290910190601f1901611828565b915181516020939093036101000a6000190180199091169216919091179052565b611870611908565b600884015160288501516048909501805190956000929161188f611908565b6020810183905260408101829052866118fa5760008060688a036040519080825280601f01601f1916602001820160405280156118d3576020820181803683370190505b50606084018190526118e49061181d565b90925090506118f760208c018383611827565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061198e57805160ff19168380011785556119bb565b828001600101855582156119bb579182015b828111156119bb5782518255916020019190600101906119a0565b506119c79291506119cb565b5090565b61080f91905b808211156119c757600081556001016119d156fe6661696c656420746f2073657269616c697a6520636f6e73656e7375732073746174656661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e6765746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c6179657263616e27742073796e6320686561646572206265666f726520696e697469616c48656967687442696e616e63652d436861696e2d5469677269730000000000000000000000000000000006915167cedaf7bbf7df47d932fdda630527ee648562cf3e52c5e5f46156a3a971a4ceb443c53a50d8653ef8cf1e5716da68120fb51b636dc6d111ec3277b098ecd42d49d3769d8a1f78b4c17a965f7a30d4181fabbd1f969f46d3c8e83b5ad4845421d8000000e8d4a510002ba4e81542f437b7ae1f8a35ddb233c789a8dc22734377d9b6d63af1ca403b61000000e8d4a51000df8da8c5abfdb38595391308bb71e5a1e0aabdc1d0cf38315d50d6be939b2606000000e8d4a51000b6619edca4143484800281d698b70c935e9152ad57b31d85c05f2f79f64b39f3000000e8d4a510009446d14ad86c8d2d74780b0847110001a1c2e252eedfea4753ebbbfce3a22f52000000e8d4a510000353c639f80cc8015944436dab1032245d44f912edc31ef668ff9f4a45cd0599000000e8d4a51000e81d3797e0544c3a718e1f05f0fb782212e248e784c1a851be87e77ae0db230e000000e8d4a510005e3fcda30bd19d45c4b73688da35e7da1fce7c6859b2c1f20ed5202d24144e3e000000e8d4a51000b06a59a2d75bf5d014fce7c999b5e71e7a960870f725847d4ba3235baeaa08ef000000e8d4a510000c910e2fe650e4e01406b3310b489fb60a84bc3ff5c5bee3a56d5898b6a8af32000000e8d4a5100071f2d7b8ec1c8b99a653429b0118cd201f794f409d0fea4d65b1b662f2b00063000000e8d4a51000a2646970667358221220fb8b53bdce206113a24d3b8bc0be2f8f42197b57532be92e2ab23b199c941c8064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/moran/mainnet/RelayerHubContract b/core/systemcontracts/moran/mainnet/RelayerHubContract new file mode 100644 index 0000000000..1125980d8e --- /dev/null +++ b/core/systemcontracts/moran/mainnet/RelayerHubContract @@ -0,0 +1 @@ +6080604052600436106101d85760003560e01c80637ae2308811610102578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610569578063fb7cfdd71461057e578063fc3e590814610593578063fd6a6879146105a8576101d8565b8063c81b166214610515578063dc927faf1461052a578063e1c7392a1461053f578063e79a198f14610554576101d8565b8063a1a11bf5116100d1578063a1a11bf514610407578063a78abc161461041c578063ab51bb9614610431578063ac43175114610446576101d8565b80637ae23088146103b357806395468d26146103c857806396713da9146103dd5780639dc09262146103f2576101d8565b806351e806721161017a57806370fd5bad1161014957806370fd5bad1461035f578063718a8aa81461037457806375d47a0a146103895780637942fd051461039e576101d8565b806351e80672146102c7578063541d5548146102dc5780636a87d780146103235780636e47b4821461034a576101d8565b80633dffc387116101b65780633dffc3871461024657806343756e5c14610271578063493279b1146102865780634bf6c882146102b2576101d8565b80630bee7a67146101dd5780630e2374a51461020b5780631aa3a0081461023c575b600080fd5b3480156101e957600080fd5b506101f26105bd565b6040805163ffffffff9092168252519081900360200190f35b34801561021757600080fd5b506102206105c2565b604080516001600160a01b039092168252519081900360200190f35b6102446105c8565b005b34801561025257600080fd5b5061025b610749565b6040805160ff9092168252519081900360200190f35b34801561027d57600080fd5b5061022061074e565b34801561029257600080fd5b5061029b610754565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b5061025b610759565b3480156102d357600080fd5b5061022061075e565b3480156102e857600080fd5b5061030f600480360360208110156102ff57600080fd5b50356001600160a01b0316610764565b604080519115158252519081900360200190f35b34801561032f57600080fd5b50610338610782565b60408051918252519081900360200190f35b34801561035657600080fd5b50610220610788565b34801561036b57600080fd5b5061025b61078e565b34801561038057600080fd5b5061025b610793565b34801561039557600080fd5b50610220610798565b3480156103aa57600080fd5b5061025b61079e565b3480156103bf57600080fd5b506103386107a3565b3480156103d457600080fd5b506103386107b0565b3480156103e957600080fd5b5061025b6107bc565b3480156103fe57600080fd5b506102206107c1565b34801561041357600080fd5b506102206107c7565b34801561042857600080fd5b5061030f6107cd565b34801561043d57600080fd5b506101f26107d6565b34801561045257600080fd5b506102446004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460018302840111640100000000831117156104b857600080fd5b9193909290916020810190356401000000008111156104d657600080fd5b8201836020820111156104e857600080fd5b8035906020019184600183028401116401000000008311171561050a57600080fd5b5090925090506107db565b34801561052157600080fd5b50610220610bfd565b34801561053657600080fd5b50610220610c03565b34801561054b57600080fd5b50610244610c09565b34801561056057600080fd5b50610244610c8b565b34801561057557600080fd5b50610220610e44565b34801561058a57600080fd5b50610338610e4a565b34801561059f57600080fd5b5061025b610e50565b3480156105b457600080fd5b50610220610e55565b606481565b61200181565b3360009081526004602052604090205460ff1615610625576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610678576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61068133610e5b565b156106bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806110486027913960400191505060405180910390fd5b333214610707576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b6040805162461bcd60e51b81526020600482015260126024820152711c9959da5cdd195c881cdd5cdc195b99195960721b604482015290519081900360640190fd5b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b601081565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661082e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461086e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061106f602e913960400191505060405180910390fd5b6108d484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e619050565b156109d757602081146109185760405162461bcd60e51b815260040180806020018281038252602281526020018061109d6022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161095691858580838501838280828437600092019190915250610f4892505050565b90506001811180156109715750683635c9adc5dea000008111155b801561097e575060025481115b6109cf576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b6b565b610a3284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e619050565b15610b2e5760208114610a8c576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610aca91858580838501838280828437600092019190915250610f4892505050565b9050600081118015610add575060015481105b610b26576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b6b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c61576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610ce6576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d39576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d4161102d565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610d85919063ffffffff610f4d16565b6040518115909202916000818181858888f19350505050158015610dad573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610de3573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610e965780518252601f199092019160209182019101610e77565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f045780518252601f199092019160209182019101610ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610f8f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b9392505050565b600081848411156110255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fea578181015183820152602001610fd2565b50505050905090810190601f1680156110175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a26469706673582212201c4e7448b0b43bce697ca53ce9878e494069d8ceccfdd4081cee4d8b0deb5ae064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/moran/types.go b/core/systemcontracts/moran/types.go new file mode 100644 index 0000000000..7a798175ab --- /dev/null +++ b/core/systemcontracts/moran/types.go @@ -0,0 +1,23 @@ +package moran + +import _ "embed" + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/RelayerHubContract + MainnetRelayerHubContract string + //go:embed mainnet/LightClientContract + MainnetLightClientContract string + //go:embed mainnet/CrossChainContract + MainnetCrossChainContract string +) + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/RelayerHubContract + ChapelRelayerHubContract string + //go:embed chapel/LightClientContract + ChapelLightClientContract string + //go:embed chapel/CrossChainContract + ChapelCrossChainContract string +) diff --git a/core/systemcontracts/niels/chapel/CrossChainContract b/core/systemcontracts/niels/chapel/CrossChainContract new file mode 100644 index 0000000000..384a310064 --- /dev/null +++ b/core/systemcontracts/niels/chapel/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102485760003560e01c8063863fe4ab1161013b578063c81b1662116100b8578063e3b048051161007c578063e3b048051461072c578063f7a251d71461074c578063f9a2bbc7146107c4578063fc3e5908146107cc578063fd6a6879146107d457610248565b8063c81b1662146106dd578063d31f968d146106e5578063d76a867514610714578063dc927faf1461071c578063e1c7392a1461072457610248565b8063a78abc16116100ff578063a78abc16146105d3578063ab51bb96146105db578063ac431751146105e3578063b0355f5b146103ff578063c27cdcfb146106a157610248565b8063863fe4ab146105b35780638cc8f561146104b657806396713da9146105bb5780639dc09262146105c3578063a1a11bf5146105cb57610248565b8063493279b1116101c957806370fd5bad1161018d57806370fd5bad146104b657806374f079b8146104be57806375d47a0a146104c65780637942fd05146104ce57806384013b6a146104d657610248565b8063493279b11461045f5780634bf6c8821461047e57806351e80672146104865780636e47a51a1461048e5780636e47b482146104ae57610248565b8063308325f411610210578063308325f4146102cf5780633bdc47a6146102d75780633dffc387146103ff578063422f90501461040757806343756e5c1461043b57610248565b806305e682581461024d5780630bee7a671461026b57806314b3023b1461028c57806322556cdc146102a65780632ff32aea146102ae575b600080fd5b6102556107dc565b6040805160ff9092168252519081900360200190f35b6102736107e1565b6040805163ffffffff9092168252519081900360200190f35b6102946107e6565b60408051918252519081900360200190f35b6102946107ec565b6102b66107f1565b60408051600792830b90920b8252519081900360200190f35b6102946107fa565b61038a600480360360608110156102ed57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561031657600080fd5b82018360208201111561032857600080fd5b803590602001918460018302840111600160201b8311171561034957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610800945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610255610876565b6104276004803603602081101561041d57600080fd5b503560ff1661087b565b604080519115158252519081900360200190f35b610443610890565b604080516001600160a01b039092168252519081900360200190f35b610467610896565b6040805161ffff9092168252519081900360200190f35b61025561089b565b6104436108a0565b610443600480360360208110156104a457600080fd5b503560ff166108a6565b6104436108c1565b6102556108c7565b6102946108cc565b6104436108d2565b6102556108d8565b6105b1600480360360a08110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460018302840111600160201b8311171561053957600080fd5b919390929091602081019035600160201b81111561055657600080fd5b82018360208201111561056857600080fd5b803590602001918460018302840111600160201b8311171561058957600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166108dd565b005b610294611a8d565b610255611a95565b610443611a9a565b610443611aa0565b610427611aa6565b6102736107dc565b6105b1600480360360408110156105f957600080fd5b810190602081018135600160201b81111561061357600080fd5b82018360208201111561062557600080fd5b803590602001918460018302840111600160201b8311171561064657600080fd5b919390929091602081019035600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b509092509050611aaf565b6106c1600480360360208110156106b757600080fd5b503560ff16612051565b604080516001600160401b039092168252519081900360200190f35b61044361206c565b610427600480360360408110156106fb57600080fd5b5080356001600160a01b0316906020013560ff16612072565b61038a612092565b6104436120b1565b6105b16120b7565b6106c16004803603602081101561074257600080fd5b503560ff1661246e565b6105b16004803603606081101561076257600080fd5b60ff8235169190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460018302840111600160201b831117156107b957600080fd5b919350915035612489565b6104436125da565b6102556125e0565b6104436125e5565b600081565b606481565b60015481565b603281565b60045460070b81565b60025481565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015610838576020820181803683370190505b506021810186905260018101879052828152905060418101600061085b866125eb565b50905061086a818388516125f5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b60035481565b61100881565b600b81565b60005460ff16610930576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d602081101561099957600080fd5b50516109ec576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610a5c576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b5051610b385760405162461bcd60e51b8152600401808060200182810382526023815260200180612bcc6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610ba7576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60608c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805163cba510a960e01b81526001600160401b038f1660048201529051939450610cce93611003935063cba510a992506024808301926020929190829003018186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505160408051808201909152600381526269626360e81b6020820152610cc78c8c612636565b858561267d565b610d16576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038c16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b5051905088600080806060610da08861277a565b935093509350935083610e61578460ff168f6001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8a6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1a578181015183820152602001610e02565b50505050905090810190601f168015610e475780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050611a7f565b8460ff168f6001600160401b03167f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad4085604051808260ff1660ff16815260200191505060405180910390a360ff83166113ea5760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015610f32578181015183820152602001610f1a565b50505050905090810190601f168015610f5f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610f7f57600080fd5b505af192505050801561106357506040513d6000823e601f3d908101601f191682016040526020811015610fb257600080fd5b8101908080516040519392919084600160201b821115610fd157600080fd5b908301906020820185811115610fe657600080fd5b8251600160201b811182820188101715610fff57600080fd5b82525081516020918201929091019080838360005b8381101561102c578181015183820152602001611014565b50505050905090810190601f1680156110595780820380516001836020036101000a031916815260200191505b5060405250505060015b611375576040516000815260443d101561107f5750600061111a565b60046000803e60005160e01c6308c379a081146110a057600091505061111a565b60043d036004833e81513d60248201116001600160401b03821117156110cb5760009250505061111a565b80830180516001600160401b038111156110ec57600094505050505061111a565b8060208301013d860181111561110a5760009550505050505061111a565b601f01601f191660405250925050505b806111255750611237565b60ff871660009081526007602052604081205461115c916001600160401b039091169089906111579060029088610800565b61282a565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156111f75781810151838201526020016111df565b50505050905090810190601f1680156112245780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611370565b3d808015611261576040519150601f19603f3d011682016040523d82523d6000602084013e611266565b606091505b5060ff8716600090815260076020526040812054611299916001600160401b039091169089906111579060029088610800565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561133457818101518382015260200161131c565b50505050905090810190601f1680156113615780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6113e4565b8051156113e25760ff87166000908152600760205260408120546113ae916001600160401b039091169089906111579060019086610800565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506119b8565b60ff83166001141561168e5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114c157600080fd5b505af19250505080156114d2575060015b6113e4576040516000815260443d10156114ee57506000611589565b60046000803e60005160e01c6308c379a0811461150f576000915050611589565b60043d036004833e81513d60248201116001600160401b038211171561153a57600092505050611589565b80830180516001600160401b0381111561155b576000945050505050611589565b8060208301013d860181111561157957600095505050505050611589565b601f01601f191660405250925050505b8061159457506115f9565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156111f75781810151838201526020016111df565b3d808015611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561133457818101518382015260200161131c565b60ff8316600214156119b85760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b83811015611718578181015183820152602001611700565b50505050905090810190601f1680156117455780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561176557600080fd5b505af1925050508015611776575060015b6119b6576040516000815260443d10156117925750600061182d565b60046000803e60005160e01c6308c379a081146117b357600091505061182d565b60043d036004833e81513d60248201116001600160401b03821117156117de5760009250505061182d565b80830180516001600160401b038111156117ff57600094505050505061182d565b8060208301013d860181111561181d5760009550505050505061182d565b601f01601f191660405250925050505b8061183857506118e1565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118a1578181015183820152602001611889565b50505050905090810190601f1680156118ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506119b6565b3d80801561190b576040519150601f19603f3d011682016040523d82523d6000602084013e611910565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561197a578181015183820152602001611962565b50505050905090810190601f1680156119a75780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e69189913391879116806119ea575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b505050505050505050505b505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611aef5760405162461bcd60e51b815260040180806020018281038252602e815260200180612b22602e913960400191505060405180910390fd5b611b5884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506129809050565b15611bf357604080516020601f8401819004810282018101909252828152600091611b9b91858580838501838280828437600092019190915250612a6792505050565b90506127108111158015611bb05750600a8110155b611beb5760405162461bcd60e51b8152600401808060200182810382526032815260200180612b9a6032913960400191505060405180910390fd5b600155611fbf565b611c5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506129809050565b15611de457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611cdf5760405162461bcd60e51b815260040180806020018281038252605a815260200180612ac8605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611cfd81612a6c565b611d4e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050611fbf565b611e5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506129809050565b15611f8257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050611ed45760405162461bcd60e51b815260040180806020018281038252604a815260200180612b50604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015611f78576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050611fbf565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff161561210f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff166124dc576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166125395760405162461bcd60e51b8152600401808060200182810382526031815260200180612a976031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261259e9284928a9261115792909189918c908c908190840183828082843760009201919091525061080092505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b60208110612615578251825260209283019290910190601f19016125f6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561268c57506000612771565b606082518451865160800101016040519080825280601f01601f1916602001820160405280156126c3576020820181803683370190505b50905060006126d182612a72565b6020808901518252019050866000806126e9896125eb565b80865260209095019490925090506127028285836125f5565b9283019261270f886125eb565b80865260209095019490925090506127288285836125f5565b9283018a81526020019261273b876125eb565b909250905061274b8285836125f5565b508351602001612759612a78565b60208183886065600019fa5051600114955050505050505b95945050505050565b600080600060606021855110156127aa575050604080516000808252602082019092529092508291508190612823565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156127f5576020820181803683370190505b5090506000612803826125eb565b509050612815858260218d51036125f5565b506001975091955093509150505b9193509193565b600254431115612869576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556128aa565b600380546001908101918290555410156128aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612940578181015183820152602001612928565b50505050905090810190601f16801561296d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106129b55780518252601f199092019160209182019101612996565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a26469706673582212207ab71aabd28c992023fb9ff6fe581825d14cb96a7bc39321484311e85804154864736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/chapel/GovHubContract b/core/systemcontracts/niels/chapel/GovHubContract new file mode 100644 index 0000000000..17b5db97f8 --- /dev/null +++ b/core/systemcontracts/niels/chapel/GovHubContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061018e5760003560e01c8063831d65d1116100de578063ab51bb9611610097578063dc927faf11610071578063dc927faf14610486578063f9a2bbc71461048e578063fc3e590814610496578063fd6a68791461049e5761018e565b8063ab51bb96146103fc578063c81b166214610404578063c8509d811461040c5761018e565b8063831d65d11461034457806396713da9146103c05780639ab1a373146103c85780639dc09262146103d0578063a1a11bf5146103d8578063a78abc16146103e05761018e565b8063493279b11161014b5780636e47b482116101255780636e47b4821461032457806370fd5bad1461032c57806375d47a0a146103345780637942fd051461033c5761018e565b8063493279b1146102f55780634bf6c8821461031457806351e806721461031c5761018e565b80630bee7a67146101935780631182b875146101b45780633a21baae146102a35780633dffc387146102ab57806343756e5c146102c95780634900c4ea146102ed575b600080fd5b61019b6104a6565b6040805163ffffffff9092168252519081900360200190f35b61022e600480360360408110156101ca57600080fd5b60ff82351691908101906040810160208201356401000000008111156101ef57600080fd5b82018360208201111561020157600080fd5b8035906020019184600183028401116401000000008311171561022357600080fd5b5090925090506104ab565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b61059a565b6102b361059f565b6040805160ff9092168252519081900360200190f35b6102d16105a4565b604080516001600160a01b039092168252519081900360200190f35b6102b36105aa565b6102fd6105af565b6040805161ffff9092168252519081900360200190f35b6102b36105b4565b6102d16105b9565b6102d16105bf565b6102b36105c5565b6102d16105ca565b6102b36105d0565b6103be6004803603604081101561035a57600080fd5b60ff823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b5090925090506105d5565b005b6102b3610667565b61019b61066c565b6102d1610671565b6102d1610677565b6103e861067d565b604080519115158252519081900360200190f35b61019b6105aa565b6102d1610686565b6103be6004803603604081101561042257600080fd5b60ff823516919081019060408101602082013564010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b50909250905061068c565b6102d1610703565b6102d1610709565b6102b361070f565b6102d1610714565b606481565b606033612000146104ed5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6104f5611382565b600061053685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071a92505050565b91509150806105525761054960646107e0565b92505050610593565b600061055d8361084a565b905063ffffffff811661058457505060408051600081526020810190915291506105939050565b61058d816107e0565b93505050505b9392505050565b606681565b600181565b61100181565b600081565b606181565b600881565b61200081565b61100581565b600281565b61100881565b600b81565b33612000146106155760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61100281565b33612000146106cc5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806114166023913960400191505060405180910390fd5b61100381565b61100081565b600381565b61100481565b610722611382565b600061072c611382565b6107346113ac565b61074561074086610beb565b610c10565b90506000805b61075483610c5a565b156107d357806107765761076f61076a84610c7b565b610cc9565b84526107cb565b80600114156107955761078b61076a84610c7b565b60208501526107cb565b80600214156107c6576107af6107aa84610c7b565b610d42565b6001600160a01b03166040850152600191506107cb565b6107d3565b60010161074b565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816107fa5790505090506108208363ffffffff16610d62565b8160008151811061082d57fe5b602002602001018190525061084181610d75565b9150505b919050565b60006108598260400151610dff565b6108c557604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610845565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561093257818101518382015260200161091a565b50505050905090810190601f16801561095f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561099257818101518382015260200161097a565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156109e057600080fd5b505af19250505080156109f1575060015b610be3576040516000815260443d1015610a0d57506000610aaa565b60046000803e60005160e01c6308c379a08114610a2e576000915050610aaa565b60043d036004833e81513d602482011167ffffffffffffffff82111715610a5a57600092505050610aaa565b808301805167ffffffffffffffff811115610a7c576000945050505050610aaa565b8060208301013d8601811115610a9a57600095505050505050610aaa565b601f01601f191660405250925050505b80610ab55750610b58565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b14578181015183820152602001610afc565b50505050905090810190601f168015610b415780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610845565b3d808015610b82576040519150601f19603f3d011682016040523d82523d6000602084013e610b87565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610b14578181015183820152602001610afc565b506000919050565b610bf36113cc565b506040805180820190915281518152602082810190820152919050565b610c186113ac565b610c2182610e05565b610c2a57600080fd5b6000610c398360200151610e3f565b60208085015160408051808201909152868152920190820152915050919050565b6000610c646113cc565b505080518051602091820151919092015191011190565b610c836113cc565b610c8c82610c5a565b610c9557600080fd5b60208201516000610ca582610ea2565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610cd757600080fd5b6000610ce68360200151610e3f565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610d1d576020820181803683370190505b5090506000816020019050610d39848760200151018285610fd5565b50949350505050565b8051600090601514610d5357600080fd5b610d5c82611020565b92915050565b6060610d5c610d70836110d5565b6111bb565b6060815160001415610d965750604080516000815260208101909152610845565b606082600081518110610da557fe5b602002602001015190506000600190505b8351811015610de657610ddc82858381518110610dcf57fe5b602002602001015161120d565b9150600101610db6565b50610841610df9825160c060ff1661128a565b8261120d565b3b151590565b8051600090610e1657506000610845565b6020820151805160001a9060c0821015610e3557600092505050610845565b5060019392505050565b8051600090811a6080811015610e59576000915050610845565b60b8811080610e74575060c08110801590610e74575060f881105b15610e83576001915050610845565b60c0811015610e975760b519019050610845565b60f519019050610845565b80516000908190811a6080811015610ebd5760019150610fce565b60b8811015610ed257607e1981019150610fce565b60c0811015610f4c57600060b78203600186019550806020036101000a865104915060018101820193505080831015610f46576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50610fce565b60f8811015610f615760be1981019150610fce565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610fcc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80610fdf57610662565b5b60208110610fff578251825260209283019290910190601f1901610fe0565b915181516020939093036101000a6000190180199091169216919091179052565b80516000901580159061103557508151602110155b61103e57600080fd5b600061104d8360200151610e3f565b905080836000015110156110a8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610d3957506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166111195750601861113d565b6fffffffffffffffffffffffffffffffff1984166111395750601061113d565b5060005b60208110156111735781818151811061115257fe5b01602001516001600160f81b0319161561116b57611173565b60010161113d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156111a8576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156111ed5750607f60f81b826000815181106111db57fe5b01602001516001600160f81b03191611155b156111f9575080610845565b610d5c61120b8351608060ff1661128a565b835b6060806040519050835180825260208201818101602087015b8183101561123e578051835260209283019201611226565b50855184518101855292509050808201602086015b8183101561126b578051835260209283019201611253565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106112da576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116113345782840160f81b8160008151811061131657fe5b60200101906001600160f81b031916908160001a9053509050610d5c565b606061133f856110d5565b90508381510160370160f81b8260008151811061135857fe5b60200101906001600160f81b031916908160001a905350611379828261120d565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b60405180604001604052806113bf6113cc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a2646970667358221220401be81505a1aa0dde70753881234490b5e4c39ce009cb7950f994eead5c3f9064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/chapel/LightClientContract b/core/systemcontracts/niels/chapel/LightClientContract new file mode 100644 index 0000000000..a09f201d87 --- /dev/null +++ b/core/systemcontracts/niels/chapel/LightClientContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102115760003560e01c8063a78abc1611610125578063dda83148116100ad578063e405bbc31161007c578063e405bbc314610681578063ea54b2aa14610689578063f9a2bbc714610691578063fc3e590814610699578063fd6a6879146106a157610211565b8063dda8314814610609578063df5fe7041461062f578063e1c7392a14610655578063e2761af01461065d57610211565b8063c81b1662116100f4578063c81b166214610534578063cba510a91461053c578063d816987914610562578063da8d08f0146105db578063dc927faf1461060157610211565b8063a78abc1614610444578063ab51bb9614610460578063ac43175114610468578063adc879e91461052c57610211565b8063564b81ef116101a857806375d47a0a1161017757806375d47a0a1461041c5780637942fd051461042457806396713da91461042c5780639dc0926214610434578063a1a11bf51461043c57610211565b8063564b81ef146102ca5780635c5ae8db146103475780636e47b4821461040c57806370fd5bad1461041457610211565b806343756e5c116101e457806343756e5c14610277578063493279b11461029b5780634bf6c882146102ba57806351e80672146102c257610211565b80630bee7a67146102165780632657e9b61461023757806333f7798d146102515780633dffc38714610259575b600080fd5b61021e6106a9565b6040805163ffffffff9092168252519081900360200190f35b61023f6106ae565b60408051918252519081900360200190f35b61023f6106b9565b6102616106bf565b6040805160ff9092168252519081900360200190f35b61027f6106c4565b604080516001600160a01b039092168252519081900360200190f35b6102a36106ca565b6040805161ffff9092168252519081900360200190f35b6102616106cf565b61027f6106d4565b6102d26106da565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030c5781810151838201526020016102f4565b50505050905090810190601f1680156103395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61036d6004803603602081101561035d57600080fd5b50356001600160401b03166107e6565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ce5781810151838201526020016103b6565b50505050905090810190601f1680156103fb5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61027f6108a1565b6102616108a7565b61027f6108ac565b6102616108b2565b6102616108b7565b61027f6108bc565b61027f6108c2565b61044c6108c8565b604080519115158252519081900360200190f35b61021e6108d1565b61052a6004803603604081101561047e57600080fd5b81019060208101813564010000000081111561049957600080fd5b8201836020820111156104ab57600080fd5b803590602001918460018302840111640100000000831117156104cd57600080fd5b9193909290916020810190356401000000008111156104eb57600080fd5b8201836020820111156104fd57600080fd5b8035906020019184600183028401116401000000008311171561051f57600080fd5b5090925090506108d6565b005b61023f610b8f565b61027f610b95565b61023f6004803603602081101561055257600080fd5b50356001600160401b0316610b9b565b61044c6004803603604081101561057857600080fd5b81019060208101813564010000000081111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460018302840111640100000000831117156105c757600080fd5b9193509150356001600160401b0316610bba565b61027f600480360360208110156105f157600080fd5b50356001600160401b031661139b565b61027f6113b6565b61027f6004803603602081101561061f57600080fd5b50356001600160401b03166113bc565b61044c6004803603602081101561064557600080fd5b50356001600160401b03166113e0565b61052a611422565b6106656115c7565b604080516001600160401b039092168252519081900360200190f35b6106656115d6565b6102d26115ec565b61027f611609565b61026161160f565b61027f611614565b606481565b662386f26fc1000081565b60055481565b600181565b61100181565b606181565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561075057828160ff168151811061072457fe5b01602001516001600160f81b0319161561074357600190910190610748565b610750565b600101610709565b5060608160ff166040519080825280601f01601f191660200182016040528015610781576020820181803683370190505b50905060005b8260ff168160ff1610156107dd57838160ff16815181106107a457fe5b602001015160f81c60f81b828260ff16815181106107be57fe5b60200101906001600160f81b031916908160001a905350600101610787565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905084565b61100581565b600281565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661092d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461096d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac6602e913960400191505060405180910390fd5b6109e184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e676500000000006020820152915061161a9050565b15610ac05760208114610a255760405162461bcd60e51b815260040180806020018281038252602e815260200180611a65602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a639185858083850183828082843760009201919091525061170192505050565b9050600081118015610a7d5750670de0b6b3a76400008111155b610ab85760405162461bcd60e51b815260040180806020018281038252602f815260200180611af4602f913960400191505060405180910390fd5b600555610afd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d6020811015610c2757600080fd5b5051610c7a576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610cee576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b236026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610d56611863565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610e5957506003546001600160401b0390811690831610155b15610f3a5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b5050505050815250509050610e28565b6060810151516110315780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f810183900483028401830190945283835293955090929190830182828015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b505050506060830182905250516110315760405162461bcd60e51b8152600401808060200182810382526021815260200180611a446021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611070576020820181803683370190505b509050600061107e82611706565b905061108c8486838661170c565b6110c75760405162461bcd60e51b81526004018080602001828103825260238152602001806119416023913960400191505060405180910390fd5b6000838201915061110d8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177892505050565b9450905061111c818386611782565b8251602001935061112b611889565b6110008186866064600019fa61114057600080fd5b805194506000600160f81b8616156111cf5750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d60208110156111cc57600080fd5b50505b856001600160401b0316955060208201935060006111ef858884156117c3565b90985090506001600160401b03808216908c161461123e5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a936033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b93926112c59260038501929101906118a8565b50506003546001600160401b03600160401b9091048116908d161115905061130d576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b031615158061141c57506003546001600160401b038381169116145b92915050565b60005460ff161561147a576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061149f60405180610100016040528060e0815260200161196460e09139611778565b815160045590925090506114b1611863565b60006114bf848460006117c3565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff191694169390931783558086015191830191909155918401516002820155606084015180519496509294508593909261152b9260038501929101906118a8565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e0815260200161196460e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b6020831061164f5780518252601f199092019160209182019101611630565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106116bd5780518252601f19909201916020918201910161169e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b600084606001515182840103925060008061172a8760600151611778565b909250905061173a828683611782565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b602081106117a2578251825260209283019290910190601f1901611783565b915181516020939093036101000a6000190180199091169216919091179052565b6117cb611863565b60088401516028850151604890950180519095600092916117ea611863565b6020810183905260408101829052866118555760008060688a036040519080825280601f01601f19166020018201604052801561182e576020820181803683370190505b506060840181905261183f90611778565b909250905061185260208c018383611782565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118e957805160ff1916838001178555611916565b82800160010185558215611916579182015b828111156119165782518255916020019190600101906118fb565b50611922929150611926565b5090565b6107e391905b80821115611922576000815560010161192c56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e676563616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a2646970667358221220137a8776113e727049f523a5f1486edaec611d89ff3d19f099dfe799b6b5e66f64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/chapel/RelayerHubContract b/core/systemcontracts/niels/chapel/RelayerHubContract new file mode 100644 index 0000000000..20488b110b --- /dev/null +++ b/core/systemcontracts/niels/chapel/RelayerHubContract @@ -0,0 +1 @@ +6080604052600436106101c25760003560e01c806395468d26116100f7578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610529578063fb7cfdd71461053e578063fc3e590814610553578063fd6a687914610568576101c2565b8063c81b1662146104d5578063dc927faf146104ea578063e1c7392a146104ff578063e79a198f14610514576101c2565b8063a1a11bf5116100d1578063a1a11bf5146103c7578063a78abc16146103dc578063ab51bb96146103f1578063ac43175114610406576101c2565b806395468d261461038857806396713da91461039d5780639dc09262146103b2576101c2565b8063541d55481161016457806370fd5bad1161013e57806370fd5bad1461033457806375d47a0a146103495780637942fd051461035e5780637ae2308814610373576101c2565b8063541d5548146102b15780636a87d780146102f85780636e47b4821461031f576101c2565b806343756e5c116101a057806343756e5c1461022a578063493279b11461025b5780634bf6c8821461028757806351e806721461029c576101c2565b80630bee7a67146101c75780631aa3a008146101f55780633dffc387146101ff575b600080fd5b3480156101d357600080fd5b506101dc61057d565b6040805163ffffffff9092168252519081900360200190f35b6101fd610582565b005b34801561020b57600080fd5b5061021461077d565b6040805160ff9092168252519081900360200190f35b34801561023657600080fd5b5061023f610782565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b50610270610788565b6040805161ffff9092168252519081900360200190f35b34801561029357600080fd5b5061021461078d565b3480156102a857600080fd5b5061023f610792565b3480156102bd57600080fd5b506102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610798565b604080519115158252519081900360200190f35b34801561030457600080fd5b5061030d6107b6565b60408051918252519081900360200190f35b34801561032b57600080fd5b5061023f6107bc565b34801561034057600080fd5b506102146107c2565b34801561035557600080fd5b5061023f6107c7565b34801561036a57600080fd5b506102146107cd565b34801561037f57600080fd5b5061030d6107d2565b34801561039457600080fd5b5061030d6107df565b3480156103a957600080fd5b506102146107eb565b3480156103be57600080fd5b5061023f6107f0565b3480156103d357600080fd5b5061023f6107f6565b3480156103e857600080fd5b506102e46107fc565b3480156103fd57600080fd5b506101dc610805565b34801561041257600080fd5b506101fd6004803603604081101561042957600080fd5b81019060208101813564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91939092909160208101903564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b50909250905061080a565b3480156104e157600080fd5b5061023f610c2c565b3480156104f657600080fd5b5061023f610c32565b34801561050b57600080fd5b506101fd610c38565b34801561052057600080fd5b506101fd610cba565b34801561053557600080fd5b5061023f610e73565b34801561054a57600080fd5b5061030d610e79565b34801561055f57600080fd5b50610214610e7f565b34801561057457600080fd5b5061023f610e84565b606481565b3360009081526004602052604090205460ff16156105df576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610632576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61063b33610e8a565b156106775760405162461bcd60e51b815260040180806020018281038252602781526020018061109c6027913960400191505060405180910390fd5b3332146106c1576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b60015434146107015760405162461bcd60e51b81526004018080602001828103825260258152602001806110776025913960400191505060405180910390fd5b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004815290849020805460ff1916909217909155825191825291517fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae623157767959496929181900390910190a1565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661085d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461089d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110c3602e913960400191505060405180910390fd5b61090384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e909050565b15610a0657602081146109475760405162461bcd60e51b81526004018080602001828103825260228152602001806110f16022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161098591858580838501838280828437600092019190915250610f7792505050565b90506001811180156109a05750683635c9adc5dea000008111155b80156109ad575060025481115b6109fe576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b9a565b610a6184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e909050565b15610b5d5760208114610abb576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610af991858580838501838280828437600092019190915250610f7792505050565b9050600081118015610b0c575060015481105b610b55576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b9a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c90576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610d15576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d68576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d7061105c565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610db4919063ffffffff610f7c16565b6040518115909202916000818181858888f19350505050158015610ddc573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610e12573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610ec55780518252601f199092019160209182019101610ea6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f335780518252601f199092019160209182019101610f14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610fbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b9392505050565b600081848411156110545760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611019578181015183820152602001611001565b50505050905090810190601f1680156110465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe6465706f7369742076616c7565206973206e6f742065786163746c79207468652073616d65636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a26469706673582212205b3719dbe352a0da1c7c0fda084d877d745e453695a354811ae82144145a56ae64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/chapel/RelayerIncentivizeContract b/core/systemcontracts/niels/chapel/RelayerIncentivizeContract new file mode 100644 index 0000000000..2603115f59 --- /dev/null +++ b/core/systemcontracts/niels/chapel/RelayerIncentivizeContract @@ -0,0 +1 @@ +6080604052600436106102765760003560e01c80637e146cc51161014f578063af400681116100c1578063e75d72c71161007a578063e75d72c714610795578063e89a3020146107c8578063f9a2bbc7146107f2578063fc3e590814610807578063fd6a68791461081c578063fdd31fcd146108315761027d565b8063af400681146106ed578063bd4cc83014610717578063c81b166214610741578063dc927faf14610756578063dcae76ab1461076b578063e1c7392a146107805761027d565b8063a3c3c0ad11610113578063a3c3c0ad146105b3578063a78abc16146105c8578063a7c6a59d146105dd578063ab51bb96146105f2578063ac43175114610607578063ace9fcc2146106d85761027d565b80637e146cc51461052c578063930e1b091461054157806396713da9146105745780639dc0926214610589578063a1a11bf51461059e5761027d565b806343756e5c116101e85780636e47b482116101ac5780636e47b482146104645780636f93d2e61461047957806370fd5bad146104d857806374f2272d146104ed57806375d47a0a146105025780637942fd05146105175761027d565b806343756e5c146103e4578063493279b1146103f95780634bf6c8821461042557806351e806721461043a578063541333071461044f5761027d565b806312950c461161023a57806312950c46146103165780631b20087c1461032b5780631c643312146103405780633a975612146102825780633dffc3871461038657806340bb43c0146103b15761027d565b8063081e9d131461028257806308f2ec06146102a9578063093f2fc4146102be5780630bee7a67146102d357806310e06a76146103015761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610864565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610869565b3480156102ca57600080fd5b5061029761086e565b3480156102df57600080fd5b506102e8610873565b6040805163ffffffff9092168252519081900360200190f35b34801561030d57600080fd5b50610297610878565b34801561032257600080fd5b5061029761087e565b34801561033757600080fd5b50610297610884565b34801561034c57600080fd5b5061036a6004803603602081101561036357600080fd5b503561088a565b604080516001600160a01b039092168252519081900360200190f35b34801561039257600080fd5b5061039b610864565b6040805160ff9092168252519081900360200190f35b3480156103bd57600080fd5b50610297600480360360208110156103d457600080fd5b50356001600160a01b03166108b1565b3480156103f057600080fd5b5061036a6108c3565b34801561040557600080fd5b5061040e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561043157600080fd5b5061039b6108ce565b34801561044657600080fd5b5061036a6108d3565b34801561045b57600080fd5b50610297610873565b34801561047057600080fd5b5061036a6108d9565b34801561048557600080fd5b506104c46004803603608081101561049c57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108df565b604080519115158252519081900360200190f35b3480156104e457600080fd5b5061039b610cad565b3480156104f957600080fd5b50610297610cb2565b34801561050e57600080fd5b5061036a610cb8565b34801561052357600080fd5b5061039b610cbe565b34801561053857600080fd5b50610297610cc3565b34801561054d57600080fd5b506102976004803603602081101561056457600080fd5b50356001600160a01b0316610cc8565b34801561058057600080fd5b5061039b610cda565b34801561059557600080fd5b5061036a610cdf565b3480156105aa57600080fd5b5061036a610ce5565b3480156105bf57600080fd5b50610297610ceb565b3480156105d457600080fd5b506104c4610cf1565b3480156105e957600080fd5b50610297610cfa565b3480156105fe57600080fd5b506102e8610d00565b34801561061357600080fd5b506106d66004803603604081101561062a57600080fd5b81019060208101813564010000000081111561064557600080fd5b82018360208201111561065757600080fd5b8035906020019184600183028401116401000000008311171561067957600080fd5b91939092909160208101903564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b509092509050610d05565b005b3480156106e457600080fd5b50610297611354565b3480156106f957600080fd5b506102976004803603602081101561071057600080fd5b503561135a565b34801561072357600080fd5b506102976004803603602081101561073a57600080fd5b50356113b5565b34801561074d57600080fd5b5061036a6113ce565b34801561076257600080fd5b5061036a6113d4565b34801561077757600080fd5b506102976113da565b34801561078c57600080fd5b506106d66113e0565b3480156107a157600080fd5b506106d6600480360360208110156107b857600080fd5b50356001600160a01b03166114a9565b3480156107d457600080fd5b5061036a600480360360208110156107eb57600080fd5b5035611602565b3480156107fe57600080fd5b5061036a61160f565b34801561081357600080fd5b5061039b611615565b34801561082857600080fd5b5061036a61161a565b34801561083d57600080fd5b506102976004803603602081101561085457600080fd5b50356001600160a01b0316611620565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b6006818154811061089757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606181565b600881565b61200081565b61100581565b6000805460ff16610937576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f815260200180612164602f913960400191505060405180910390fd5b600082156109fc57604080516309a99b4f60e41b8152611005600482015260248101869052905161100291639a99b4f09160448083019260209291908290030181600087803b1580156109c957600080fd5b505af11580156109dd573d6000803e3d6000fd5b505050506040513d60208110156109f357600080fd5b50519050610a75565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b505190505b600c805460010190556000610a8982611632565b600954909150610a9f908263ffffffff61166116565b600955600a54610ac7908290610abb908563ffffffff61166116565b9063ffffffff6116c216565b600a556001600160a01b038716600090815260056020526040902054610b3357600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610bb157600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610ca057600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610c2b611704565b90506000610c376119e8565b6001600160a01b0389166000908152600d6020526040902054909150610c75908290610c69908563ffffffff61166116565b9063ffffffff61166116565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610d455760405162461bcd60e51b815260040180806020018281038252602e8152602001806120a9602e913960400191505060405180910390fd5b60005460ff16610d865760405162461bcd60e51b81526004018080602001828103825260218152602001806120d76021913960400191505060405180910390fd5b610dfa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611c669050565b15610ec75760208114610e3e5760405162461bcd60e51b81526004018080602001828103825260328152602001806121936032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610e7c91858580838501838280828437600092019190915250611d4d92505050565b9050600254811115610ebf5760405162461bcd60e51b8152600401808060200182810382526060815260200180611f826060913960600191505060405180910390fd5b6001556112c2565b610f2084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160608101909152602280825290925090506120876020830139611c66565b15610ff85760208114610f645760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610fa291858580838501838280828437600092019190915250611d4d92505050565b90508015801590610fb557506001548110155b610ff05760405162461bcd60e51b815260040180806020018281038252606c8152602001806120f8606c913960800191505060405180910390fd5b6002556112c2565b61106c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611c669050565b1561113957602081146110b05760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916110ee91858580838501838280828437600092019190915250611d4d92505050565b90506004548111156111315760405162461bcd60e51b8152600401808060200182810382526056815260200180611fe26056913960600191505060405180910390fd5b6003556112c2565b6111ad84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611c669050565b1561128557602081146111f15760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161122f91858580838501838280828437600092019190915250611d4d92505050565b9050801580159061124257506003548110155b61127d5760405162461bcd60e51b8152600401808060200182810382526061815260200180611f216061913960800191505060405180910390fd5b6004556112c2565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161136b5750806113b0565b81602810801561137c575060508211155b15611389575060286113b0565b60508211801561139a5750606e8211155b156113aa575060788190036113b0565b50600481045b919050565b6000602882116113c65750806113b0565b5060286113b0565b61100281565b61100381565b60095481565b60005460ff1615611438576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611486576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d602052604090205480611508576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506115b85760405161100290819084156108fc029085906000818181858888f19350505050158015611572573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506115ff565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b6008818154811061089757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600061165b60025461164f60015485611d5290919063ffffffff16565b9063ffffffff611dab16565b92915050565b6000828201838110156116bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ded565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561176057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611742575b5050505050905060608151604051908082528060200260200182016040528015611794578160200160208202803683370190505b50905060005b82518110156118215760008382815181106117b157fe5b6020026020010151905060006117eb60056000846001600160a01b03166001600160a01b03168152602001908152602001600020546113b5565b9050808484815181106117fa57fe5b6020908102919091010152611815868263ffffffff61166116565b9550505060010161179a565b50600061183f60045461164f60035488611d5290919063ffffffff16565b9050611851858263ffffffff6116c216565b94508460015b845181101561192857600061188c8761164f8a88868151811061187657fe5b6020026020010151611d5290919063ffffffff16565b90506118d981600d60008986815181106118a257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461166190919063ffffffff16565b600d60008885815181106118e957fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205561191d838263ffffffff6116c216565b925050600101611857565b5061193e81600d6000876000815181106118a257fe5b600d60008660008151811061194f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b84518110156119d057600560008683815181106119a257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611989565b506119dd60066000611ee9565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611a4457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a26575b5050505050905060608151604051908082528060200260200182016040528015611a78578160200160208202803683370190505b50905060005b8251811015611af7576000838281518110611a9557fe5b602002602001015190506000611acf60076000846001600160a01b03166001600160a01b031681526020019081526020016000205461135a565b905080848481518110611ade57fe5b6020908102919091010152949094019350600101611a7e565b506000611b1560045461164f60035488611d5290919063ffffffff16565b9050611b27858263ffffffff6116c216565b94508460015b8451811015611bb1576000611b4c8761164f8a88868151811061187657fe5b9050611b6281600d60008986815181106118a257fe5b600d6000888581518110611b7257fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611ba6838263ffffffff6116c216565b925050600101611b2d565b50611bc781600d6000876000815181106118a257fe5b600d600086600081518110611bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611c595760076000868381518110611c2b57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611c12565b506119dd60086000611ee9565b6000816040516020018082805190602001908083835b60208310611c9b5780518252601f199092019160209182019101611c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d095780518252601f199092019160209182019101611cea565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611d615750600061165b565b82820282848281611d6e57fe5b04146116bb5760405162461bcd60e51b81526004018080602001828103825260218152602001806120666021913960400191505060405180910390fd5b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b60008184841115611e7c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e41578181015183820152602001611e29565b50505050905090810190601f168015611e6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e41578181015183820152602001611e29565b506000838581611edf57fe5b0495945050505050565b50805460008255906000526020600020908101906115ff91906119e591905b80821115611f1c5760008155600101611f08565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220b0f586134d92421afeb7764dfa9711bf04e0920aa1729c40e9183ccccafbb49d64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/chapel/SlashContract b/core/systemcontracts/niels/chapel/SlashContract new file mode 100644 index 0000000000..1c1d602eab --- /dev/null +++ b/core/systemcontracts/niels/chapel/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102275760003560e01c8063831d65d111610130578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a146106d9578063f9a2bbc7146106e1578063fc3e5908146106e9578063fc4333cd146106f1578063fd6a6879146106f957610227565b8063c80d4b8f14610623578063c81b16621461062b578063c8509d8114610633578063c96be4cb146106ab578063dc927faf146106d157610227565b8063a1a11bf5116100ff578063a1a11bf514610531578063a78abc1614610539578063ab51bb9614610555578063ac0af6291461055d578063ac4317511461056557610227565b8063831d65d11461049f57806396713da9146105195780639bc8e4f2146105215780639dc092621461052957610227565b80634bf6c882116101b35780636e47b482116101825780636e47b4821461047757806370fd5bad1461047f57806375d47a0a146104875780637912a65d1461048f5780637942fd051461049757610227565b80634bf6c8821461045757806351e806721461045f578063567a372d1461046757806362b72cf51461046f57610227565b806337c8dab9116101fa57806337c8dab9146103b9578063389f4f71146103f85780633dffc3871461041257806343756e5c14610430578063493279b11461043857610227565b80630bee7a671461022c5780631182b8751461024d57806323bac5a21461033a57806335aa2e4414610380575b600080fd5b610234610701565b6040805163ffffffff9092168252519081900360200190f35b6102c56004803603604081101561026357600080fd5b60ff8235169190810190604081016020820135600160201b81111561028757600080fd5b82018360208201111561029957600080fd5b803590602001918460018302840111600160201b831117156102ba57600080fd5b509092509050610706565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ff5781810151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103606004803603602081101561035057600080fd5b50356001600160a01b03166107da565b604080519384526020840192909252151582820152519081900360600190f35b61039d6004803603602081101561039657600080fd5b50356107fd565b604080516001600160a01b039092168252519081900360200190f35b6103df600480360360208110156103cf57600080fd5b50356001600160a01b0316610824565b6040805192835260208301919091528051918290030190f35b61040061087b565b60408051918252519081900360200190f35b61041a610881565b6040805160ff9092168252519081900360200190f35b61039d610886565b61044061088c565b6040805161ffff9092168252519081900360200190f35b61041a610891565b61039d610896565b61040061089c565b6104006108a2565b61039d6108a8565b61041a6108ae565b61039d6108b3565b6104006108b9565b61041a6108be565b610517600480360360408110156104b557600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d957600080fd5b8201836020820111156104eb57600080fd5b803590602001918460018302840111600160201b8311171561050c57600080fd5b5090925090506108c3565b005b61041a610a1e565b610400610a23565b61039d610a2e565b61039d610a34565b610541610a3a565b604080519115158252519081900360200190f35b610234610a43565b610400610a48565b6105176004803603604081101561057b57600080fd5b810190602081018135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460018302840111600160201b831117156105c857600080fd5b919390929091602081019035600160201b8111156105e557600080fd5b8201836020820111156105f757600080fd5b803590602001918460018302840111600160201b8311171561061857600080fd5b509092509050610a4d565b610400610e3b565b61039d610e40565b6105176004803603604081101561064957600080fd5b60ff8235169190810190604081016020820135600160201b81111561066d57600080fd5b82018360208201111561067f57600080fd5b803590602001918460018302840111600160201b831117156106a057600080fd5b509092509050610e46565b610517600480360360208110156106c157600080fd5b50356001600160a01b0316610ef9565b61039d61131e565b610517611324565b61039d611395565b61041a61139b565b6105176113a0565b61039d61182b565b606481565b606033612000146107485760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff1661078d576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061080a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061082f612146565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b33612000146109035760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610948576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b610950612169565b600061099184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061183192505050565b9150915080156109db5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a17565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15b5050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610a92576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b3361100714610ad25760405162461bcd60e51b815260040180806020018281038252602e81526020018061220d602e913960400191505060405180910390fd5b610b3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506118b19050565b15610c165760208114610b815760405162461bcd60e51b81526004018080602001828103825260278152602001806121b66027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610bbf9185858083850183828082843760009201919091525061199992505050565b905060018110158015610bd3575060055481105b610c0e5760405162461bcd60e51b815260040180806020018281038252602581526020018061225d6025913960400191505060405180910390fd5b600455610da9565b610c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506118b19050565b15610d6c5760208114610cc05760405162461bcd60e51b815260040180806020018281038252602281526020018061223b6022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610cfe9185858083850183828082843760009201919091525061199992505050565b90506103e88111158015610d13575060045481115b610d64576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610da9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b3361200014610e865760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610ecb576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610f375760405162461bcd60e51b815260040180806020018281038252602d8152602001806122b1602d913960400191505060405180910390fd5b60005460ff16610f7c576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6003544311610fd2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a1561101c576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b611024612146565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061107f5760208101805160010190526110d8565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b4381526005546020820151816110ea57fe5b0661123c57600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6111718561199e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156111d15781810151838201526020016111b9565b50505050905090810190601f1680156111fe5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561121f57600080fd5b505af1158015611233573d6000803e3d6000fd5b505050506112b2565b60045481602001518161124b57fe5b066112b257604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505043600355565b61100381565b60005460ff161561137c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146113e05760405162461bcd60e51b81526004018080602001828103825260308152602001806121dd6030913960400191505060405180910390fd5b60005460ff16611425576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b60015461143157611829565b600154600090600019015b8082116117fd576000805b8284101561156057611457612146565b600260006001878154811061146857fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff16151590820152600554909150600490048160200151111561154a576004600554816114d557fe5b048160200151038160200181815250508060026000600188815481106114f757fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611554565b6001925050611560565b50600190930192611447565b8284116116f75761156f612146565b600260006001868154811061158057fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611668576004600554816115ed57fe5b0481602001510381602001818152505080600260006001878154811061160f57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506116f79050565b600260006001868154811061167957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806116bd57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836116ea57506116f7565b5060001990920191611560565b8180156117015750805b156117e057600260006001868154811061171757fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061175e57fe5b600091825260209091200154600180546001600160a01b03909216918690811061178457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117bd57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b826117ec5750506117fd565b50506001909101906000190161143c565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b611839612169565b6000611843612169565b61184b61217b565b61185c61185786611a70565b611a95565b90506000805b61186b83611adf565b156118a457806118975761188661188184611b00565b611b4e565b63ffffffff1684526001915061189c565b6118a4565b600101611862565b5091935090915050915091565b6000816040516020018082805190602001908083835b602083106118e65780518252601f1990920191602091820191016118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106119545780518252601f199092019160209182019101611935565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816119b95790505090506119e2836001600160a01b0316611c05565b816000815181106119ef57fe5b6020026020010181905250611a0343611c28565b81600181518110611a1057fe5b6020908102919091010152611a256061611c28565b81600281518110611a3257fe5b6020026020010181905250611a4642611c28565b81600381518110611a5357fe5b6020026020010181905250611a6781611c3b565b9150505b919050565b611a7861219b565b506040805180820190915281518152602082810190820152919050565b611a9d61217b565b611aa682611cc5565b611aaf57600080fd5b6000611abe8360200151611cff565b60208085015160408051808201909152868152920190820152915050919050565b6000611ae961219b565b505080518051602091820151919092015191011190565b611b0861219b565b611b1182611adf565b611b1a57600080fd5b60208201516000611b2a82611d62565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611b6357508151602110155b611b6c57600080fd5b6000611b7b8360200151611cff565b90508083600001511015611bd6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611bfc57826020036101000a820491505b50949350505050565b60408051600560a21b8318601482015260348101909152606090611a6781611e95565b6060611993611c3683611eeb565b611e95565b6060815160001415611c5c5750604080516000815260208101909152611a6b565b606082600081518110611c6b57fe5b602002602001015190506000600190505b8351811015611cac57611ca282858381518110611c9557fe5b6020026020010151611fd1565b9150600101611c7c565b50611a67611cbf825160c060ff1661204e565b82611fd1565b8051600090611cd657506000611a6b565b6020820151805160001a9060c0821015611cf557600092505050611a6b565b5060019392505050565b8051600090811a6080811015611d19576000915050611a6b565b60b8811080611d34575060c08110801590611d34575060f881105b15611d43576001915050611a6b565b60c0811015611d575760b519019050611a6b565b60f519019050611a6b565b80516000908190811a6080811015611d7d5760019150611e8e565b60b8811015611d9257607e1981019150611e8e565b60c0811015611e0c57600060b78203600186019550806020036101000a865104915060018101820193505080831015611e06576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611e8e565b60f8811015611e215760be1981019150611e8e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611e8c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b606081516001148015611ec75750607f60f81b82600081518110611eb557fe5b01602001516001600160f81b03191611155b15611ed3575080611a6b565b611993611ee58351608060ff1661204e565b83611fd1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f2f57506018611f53565b6fffffffffffffffffffffffffffffffff198416611f4f57506010611f53565b5060005b6020811015611f8957818181518110611f6857fe5b01602001516001600160f81b03191615611f8157611f89565b600101611f53565b60008160200390506060816040519080825280601f01601f191660200182016040528015611fbe576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612002578051835260209283019201611fea565b50855184518101855292509050808201602086015b8183101561202f578051835260209283019201612017565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061209e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116120f85782840160f81b816000815181106120da57fe5b60200101906001600160f81b031916908160001a9053509050611993565b606061210385611eeb565b90508381510160370160f81b8260008151811061211c57fe5b60200101906001600160f81b031916908160001a90535061213d8282611fd1565b95945050505050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061218e61219b565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220928e8ab9d0213bb25ef35f991d92a3bba9ae0b32c8a4041abe55fcb03c7709dd64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/chapel/SystemRewardContract b/core/systemcontracts/niels/chapel/SystemRewardContract new file mode 100644 index 0000000000..efb3cc12f3 --- /dev/null +++ b/core/systemcontracts/niels/chapel/SystemRewardContract @@ -0,0 +1 @@ +60806040526004361061014f5760003560e01c806396713da9116100b6578063c81b16621161006f578063c81b1662146103dc578063dc927faf146103f1578063f9a2bbc714610406578063fb5478b31461041b578063fc3e590814610430578063fd6a68791461044557610193565b806396713da91461033a5780639a99b4f01461034f5780639dc0926214610388578063a1a11bf51461039d578063a78abc16146103b2578063ab51bb96146103c757610193565b806351e806721161010857806351e806721461028a5780636d70f7ae1461029f5780636e47b482146102e657806370fd5bad146102fb57806375d47a0a146103105780637942fd051461032557610193565b80630bee7a67146101985780633a0b0eff146101c65780633dffc387146101ed57806343756e5c14610218578063493279b1146102495780634bf6c8821461027557610193565b366101935734156101915760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101a457600080fd5b506101ad61045a565b6040805163ffffffff9092168252519081900360200190f35b3480156101d257600080fd5b506101db61045f565b60408051918252519081900360200190f35b3480156101f957600080fd5b50610202610465565b6040805160ff9092168252519081900360200190f35b34801561022457600080fd5b5061022d61046a565b604080516001600160a01b039092168252519081900360200190f35b34801561025557600080fd5b5061025e610470565b6040805161ffff9092168252519081900360200190f35b34801561028157600080fd5b50610202610475565b34801561029657600080fd5b5061022d61047a565b3480156102ab57600080fd5b506102d2600480360360208110156102c257600080fd5b50356001600160a01b0316610480565b604080519115158252519081900360200190f35b3480156102f257600080fd5b5061022d61049e565b34801561030757600080fd5b506102026104a4565b34801561031c57600080fd5b5061022d6104a9565b34801561033157600080fd5b506102026104af565b34801561034657600080fd5b506102026104b4565b34801561035b57600080fd5b506101db6004803603604081101561037257600080fd5b506001600160a01b0381351690602001356104b9565b34801561039457600080fd5b5061022d610664565b3480156103a957600080fd5b5061022d61066a565b3480156103be57600080fd5b506102d2610670565b3480156103d357600080fd5b506101ad610679565b3480156103e857600080fd5b5061022d61067e565b3480156103fd57600080fd5b5061022d610684565b34801561041257600080fd5b5061022d61068a565b34801561042757600080fd5b506101db610690565b34801561043c57600080fd5b5061020261069c565b34801561045157600080fd5b5061022d6106a1565b606481565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b61100881565b600b81565b600981565b6000805460ff1661053657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166105845760405162461bcd60e51b815260040180806020018281038252602b8152602001806106a8602b913960400191505060405180910390fd5b60004783106105935747610595565b825b9050670de0b6b3a76400008111156105b25750670de0b6b3a76400005b8015610633576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156105ee573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261065d565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b6110048156fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f64a2646970667358221220276887b515b756cf3ef5b38df18fd3a11174ee7fd973bdd337fc09d6b0e42f3b64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/chapel/TokenHubContract b/core/systemcontracts/niels/chapel/TokenHubContract new file mode 100644 index 0000000000..d6b32d77bd --- /dev/null +++ b/core/systemcontracts/niels/chapel/TokenHubContract @@ -0,0 +1 @@ +60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e5908146109c9578063fd6a687914610ce6578063ff9c0027146107c757610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063dc6f5e90116100d1578063dc6f5e90146109c9578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063a7c9f02d11610164578063ac4317511161013e578063ac43175114610a3a578063b770186114610b05578063b99328c514610b1a578063b9fd21e314610b5357610366565b8063a7c9f02d146109c9578063aa7415f5146109de578063ab51bb9614610a2557610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a5cd588b14610981578063a78abc16146109b457610366565b80635d499b1b1161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105b25780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b80635d499b1b14610671578063613684751461036b5780636e056520146106865780636e47b482146107b257806370fd5bad146107c757806371d30863146107dc57610366565b806343756e5c116102d75780634bf6c882116102b15780634bf6c8821461036b57806350432d321461061d57806351e806721461063257806359b927891461064757610366565b806343756e5c146105c757806343a368b9146105dc578063493279b1146105f157610366565b8063077b8f351461036b5780630bee7a67146103965780631182b875146103c4578063149d14d9146104be5780633d713223146104e55780633dffc387146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805160ff9092168252519081900360200190f35b3480156103a257600080fd5b506103ab610d00565b6040805163ffffffff9092168252519081900360200190f35b3480156103d057600080fd5b50610449600480360360408110156103e757600080fd5b60ff8235169190810190604081016020820135600160201b81111561040b57600080fd5b82018360208201111561041d57600080fd5b803590602001918460018302840111600160201b8311171561043e57600080fd5b509092509050610d05565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048357818101518382015260200161046b565b50505050905090810190601f1680156104b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ca57600080fd5b506104d3610e33565b60408051918252519081900360200190f35b3480156104f157600080fd5b506105966004803603602081101561050857600080fd5b810190602081018135600160201b81111561052257600080fd5b82018360208201111561053457600080fd5b803590602001918460018302840111600160201b8311171561055557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e39945050505050565b604080516001600160a01b039092168252519081900360200190f35b3480156105be57600080fd5b50610380610e5d565b3480156105d357600080fd5b50610596610e62565b3480156105e857600080fd5b506104d3610e68565b3480156105fd57600080fd5b50610606610e74565b6040805161ffff9092168252519081900360200190f35b34801561062957600080fd5b506104d3610e79565b34801561063e57600080fd5b50610596610e84565b34801561065357600080fd5b506105966004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104d3610ea5565b61079e6004803603608081101561069c57600080fd5b810190602081018135600160201b8111156106b657600080fd5b8201836020820111156106c857600080fd5b803590602001918460208302840111600160201b831117156106e957600080fd5b919390929091602081019035600160201b81111561070657600080fd5b82018360208201111561071857600080fd5b803590602001918460208302840111600160201b8311171561073957600080fd5b919390929091602081019035600160201b81111561075657600080fd5b82018360208201111561076857600080fd5b803590602001918460208302840111600160201b8311171561078957600080fd5b91935091503567ffffffffffffffff16610eae565b604080519115158252519081900360200190f35b3480156107be57600080fd5b50610596611383565b3480156107d357600080fd5b50610380611389565b3480156107e857600080fd5b506104d361138e565b3480156107fd57600080fd5b50610596611394565b34801561081257600080fd5b5061038061139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061038061156e565b34801561090057600080fd5b506104d3611573565b34801561091557600080fd5b506104d36004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b506105966116bd565b34801561096357600080fd5b506105966116c3565b34801561097857600080fd5b506103806116c9565b34801561098d57600080fd5b506104d3600480360360208110156109a457600080fd5b50356001600160a01b03166116ce565b3480156109c057600080fd5b5061079e6116e0565b3480156109d557600080fd5b506103806116e9565b61079e600480360360808110156109f457600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116ee565b348015610a3157600080fd5b506103ab6116c9565b348015610a4657600080fd5b5061036460048036036040811015610a5d57600080fd5b810190602081018135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b919390929091602081019035600160201b811115610ac757600080fd5b820183602082011115610ad957600080fd5b803590602001918460018302840111600160201b83111715610afa57600080fd5b509092509050611daf565b348015610b1157600080fd5b506104d361201e565b348015610b2657600080fd5b5061036460048036036040811015610b3d57600080fd5b50803590602001356001600160a01b0316612024565b348015610b5f57600080fd5b506104d361209a565b348015610b7457600080fd5b506104d360048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b506105966120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b50610596612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061038061223b565b348015610c8057600080fd5b50610380612240565b348015610c9557600080fd5b50610596612245565b348015610caa57600080fd5b506104d361224b565b348015610cbf57600080fd5b5061044960048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b50610596612378565b600881565b606481565b60005460609060ff16610d4d576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b3361200014610d8d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff841660021415610ddf57610dd883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e2c565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b662386f26fc1000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b6000805460ff16610ef4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b868514610f325760405162461bcd60e51b815260040180806020018281038252603b815260200180614732603b913960400191505060405180910390fd5b868314610f705760405162461bcd60e51b815260040180806020018281038252603f815260200180614605603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fbc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156110005760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611033578160200160208202803683370190505b50905060005b8481101561110e576402540be4008b8b8381811061105357fe5b905060200201358161106157fe5b061561109e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6110c38b8b838181106110ad57fe5b90506020020135856124a290919063ffffffff16565b93506110ef6402540be4008c8c848181106110da57fe5b905060200201356124fc90919063ffffffff16565b8282815181106110fb57fe5b6020908102919091010152600101611039565b5060015461113390611126908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111715760405162461bcd60e51b81526004018080602001828103825260568152602001806147df6056913960600191505060405180910390fd5b611181348463ffffffff61259716565b915061118b61434e565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361124f846125d9565b611264876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c25781810151838201526020016112aa565b50505050905090810190601f1680156112ef5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b600281565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614468602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60026020526000908152604090205481565b60005460ff1681565b600381565b6000805460ff16611734576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156117805760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156117c45760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b600080806001600160a01b0388166118a3576001546117ea90879063ffffffff6124a216565b3410156118285760405162461bcd60e51b815260040180806020018281038252606181526020018061457f6061913960800191505060405180910390fd5b6402540be40086061561186c5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b61187c348763ffffffff61259716565b9050611893866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b46565b6001600160a01b0388166000908152600360205260409020549250826118fa5760405162461bcd60e51b815260040180806020018281038252603181526020018061454e6031913960400191505060405180910390fd5b60015434101561193b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806146a1603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061198657506008811180156119865750611984876007198301600a0a63ffffffff6128f016565b155b6119c15760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6119cb8782612932565b92506119d684612972565b15611a1e576305f5e100831015611a1e5760405162461bcd60e51b815260040180806020018281038252603a815260200180614497603a913960400191505060405180910390fd5b600881101580611a385750600881108015611a3857508683115b611a735760405162461bcd60e51b81526004018080602001828103825260258152602001806145e06025913960400191505060405180910390fd5b677ce66c50e2840000831115611aba5760405162461bcd60e51b81526004018080602001828103825260358152602001806145196035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b5051611b4457600080fd5b505b611b4e61434e565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bfc57fe5b602002602001018181525050878160600151600081518110611c1a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c4c57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c77846125d9565b611c8c866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cea578181015183820152602001611cd2565b50505050905090810190601f168015611d175780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611def5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146e0602e913960400191505060405180910390fd5b60208114611e44576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f4c576020820151670de0b6b3a76400008111801590611ef357506402540be4008106155b611f44576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61c35081565b33611008146120645760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b662386f26fc1000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b606061238861439a565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143cf565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e58565b50506040805160008152602081019091529150610e589050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146806021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143f6565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b815260040180806020018281038252602481526020018061470e6024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600860ff82161015612a0057600092505050610e58565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e58565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e58565b5060019392505050565b612a8061434e565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144d16024913960400191505060405180910390fd5b612ad36143f6565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613bc6565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e61439a565b6000612b8861439a565b612b9061442d565b612ba1612b9c86613bff565b613c24565b90506000805b612bb083613c6e565b15612ca85780612bd257612bcb612bc684613c8f565b613cdd565b8452612ca0565b8060011415612bff57612bec612be784613c8f565b613d94565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c8f565b6040850152612ca0565b8060031415612c4657612c33612be784613c8f565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c8f565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c8f565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e58565b8160400151471015612cfc57506003610e58565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e58565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e58565b8160a0015167ffffffffffffffff16421115612e0a57506001610e58565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e58565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e58565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e589050565b5060059150610e589050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2c81613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613dae565b613e94565b60408051600560a21b8318601482015260348101909152606090610e2c81613e94565b60608151600014156132315750604080516000815260208101909152610e58565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ee6565b9150600101613251565b50610e2c613294825160c060ff16613f63565b82613ee6565b6132a26143f6565b60006132ac6143f6565b6132b461442d565b6132c0612b9c86613bff565b90506000805b6132cf83613c6e565b15612ca857806132f5576132e5612be784613c8f565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c8f565b61405b565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cdd565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c8f565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d94565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c8f565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b61395361434e565b600061395d61434e565b61396561442d565b613971612b9c86613bff565b90506000805b61398083613c6e565b15613bb8578061399d57613996612bc684613c8f565b8452613bb0565b80600114156139c5576139b2612be784613c8f565b6001600160a01b03166020850152613bb0565b8060021415613a545760606139dc61330c85613c8f565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613bb0565b8060031415613ae9576060613a6b61330c85613c8f565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c8f565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415613bab57613b93612bc684613c8f565b67ffffffffffffffff1660a085015260019150613bb0565b613bb8565b600101613977565b509195600195509350505050565b60006008821115613be857612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613c0761444d565b506040805180820190915281518152602082810190820152919050565b613c2c61442d565b613c358261412c565b613c3e57600080fd5b6000613c4d836020015161415c565b60208085015160408051808201909152868152920190820152915050919050565b6000613c7861444d565b505080518051602091820151919092015191011190565b613c9761444d565b613ca082613c6e565b613ca957600080fd5b60208201516000613cb9826141bf565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cf257508151602110155b613cfb57600080fd5b6000613d0a836020015161415c565b90508083600001511015613d65576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d8b57826020036101000a820491505b50949350505050565b8051600090601514613da557600080fd5b6116b782613cdd565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613df257506018613e16565b6fffffffffffffffffffffffffffffffff198416613e1257506010613e16565b5060005b6020811015613e4c57818181518110613e2b57fe5b01602001516001600160f81b03191615613e4457613e4c565b600101613e16565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ec65750607f60f81b82600081518110613eb457fe5b01602001516001600160f81b03191611155b15613ed2575080610e58565b6116b7613ee48351608060ff16613f63565b835b6060806040519050835180825260208201818101602087015b81831015613f17578051835260209283019201613eff565b50855184518101855292509050808201602086015b81831015613f44578051835260209283019201613f2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613fb3576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161400d5782840160f81b81600081518110613fef57fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061401885613dae565b90508381510160370160f81b8260008151811061403157fe5b60200101906001600160f81b031916908160001a9053506140528282613ee6565b95945050505050565b60606140668261412c565b61406f57600080fd5b600061407a836142f2565b90506060816040519080825280602002602001820160405280156140b857816020015b6140a561444d565b81526020019060019003908161409d5790505b50905060006140ca856020015161415c565b60208601510190506000805b84811015614121576140e7836141bf565b915060405180604001604052808381526020018481525084828151811061410a57fe5b6020908102919091010152918101916001016140d6565b509195945050505050565b805160009061413d57506000610e58565b6020820151805160001a9060c0821015612a6e57600092505050610e58565b8051600090811a6080811015614176576000915050610e58565b60b8811080614191575060c08110801590614191575060f881105b156141a0576001915050610e58565b60c08110156141b45760b519019050610e58565b60f519019050610e58565b80516000908190811a60808110156141da57600191506142eb565b60b88110156141ef57607e19810191506142eb565b60c081101561426957600060b78203600186019550806020036101000a865104915060018101820193505080831015614263576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142eb565b60f881101561427e5760be19810191506142eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061430357506000610e58565b60008090506000614317846020015161415c565b602085015185519181019250015b8082101561434557614336826141bf565b60019093019290910190614325565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061444061444d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220e59d62bf5fb2933f655143755e397406da6b105ef90a69a8209ff1a057bc41c964736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/chapel/TokenManagerContract b/core/systemcontracts/niels/chapel/TokenManagerContract new file mode 100644 index 0000000000..df0d0846b7 --- /dev/null +++ b/core/systemcontracts/niels/chapel/TokenManagerContract @@ -0,0 +1 @@ +6080604052600436106102465760003560e01c806375d47a0a11610139578063ab51bb96116100b6578063dc6f5e901161007a578063dc6f5e90146108df578063dc927faf14610975578063f9a2bbc71461098a578063fc3e5908146108df578063fd6a68791461099f578063fe3a2af5146104fd57610246565b8063ab51bb96146108b5578063c81b1662146108ca578063c8509d81146107c5578063c8e704a4146108df578063d117a110146108f457610246565b806395b9ad26116100fd57806395b9ad261461084c57806396713da9146108615780639dc0926214610876578063a1a11bf51461088b578063a78abc16146108a057610246565b806375d47a0a146106e757806377d9dae8146106fc5780637942fd05146107b05780637d078e13146103c8578063831d65d1146107c557610246565b80634a688818116101c75780635f558f861161018b5780635f558f86146105515780636b3f1307146105665780636e47b4821461062e57806370fd5bad1461055157806372c4e0861461064357610246565b80634a688818146104fd5780634bc81c00146105125780634bf6c8821461024b57806351e80672146105275780635d499b1b1461053c57610246565b806323996b531161020e57806323996b53146103c85780633dffc387146103c857806343756e5c146103dd578063445fcefe1461040e578063493279b1146104d157610246565b8063077b8f351461024b5780630bee7a67146102765780630f212b1b146102a45780631182b875146102b95780631f91600b146103b3575b600080fd5b34801561025757600080fd5b506102606109b4565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b5061028b6109b9565b6040805163ffffffff9092168252519081900360200190f35b3480156102b057600080fd5b506102606109be565b3480156102c557600080fd5b5061033e600480360360408110156102dc57600080fd5b60ff8235169190810190604081016020820135600160201b81111561030057600080fd5b82018360208201111561031257600080fd5b803590602001918460018302840111600160201b8311171561033357600080fd5b5090925090506109c3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610378578181015183820152602001610360565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103bf57600080fd5b50610260610a4c565b3480156103d457600080fd5b50610260610a51565b3480156103e957600080fd5b506103f2610a56565b604080516001600160a01b039092168252519081900360200190f35b34801561041a57600080fd5b506104bf6004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a5c945050505050565b60408051918252519081900360200190f35b3480156104dd57600080fd5b506104e6610bbb565b6040805161ffff9092168252519081900360200190f35b34801561050957600080fd5b50610260610bc0565b34801561051e57600080fd5b50610260610bc5565b34801561053357600080fd5b506103f2610bca565b34801561054857600080fd5b506104bf610bd0565b34801561055d57600080fd5b50610260610bd9565b61061a6004803603604081101561057c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bde945050505050565b604080519115158252519081900360200190f35b34801561063a57600080fd5b506103f2611460565b61061a6004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460018302840111600160201b831117156106a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611466945050505050565b3480156106f357600080fd5b506103f26118b4565b61061a6004803603604081101561071257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118ba945050505050565b3480156107bc57600080fd5b50610260611dc1565b3480156107d157600080fd5b5061084a600480360360408110156107e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561080c57600080fd5b82018360208201111561081e57600080fd5b803590602001918460018302840111600160201b8311171561083f57600080fd5b509092509050611dc6565b005b34801561085857600080fd5b50610260611e79565b34801561086d57600080fd5b50610260611e7e565b34801561088257600080fd5b506103f2611e83565b34801561089757600080fd5b506103f2611e89565b3480156108ac57600080fd5b5061061a611e8f565b3480156108c157600080fd5b5061028b610bc0565b3480156108d657600080fd5b506103f2611e98565b3480156108eb57600080fd5b50610260611e9e565b34801561090057600080fd5b5061091e6004803603602081101561091757600080fd5b5035611ea3565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a083015267ffffffffffffffff90921660c082015290519081900360e00190f35b34801561098157600080fd5b506103f2611efb565b34801561099657600080fd5b506103f2611f01565b3480156109ab57600080fd5b506103f2611f07565b600881565b606481565b600681565b60603361200014610a055760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b610a4483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f0d92505050565b949350505050565b600481565b600181565b61100181565b6020810151600090610a6c613168565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a082015261010090910467ffffffffffffffff1660c082015290610af457600092505050610bb6565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505160808301516060840151919250600091610b9d9163ffffffff61219e16565b9050610baf818363ffffffff61219e16565b9450505050505b919050565b606181565b600081565b600581565b61200081565b6402540be40081565b600281565b600080610bea836121e7565b9050610bf4613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152610cba576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b6000610cd78260800151836060015161219e90919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b031614610d2d5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d6020811015610d9a57600080fd5b50516001600160a01b031614610de15760405162461bcd60e51b815260040180806020018281038252602e815260200180613272602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192508391610ee89184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50519063ffffffff6121ee16565b1015610f3b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d6020811015610fa757600080fd5b50519050808210801590610fc057506402540be4008206155b610ffb5760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b6000611007868b612248565b905063ffffffff8116611206576001600160a01b038a166323b872dd33611004611037898963ffffffff61219e16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111c55781810151838201526020016111ad565b50505050905090810190601f1680156111f25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a26112be565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561128257818101518382015260200161126a565b50505050905090810190601f1680156112af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556113186131a4565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611360573d6000803e3d6000fd5b5061200063f7a251d760016113748461269f565b611389886402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113e75781810151838201526020016113cf565b50505050905090810190601f1680156114145780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506001985050505050505050505b92915050565b61100581565b600080611472836121e7565b905061147c613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611542576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c0015167ffffffffffffffff16106115a4576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d602081101561161057600080fd5b5051905080821080159061162957506402540be4008206155b6116645760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556116be6131a4565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611701573d6000803e3d6000fd5b5061200063f7a251d760016117158461269f565b61172a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611788578181015183820152602001611770565b50505050905090810190601f1680156117b55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561186c578181015183820152602001611854565b50505050905090810190601f1680156118995780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806118c6836121e7565b90506118d0613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611996576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146119ea5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b50516001600160a01b031614611ab4576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703265206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b50519050808210801590611b3957506402540be4008206155b611b745760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611bce6131a4565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611c11573d6000803e3d6000fd5b5061200063f7a251d76001611c258461269f565b611c3a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c98578181015183820152602001611c80565b50505050905090810190601f168015611cc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d78578181015183820152602001611d60565b50505050905090810190601f168015611da55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b3361200014611e065760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b600781565b600981565b61100781565b61100681565b60005460ff1681565b61100281565b600381565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b0390931693919291811690610100900467ffffffffffffffff1687565b61100381565b61100081565b61100481565b6060611f17613168565b6000611f228461276b565b9150915080611f78576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff1661202c576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff00191661010067ffffffffffffffff90921691909102179055612183565b815160ff16600114156121365760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60208110156120af57600080fd5b505190506001600160a01b038116156121305760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050505b50612183565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b60006121e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bd565b9392505050565b6020015190565b6000828201838110156121e0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d60208110156122ae57600080fd5b5051604080516395d89b4160e01b815290519192506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561233357600080fd5b8101908080516040519392919084600160201b82111561235257600080fd5b90830190602082018581111561236757600080fd5b8251600160201b81118282018810171561238057600080fd5b82525081516020918201929091019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b5051608087015160608801519192506000916124759163ffffffff61219e16565b9050428760c0015167ffffffffffffffff16101561249b57506001935061145a92505050565b6124a9838860200151612954565b6124bb57506002935061145a92505050565b808211156124d157506003935061145a92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251357600080fd5b505afa158015612527573d6000803e3d6000fd5b505050506040513d602081101561253d57600080fd5b50511461255257506004935061145a92505050565b8660a0015160ff16841461256e57506005935061145a92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b1580156125b357600080fd5b505afa1580156125c7573d6000803e3d6000fd5b505050506040513d60208110156125dd57600080fd5b50516001600160a01b031614158061267f57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561265057600080fd5b505afa158015612664573d6000803e3d6000fd5b505050506040513d602081101561267a57600080fd5b505114155b1561269257506006935061145a92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816126b857505083519091506126e09063ffffffff16612a3c565b816000815181106126ed57fe5b6020026020010181905250612708836020015160001c612a3c565b8160018151811061271557fe5b60200260200101819052506121e081612a4f565b60006121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad9565b612773613168565b600061277d613168565b6127856131bb565b61279661279186612b3e565b612b63565b90506000805b6127a583612bad565b156128b057806127ca576127c06127bb84612bce565b612c1c565b60ff1684526128a8565b80600114156127e9576127df6127bb84612bce565b60208501526128a8565b8060021415612816576128036127fe84612bce565b612cd1565b6001600160a01b031660408501526128a8565b80600314156128355761282b6127bb84612bce565b60608501526128a8565b80600414156128545761284a6127bb84612bce565b60808501526128a8565b8060051415612876576128696127bb84612bce565b60ff1660a08501526128a8565b80600614156128a35761288b6127bb84612bce565b67ffffffffffffffff1660c0850152600191506128a8565b6128b0565b60010161279c565b5091935090915050915091565b6000818484111561294c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129115781810151838201526020016128f9565b50505050905090810190601f16801561293e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b815160009083906008108061296a575080516003115b1561297957600091505061145a565b604080516020808252818301909252606091602082018180368337019050509050836020820152808251815181106129ad57fe5b6020910101516001600160f81b031916602d60f81b146129d25760009250505061145a565b600160005b8351811015612a32578281815181106129ec57fe5b602001015160f81c60f81b6001600160f81b031916848281518110612a0d57fe5b01602001516001600160f81b03191614612a2a5760009150612a32565b6001016129d7565b5095945050505050565b606061145a612a4a83612ceb565b612dd1565b6060815160001415612a705750604080516000815260208101909152610bb6565b606082600081518110612a7f57fe5b602002602001015190506000600190505b8351811015612ac057612ab682858381518110612aa957fe5b6020026020010151612e23565b9150600101612a90565b506121e0612ad3825160c060ff16612ea0565b82612e23565b60008183612b285760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129115781810151838201526020016128f9565b506000838581612b3457fe5b0495945050505050565b612b466131db565b506040805180820190915281518152602082810190820152919050565b612b6b6131bb565b612b7482612f98565b612b7d57600080fd5b6000612b8c8360200151612fd2565b60208085015160408051808201909152868152920190820152915050919050565b6000612bb76131db565b505080518051602091820151919092015191011190565b612bd66131db565b612bdf82612bad565b612be857600080fd5b60208201516000612bf882613035565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612c3157508151602110155b612c3a57600080fd5b6000612c498360200151612fd2565b90508083600001511015612ca4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561219557506020919091036101000a90049392505050565b8051600090601514612ce257600080fd5b61145a82612c1c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612d2f57506018612d53565b6fffffffffffffffffffffffffffffffff198416612d4f57506010612d53565b5060005b6020811015612d8957818181518110612d6857fe5b01602001516001600160f81b03191615612d8157612d89565b600101612d53565b60008160200390506060816040519080825280601f01601f191660200182016040528015612dbe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015612e035750607f60f81b82600081518110612df157fe5b01602001516001600160f81b03191611155b15612e0f575080610bb6565b61145a612e218351608060ff16612ea0565b835b6060806040519050835180825260208201818101602087015b81831015612e54578051835260209283019201612e3c565b50855184518101855292509050808201602086015b81831015612e81578051835260209283019201612e69565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612ef0576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411612f4a5782840160f81b81600081518110612f2c57fe5b60200101906001600160f81b031916908160001a905350905061145a565b6060612f5585612ceb565b90508381510160370160f81b82600081518110612f6e57fe5b60200101906001600160f81b031916908160001a905350612f8f8282612e23565b95945050505050565b8051600090612fa957506000610bb6565b6020820151805160001a9060c0821015612fc857600092505050610bb6565b5060019392505050565b8051600090811a6080811015612fec576000915050610bb6565b60b8811080613007575060c08110801590613007575060f881105b15613016576001915050610bb6565b60c081101561302a5760b519019050610bb6565b60f519019050610bb6565b80516000908190811a60808110156130505760019150613161565b60b881101561306557607e1981019150613161565b60c08110156130df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156130d9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613161565b60f88110156130f45760be1981019150613161565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561315f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b60405180604001604052806131ce6131db565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe72656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e6420726571756573746f6e6c79206265703265206f776e65722063616e20617070726f766520746869732062696e642072657175657374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220914ada54d09b696ad62036cb65a565d2a3c3d1be8ef0e6805b9a955ec5783d0864736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/chapel/ValidatorContract b/core/systemcontracts/niels/chapel/ValidatorContract new file mode 100644 index 0000000000..708d450908 --- /dev/null +++ b/core/systemcontracts/niels/chapel/ValidatorContract @@ -0,0 +1 @@ +60806040526004361061027d5760003560e01c80639dc092621161014f578063c8509d81116100c1578063eb57e2021161007a578063eb57e20214610940578063eda5868c14610973578063f340fa0114610988578063f9a2bbc7146109ae578063fc3e5908146109c3578063fd6a6879146109d85761027d565b8063c8509d8114610609578063d86222d5146108d7578063daacdb66146108ec578063dc927faf14610901578063e086c7b114610916578063e1c7392a1461092b5761027d565b8063ab51bb9611610113578063ab51bb961461074a578063ac4317511461075f578063ad3c9da61461082a578063b7ab4db51461085d578063bf9f49951461041b578063c81b1662146108c25761027d565b80639dc09262146106cd578063a1a11bf5146106e2578063a5422d5c146106f7578063a78abc161461070c578063aaf5eb68146107355761027d565b80635667515a116101f35780637942fd05116101ac5780637942fd05146105df57806381650b62146105f4578063831d65d114610609578063853230aa1461068e57806386249882146106a357806396713da9146106b85761027d565b80635667515a146105005780635d77156c146105155780636969a25c1461052a5780636e47b482146105a057806370fd5bad146105b557806375d47a0a146105ca5761027d565b80633dffc387116102455780633dffc3871461041b57806343756e5c14610446578063493279b1146104775780634bf6c882146104a357806351e80672146104b8578063565c56b3146104cd5761027d565b80630bee7a67146102825780631182b875146102b05780631ff18069146103aa578063219f22d5146103d157806335409f7f146103e6575b600080fd5b34801561028e57600080fd5b506102976109ed565b6040805163ffffffff9092168252519081900360200190f35b3480156102bc57600080fd5b50610335600480360360408110156102d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460018302840111600160201b8311171561032a57600080fd5b5090925090506109f2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036f578181015183820152602001610357565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b657600080fd5b506103bf610bdf565b60408051918252519081900360200190f35b3480156103dd57600080fd5b50610297610be5565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b0316610bea565b005b34801561042757600080fd5b50610430610efe565b6040805160ff9092168252519081900360200190f35b34801561045257600080fd5b5061045b610f03565b604080516001600160a01b039092168252519081900360200190f35b34801561048357600080fd5b5061048c610f09565b6040805161ffff9092168252519081900360200190f35b3480156104af57600080fd5b50610430610f0e565b3480156104c457600080fd5b5061045b610f13565b3480156104d957600080fd5b506103bf600480360360208110156104f057600080fd5b50356001600160a01b0316610f19565b34801561050c57600080fd5b50610430610f6b565b34801561052157600080fd5b50610297610f70565b34801561053657600080fd5b506105546004803603602081101561054d57600080fd5b5035610f75565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156105ac57600080fd5b5061045b610fd9565b3480156105c157600080fd5b50610430610fdf565b3480156105d657600080fd5b5061045b610fe4565b3480156105eb57600080fd5b50610430610fea565b34801561060057600080fd5b50610297610fef565b34801561061557600080fd5b506104196004803603604081101561062c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b509092509050610ff4565b34801561069a57600080fd5b506103bf6110a7565b3480156106af57600080fd5b506103bf6110ad565b3480156106c457600080fd5b506104306110b3565b3480156106d957600080fd5b5061045b6110b8565b3480156106ee57600080fd5b5061045b6110be565b34801561070357600080fd5b506103356110c4565b34801561071857600080fd5b506107216110e3565b604080519115158252519081900360200190f35b34801561074157600080fd5b506103bf6110ec565b34801561075657600080fd5b50610297610f6b565b34801561076b57600080fd5b506104196004803603604081101561078257600080fd5b810190602081018135600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b919390929091602081019035600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460018302840111600160201b8311171561081f57600080fd5b5090925090506110f5565b34801561083657600080fd5b506103bf6004803603602081101561084d57600080fd5b50356001600160a01b031661139c565b34801561086957600080fd5b506108726113ae565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108ae578181015183820152602001610896565b505050509050019250505060405180910390f35b3480156108ce57600080fd5b5061045b6114d4565b3480156108e357600080fd5b506103bf6114da565b3480156108f857600080fd5b506103bf6114e6565b34801561090d57600080fd5b5061045b6114ec565b34801561092257600080fd5b506103bf6114f2565b34801561093757600080fd5b506104196114f7565b34801561094c57600080fd5b506104196004803603602081101561096357600080fd5b50356001600160a01b03166116fa565b34801561097f57600080fd5b506102976118c9565b6104196004803603602081101561099e57600080fd5b50356001600160a01b03166118ce565b3480156109ba57600080fd5b5061045b611b04565b3480156109cf57600080fd5b50610430611b0a565b3480156109e457600080fd5b5061045b611b0f565b606481565b60005460609060ff16610a48576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610a885760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b610a90613d69565b6000610ad185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1592505050565b9150915080610aed57610ae46064611c6e565b92505050610bd8565b815160009060ff16610b0d57610b068360200151611ccf565b9050610ba4565b825160ff1660011415610ba057826020015151600114610b7a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180613e6c6025913960400191505060405180910390a1506067610b9b565b610b068360200151600081518110610b8e57fe5b6020026020010151612ad5565b610ba4565b5060655b63ffffffff8116610bc95750506040805160008152602081019091529150610bd89050565b610bd281611c6e565b93505050505b9392505050565b60035481565b606881565b3361100114610c2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610c4e5750610efb565b600181039050600060018281548110610c6357fe5b60009182526020909120600360049092020101546001549091506000190180610cb257600060018481548110610c9557fe5b906000526020600020906004020160030181905550505050610efb565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610e3457600180546000198101908110610d2957fe5b906000526020600020906004020160018481548110610d4457fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610e0957fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610e3f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610e9257fe5b0490508015610ef65760015460005b81811015610ef3578260018281548110610eb757fe5b9060005260206000209060040201600301540160018281548110610ed757fe5b6000918252602090912060036004909202010155600101610ea1565b50505b505050505b50565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b03811660009081526004602052604081205480610f41576000915050610f66565b600180820381548110610f5057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b60018181548110610f8257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101b78152602001613f066101b7913981565b60005460ff1681565b6402540be40081565b60005460ff16611148576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146111885760405162461bcd60e51b815260040180806020018281038252602e815260200180613e91602e913960400191505060405180910390fd5b6111f284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612c4c9050565b156112cd57602081146112365760405162461bcd60e51b8152600401808060200182810382526026815260200180613ee06026913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161127491858580838501838280828437600092019190915250612d3492505050565b90506064811015801561128a5750620186a08111155b6112c55760405162461bcd60e51b8152600401808060200182810382526027815260200180613e456027913960400191505060405180910390fd5b60025561130a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b828110156113ff57600181815481106113cd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166113f7576001909101905b6001016113b8565b5060608160405190808252806020026020018201604052801561142c578160200160208202803683370190505b50600092509050815b838110156114cc576001818154811061144a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166114c4576001818154811061147a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106114a557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611435565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561154f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611557613d69565b600061157d604051806101e001604052806101b78152602001613f066101b79139611b15565b91509150806115bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806140bd6021913960400191505060405180910390fd5b60005b8260200151518110156116e2576001836020015182815181106115df57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106116b557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016115c0565b50506103e8600255506000805460ff19166001179055565b336110011461173a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061175e5750610efb565b60018103905060006001828154811061177357fe5b906000526020600020906004020160030154905060006001838154811061179657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a28061180557505050610efb565b600081838161181057fe5b0490508015610ef65760005b8481101561186e57816001828154811061183257fe5b906000526020600020906004020160030154016001828154811061185257fe5b600091825260209091206003600490920201015560010161181c565b50600180549085015b81811015610ef357826001828154811061188d57fe5b90600052602060002090600402016003015401600182815481106118ad57fe5b6000918252602090912060036004909202010155600101611877565b606581565b33411461190c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061410d602d913960400191505060405180910390fd5b60005460ff1661195f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b600034116119ac576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205434908015611abf5760006001808303815481106119de57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611a49576040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611ab9565b600354611a5c908463ffffffff612d3916565b6003908155810154611a74908463ffffffff612d3916565b60038201556040805184815290516001600160a01b038616917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611aff565b6040805183815290516001600160a01b038516917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b505050565b61100081565b600381565b61100481565b611b1d613d69565b6000611b27613d69565b611b2f613d81565b611b40611b3b86612d93565b612db8565b90506000805b611b4f83612e02565b15611c605780611b7457611b6a611b6584612e23565b612e71565b60ff168452611c58565b8060011415611c53576060611b90611b8b85612e23565b612f28565b90508051604051908082528060200260200182016040528015611bcd57816020015b611bba613da1565b815260200190600190039081611bb25790505b50602086015260005b8151811015611c4857611be7613da1565b6000611c05848481518110611bf857fe5b6020026020010151612ff9565b9150915080611c2257876000995099505050505050505050611c69565b8188602001518481518110611c3357fe5b60209081029190910101525050600101611bd6565b506001925050611c58565b611c60565b600101611b46565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611c88579050509050611cae8363ffffffff166130d6565b81600081518110611cbb57fe5b6020026020010181905250610bd8816130e9565b6000806060611cdd84613173565b9150915081611d8a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d45578181015183820152602001611d2d565b50505050905090810190601f168015611d725780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050610f66565b600080805b600154811015611e075767016345785d8a000060018281548110611daf57fe5b90600052602060002090600402016003015410611dd157600190920191611dff565b600060018281548110611de057fe5b9060005260206000209060040201600301541115611dff576001909101905b600101611d8f565b50606082604051908082528060200260200182016040528015611e34578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015611e63578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611e92578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015611ec1578160200160208202803683370190505b5090506000606086604051908082528060200260200182016040528015611ef2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015611f21578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6e57600080fd5b505afa158015611f82573d6000803e3d6000fd5b505050506040513d6020811015611f9857600080fd5b5051905067016345785d8a000081111561200d577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180613ebf6021913960400191505060405180910390a160689d5050505050505050505050505050610f66565b60005b6001548110156122805767016345785d8a00006001828154811061203057fe5b906000526020600020906004020160030154106121b6576001818154811061205457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061208557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106120ba57fe5b906000526020600020906004020160030154816120d357fe5b06600183815481106120e157fe5b906000526020600020906004020160030154039050612109838261325590919063ffffffff16565b8a8e8151811061211557fe5b6020026020010181815250506001828154811061212e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061215f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061218c57fe5b60209081029190910101526121a7878263ffffffff612d3916565b6001909d019c96506122789050565b6000600182815481106121c557fe5b906000526020600020906004020160030154111561227857600181815481106121ea57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061221b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061224857fe5b906000526020600020906004020160030154848c8151811061226657fe5b60209081029190910101526001909a01995b600101612010565b50600085156126be576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156123125781810151838201526020016122fa565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015612351578181015183820152602001612339565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015612390578181015183820152602001612378565b505050509050019750505050505050506020604051808303818588803b1580156123b957600080fd5b505af1935050505080156123df57506040513d60208110156123da57600080fd5b505160015b61261a576040516000815260443d10156123fb57506000612496565b60046000803e60005160e01c6308c379a0811461241c576000915050612496565b60043d036004833e81513d60248201116001600160401b038211171561244757600092505050612496565b80830180516001600160401b03811115612468576000945050505050612496565b8060208301013d860181111561248657600095505050505050612496565b601f01601f191660405250925050505b806124a15750612545565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125055781810151838201526020016124ed565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612615565b3d80801561256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125d95781810151838201526020016125c1565b50505050905090810190601f1680156126065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6126be565b8015612658576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16126bc565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b80156128745760005b88518110156128725760008982815181106126de57fe5b602002602001015190506000600182815481106126f757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061272857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156127e4576001828154811061276957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106127b857fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612868565b600182815481106127f157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061284057fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016126c7565b505b8451156129be5760005b85518110156129bc57600086828151811061289557fe5b60200260200101516001600160a01b03166108fc8784815181106128b557fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561294b578682815181106128eb57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d87848151811061292957fe5b60200260200101516040518082815260200191505060405180910390a26129b3565b86828151811061295757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d87848151811061299557fe5b60200260200101516040518082815260200191505060405180910390a25b5060010161287e565b505b4715612a27576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612a25573d6000803e3d6000fd5b505b60006003819055600555825115612a4157612a4183613297565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a7e57600080fd5b505af1158015612a92573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612b265750600180820381548110612b0657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612b6c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050610f66565b600154600554600019820111801590612bc25784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050610f66565b600580546001908101909155805481906000198601908110612be057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612c815780518252601f199092019160209182019101612c62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612cef5780518252601f199092019160209182019101612cd0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610bd8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612d9b613dd6565b506040805180820190915281518152602082810190820152919050565b612dc0613d81565b612dc98261375e565b612dd257600080fd5b6000612de18360200151613798565b60208085015160408051808201909152868152920190820152915050919050565b6000612e0c613dd6565b505080518051602091820151919092015191011190565b612e2b613dd6565b612e3482612e02565b612e3d57600080fd5b60208201516000612e4d826137fb565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612e8657508151602110155b612e8f57600080fd5b6000612e9e8360200151613798565b90508083600001511015612ef9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015612f1f57826020036101000a820491505b50949350505050565b6060612f338261375e565b612f3c57600080fd5b6000612f478361392e565b9050606081604051908082528060200260200182016040528015612f8557816020015b612f72613dd6565b815260200190600190039081612f6a5790505b5090506000612f978560200151613798565b60208601510190506000805b84811015612fee57612fb4836137fb565b9150604051806040016040528083815260200184815250848281518110612fd757fe5b602090810291909101015291810191600101612fa3565b509195945050505050565b613001613da1565b600061300b613da1565b613013613d81565b61301c85612db8565b90506000805b61302b83612e02565b15611c6057806130565761304661304184612e23565b61398a565b6001600160a01b031684526130ce565b806001141561307e5761306b61304184612e23565b6001600160a01b031660208501526130ce565b80600214156130a65761309361304184612e23565b6001600160a01b031660408501526130ce565b8060031415611c53576130bb611b6584612e23565b6001600160401b03166060850152600191505b600101613022565b6060612d2e6130e4836139a4565b613a8a565b606081516000141561310a5750604080516000815260208101909152610f66565b60608260008151811061311957fe5b602002602001015190506000600190505b835181101561315a576131508285838151811061314357fe5b6020026020010151613adc565b915060010161312a565b50610bd861316d825160c060ff16613b59565b82613adc565b600060606029835111156131a5576000604051806060016040528060298152602001613df16029913991509150611c69565b60005b835181101561323b5760005b81811015613232578481815181106131c857fe5b6020026020010151600001516001600160a01b03168583815181106131e957fe5b6020026020010151600001516001600160a01b0316141561322a5760006040518060600160405280602b8152602001613e1a602b9139935093505050611c69565b6001016131b4565b506001016131a8565b505060408051602081019091526000815260019150915091565b6000610bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c51565b600154815160005b828110156133b45760016132b1613da1565b600183815481106132be57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156133885786818151811061334e57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156133805760009250613388565b60010161333a565b5081156133aa5780516001600160a01b03166000908152600460205260408120555b505060010161329f565b508082111561342957805b828110156134275760018054806133d257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b03191690556003909101919091559155016133bf565b505b6000818310613438578161343a565b825b905060005b81811015613634576134ec85828151811061345657fe5b60200260200101516001838154811061346b57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613ce8565b61360757806001016004600087848151811061350457fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061354057fe5b60200260200101516001828154811061355557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561362c565b60006001828154811061361657fe5b9060005260206000209060040201600301819055505b60010161343f565b508282111561375857825b82811015610ef657600185828151811061365557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a0909201516003909301929092558751908401929088908590811061372b57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161363f565b50505050565b805160009061376f57506000610f66565b6020820151805160001a9060c082101561378e57600092505050610f66565b5060019392505050565b8051600090811a60808110156137b2576000915050610f66565b60b88110806137cd575060c081108015906137cd575060f881105b156137dc576001915050610f66565b60c08110156137f05760b519019050610f66565b60f519019050610f66565b80516000908190811a60808110156138165760019150613927565b60b881101561382b57607e1981019150613927565b60c08110156138a557600060b78203600186019550806020036101000a86510491506001810182019350508083101561389f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613927565b60f88110156138ba5760be1981019150613927565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613925576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061393f57506000610f66565b600080905060006139538460200151613798565b602085015185519181019250015b8082101561398157613972826137fb565b60019093019290910190613961565b50909392505050565b805160009060151461399b57600080fd5b612d2e82612e71565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166139e857506018613a0c565b6fffffffffffffffffffffffffffffffff198416613a0857506010613a0c565b5060005b6020811015613a4257818181518110613a2157fe5b01602001516001600160f81b03191615613a3a57613a42565b600101613a0c565b60008160200390506060816040519080825280601f01601f191660200182016040528015613a77576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613abc5750607f60f81b82600081518110613aaa57fe5b01602001516001600160f81b03191611155b15613ac8575080610f66565b612d2e613ada8351608060ff16613b59565b835b6060806040519050835180825260208201818101602087015b81831015613b0d578051835260209283019201613af5565b50855184518101855292509050808201602086015b81831015613b3a578051835260209283019201613b22565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613ba9576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613c035782840160f81b81600081518110613be557fe5b60200101906001600160f81b031916908160001a9053509050612d2e565b6060613c0e856139a4565b90508381510160370160f81b82600081518110613c2757fe5b60200101906001600160f81b031916908160001a905350613c488282613adc565b95945050505050565b60008184841115613ce05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ca5578181015183820152602001613c8d565b50505050905090810190601f168015613cd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613d22575081602001516001600160a01b031683602001516001600160a01b0316145b8015613d47575081604001516001600160a01b031683604001516001600160a01b0316145b8015610bd85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b6040518060400160405280613d94613dd6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d69746475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f901b480f901b0f846941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf9477f066f3fb515bb97015e4b4afddbcb25c94286b86048c27395000f84694b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794748c284f46ab87fd492326f1e2fe731d22ad2db386048c27395000f84694a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f940ce09b38374887cb564b7efa60be130d99ed5f9586048c27395000f84694980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b2709407eecf36cf0901fefe4bc505d6ba03c7480c7b5786048c27395000f8469435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194f57d36e129881a3a13a024fe8072507e5b2e70f886048c27395000f84694f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594ddfcaedf9bb451098c9917a45f02bd61342cca6686048c273950006661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220ccbabefa423adb1cc63a2da2811a349dd54007c9dc3bd490ac200572c4e8eb1064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/niels/types.go b/core/systemcontracts/niels/types.go new file mode 100644 index 0000000000..7349e53e5c --- /dev/null +++ b/core/systemcontracts/niels/types.go @@ -0,0 +1,27 @@ +package niels + +import _ "embed" + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/ValidatorContract + ChapelValidatorContract string + //go:embed chapel/SlashContract + ChapelSlashContract string + //go:embed chapel/SystemRewardContract + ChapelSystemRewardContract string + //go:embed chapel/LightClientContract + ChapelLightClientContract string + //go:embed chapel/TokenHubContract + ChapelTokenHubContract string + //go:embed chapel/RelayerIncentivizeContract + ChapelRelayerIncentivizeContract string + //go:embed chapel/RelayerHubContract + ChapelRelayerHubContract string + //go:embed chapel/GovHubContract + ChapelGovHubContract string + //go:embed chapel/TokenManagerContract + ChapelTokenManagerContract string + //go:embed chapel/CrossChainContract + ChapelCrossChainContract string +) diff --git a/core/systemcontracts/planck/chapel/CrossChainContract b/core/systemcontracts/planck/chapel/CrossChainContract new file mode 100644 index 0000000000..731485deb7 --- /dev/null +++ b/core/systemcontracts/planck/chapel/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b610409612a36565b6103a6612a3e565b6103e5612a43565b6103e5612a49565b610423612a4f565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b509092509050612a58565b61063d60048036036020811015610a9657600080fd5b503560ff1661351c565b610409613537565b6103e561355b565b610599613561565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff166137b5565b61070c6137d5565b6104096137f4565b6103e56137fa565b610599613800565b61063d60048036036020811015610b1d57600080fd5b503560ff16613bb7565b610599613bd2565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613df1565b6103e5613f34565b6103a6613f3a565b6103e5613f3f565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613f45565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f8d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f8d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61408a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614108565b50905061138681838851614112565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d89083614153565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d79133148061184257507337b8516a0f88e65d677229b402ec6c1e0e33300433145b61187d5760405162461bcd60e51b815260040180806020018281038252602a8152602001806149f0602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b0390811690831681146118ed576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561196257600080fd5b505afa158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50516119c95760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a33576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a9c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611aee5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b32576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c766110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c1f57600080fd5b505afa158015611c33573d6000803e3d6000fd5b505050506040513d6020811015611c4957600080fd5b505160408051808201909152600381526269626360e81b6020820152611c6f8e8e613f45565b8585613f8d565b611cbe576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d0a57600080fd5b505afa158015611d1e573d6000803e3d6000fd5b505050506040513d6020811015611d3457600080fd5b505190508b8b600080806060611d4989614438565b935093509350935083611e0b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dc3578181015183820152602001611dab565b50505050905090810190601f168015611df05780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a26565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123905760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611ed8578181015183820152602001611ec0565b50505050905090810190601f168015611f055780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f2557600080fd5b505af192505050801561200957506040513d6000823e601f3d908101601f191682016040526020811015611f5857600080fd5b8101908080516040519392919084600160201b821115611f7757600080fd5b908301906020820185811115611f8c57600080fd5b8251600160201b811182820188101715611fa557600080fd5b82525081516020918201929091019080838360005b83811015611fd2578181015183820152602001611fba565b50505050905090810190601f168015611fff5780820380516001836020036101000a031916815260200191505b5060405250505060015b61231b576040516000815260443d1015612025575060006120c0565b60046000803e60005160e01c6308c379a081146120465760009150506120c0565b60043d036004833e81513d60248201116001600160401b0382111715612071576000925050506120c0565b80830180516001600160401b038111156120925760009450505050506120c0565b8060208301013d86018111156120b0576000955050505050506120c0565b601f01601f191660405250925050505b806120cb57506121dd565b60ff8716600090815260076020526040812054612102916001600160401b039091169089906120fd906002908861131c565b6144e8565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561219d578181015183820152602001612185565b50505050905090810190601f1680156121ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612316565b3d808015612207576040519150601f19603f3d011682016040523d82523d6000602084013e61220c565b606091505b5060ff871660009081526007602052604081205461223f916001600160401b039091169089906120fd906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156122da5781810151838201526020016122c2565b50505050905090810190601f1680156123075780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61238a565b8051156123885760ff8716600090815260076020526040812054612354916001600160401b039091169089906120fd906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b5061295e565b60ff8316600114156126345760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561241a578181015183820152602001612402565b50505050905090810190601f1680156124475780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561246757600080fd5b505af1925050508015612478575060015b61238a576040516000815260443d10156124945750600061252f565b60046000803e60005160e01c6308c379a081146124b557600091505061252f565b60043d036004833e81513d60248201116001600160401b03821117156124e05760009250505061252f565b80830180516001600160401b0381111561250157600094505050505061252f565b8060208301013d860181111561251f5760009550505050505061252f565b601f01601f191660405250925050505b8061253a575061259f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561219d578181015183820152602001612185565b3d8080156125c9576040519150601f19603f3d011682016040523d82523d6000602084013e6125ce565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156122da5781810151838201526020016122c2565b60ff83166002141561295e5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126be5781810151838201526020016126a6565b50505050905090810190601f1680156126eb5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561270b57600080fd5b505af192505050801561271c575060015b61295c576040516000815260443d1015612738575060006127d3565b60046000803e60005160e01c6308c379a081146127595760009150506127d3565b60043d036004833e81513d60248201116001600160401b0382111715612784576000925050506127d3565b80830180516001600160401b038111156127a55760009450505050506127d3565b8060208301013d86018111156127c3576000955050505050506127d3565b601f01601f191660405250925050505b806127de5750612887565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561284757818101518382015260200161282f565b50505050905090810190601f1680156128745780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061295c565b3d8080156128b1576040519150601f19603f3d011682016040523d82523d6000602084013e6128b6565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612920578181015183820152602001612908565b50505050905090810190601f16801561294d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612990575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050506040513d6020811015612a1a57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a985760405162461bcd60e51b815260040180806020018281038252602e815260200180614978602e913960400191505060405180910390fd5b600b5460ff1615612adc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b4584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146829050565b15612be057604080516020601f8401819004810282018101909252828152600091612b889185858083850183828082843760009201919091525061476992505050565b90506127108111158015612b9d5750600a8110155b612bd85760405162461bcd60e51b8152600401808060200182810382526032815260200180614a1a6032913960400191505060405180910390fd5b60015561348a565b612c4984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146829050565b15612dd157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612ccc5760405162461bcd60e51b815260040180806020018281038252605a815260200180614891605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612cea8161476e565b612d3b576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061348a565b612e3e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146829050565b15612f6f57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ec15760405162461bcd60e51b815260040180806020018281038252604a8152602001806149a6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f65576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061348a565b612fd384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146829050565b1561310857600281146130175760405162461bcd60e51b815260040180806020018281038252602d81526020018061491f602d913960400191505060405180910390fd5b600061305a600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff16118015613074575060648161ffff16105b6130be576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61316b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146829050565b1561329e57600281146131af5760405162461bcd60e51b815260040180806020018281038252602c81526020018061494c602c913960400191505060405180910390fd5b60006131f2600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff1611801561320c575060648161ffff16105b613255576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61330984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146829050565b1561344d576002811461334d5760405162461bcd60e51b81526004018080602001828103825260348152602001806148eb6034913960400191505060405180910390fd5b6000613390600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff161180156133aa575060648161ffff16105b6133fb576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135a6576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b1580156135e957600080fd5b505afa1580156135fd573d6000803e3d6000fd5b505050506040513d602081101561361357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561365457600080fd5b505afa158015613668573d6000803e3d6000fd5b505050506040513d602081101561367e57600080fd5b505190508061368b575060155b60008211801561369b5750808211155b6136da576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613721576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613772907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff1615613858576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c17576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cc557600080fd5b505afa158015613cd9573d6000803e3d6000fd5b505050506040513d6020811015613cef57600080fd5b5051905080613cfc575060155b600082118015613d0c5750808211155b613d4b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d8f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613de1907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b0576137b061408a565b60005460ff16613e36576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e935760405162461bcd60e51b81526004018080602001828103825260318152602001806148606031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613ef89284928a926120fd92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f9c57506000614081565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613fd3576020820181803683370190505b5090506000613fe182614774565b602080890151825201905086600080613ff989614108565b8086526020909501949092509050614012828583614112565b9283019261401f88614108565b8086526020909501949092509050614038828583614112565b9283018a81526020019261404b87614108565b909250905061405b828583614112565b50835160200161406961477a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff16156140ce576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614132578251825260209283019290910190601f1901614113565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661421c57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061424d575082816001015414155b15614320576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142c291600284019190614798565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a36143d4565b60005b60028201548110156143ab57336001600160a01b031682600201828154811061434857fe5b6000918252602090912001546001600160a01b031614156143a3576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614323565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161442e576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff19168155600181018290559061442260028301826147fd565b50506001915050613f87565b5060009392505050565b600080600060606021855110156144685750506040805160008082526020820190925290925082915081906144e1565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144b3576020820181803683370190505b50905060006144c182614108565b5090506144d3858260218d5103614112565b506001975091955093509150505b9193509193565b600b5460ff161561452c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60025443111561456b576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ac565b600380546001908101918290555410156145ac576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561464257818101518382015260200161462a565b50505050905090810190601f16801561466f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146b75780518252601f199092019160209182019101614698565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147255780518252601f199092019160209182019101614706565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b8280548282559060005260206000209081019282156147ed579160200282015b828111156147ed57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147b8565b506147f992915061481e565b5090565b508054600082559060005260206000209081019061481b9190614845565b50565b61484291905b808211156147f95780546001600160a01b0319168155600101614824565b90565b61484291905b808211156147f9576000815560010161484b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122026f49f5b5d33882588ea53bac8a0f154c6a6d2ff32bdfdb114fc8cfcf13f710f64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/planck/chapel/SlashContract b/core/systemcontracts/planck/chapel/SlashContract new file mode 100644 index 0000000000..caa1338260 --- /dev/null +++ b/core/systemcontracts/planck/chapel/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102535760003560e01c80637942fd0511610146578063ac431751116100c3578063dc927faf11610087578063dc927faf1461073b578063e1c7392a14610743578063f9a2bbc71461074b578063fc3e590814610753578063fc4333cd1461075b578063fd6a68791461076357610253565b8063ac431751146105cf578063c80d4b8f1461068d578063c81b166214610695578063c8509d811461069d578063c96be4cb1461071557610253565b80639dc092621161010a5780639dc0926214610593578063a1a11bf51461059b578063a78abc16146105a3578063ab51bb96146105bf578063ac0af629146105c757610253565b80637942fd05146104fb5780638256ace614610503578063831d65d11461050b57806396713da9146105835780639bc8e4f21461058b57610253565b80634bf6c882116101d45780636e47b482116101985780636e47b482146104d357806370fd5bad146104db578063718a8aa8146104e357806375d47a0a146104eb5780637912a65d146104f357610253565b80634bf6c8821461048b57806351e8067214610493578063567a372d1461049b5780635bfb4990146104a357806362b72cf5146104cb57610253565b806337c8dab91161021b57806337c8dab9146103ed578063389f4f711461042c5780633dffc3871461044657806343756e5c14610464578063493279b11461046c57610253565b80630bee7a67146102585780630e2374a5146102795780631182b8751461029d57806323bac5a21461038a57806335aa2e44146103d0575b600080fd5b61026061076b565b6040805163ffffffff9092168252519081900360200190f35b610281610770565b604080516001600160a01b039092168252519081900360200190f35b610315600480360360408110156102b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b509092509050610776565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b0600480360360208110156103a057600080fd5b50356001600160a01b031661084a565b604080519384526020840192909252151582820152519081900360600190f35b610281600480360360208110156103e657600080fd5b503561086d565b6104136004803603602081101561040357600080fd5b50356001600160a01b0316610894565b6040805192835260208301919091528051918290030190f35b6104346108eb565b60408051918252519081900360200190f35b61044e6108f1565b6040805160ff9092168252519081900360200190f35b6102816108f6565b6104746108fc565b6040805161ffff9092168252519081900360200190f35b61044e610901565b610281610906565b61043461090c565b6104c9600480360360208110156104b957600080fd5b50356001600160a01b0316610912565b005b610434610a73565b610281610a79565b61044e610a7f565b61044e610a84565b610281610a89565b610434610a8f565b61044e610a94565b610413610a99565b6104c96004803603604081101561052157600080fd5b60ff8235169190810190604081016020820135600160201b81111561054557600080fd5b82018360208201111561055757600080fd5b803590602001918460018302840111600160201b8311171561057857600080fd5b509092509050610aa3565b61044e610bfd565b610434610c02565b610281610c0d565b610281610c13565b6105ab610c19565b604080519115158252519081900360200190f35b610260610c22565b610434610c27565b6104c9600480360360408110156105e557600080fd5b810190602081018135600160201b8111156105ff57600080fd5b82018360208201111561061157600080fd5b803590602001918460018302840111600160201b8311171561063257600080fd5b919390929091602081019035600160201b81111561064f57600080fd5b82018360208201111561066157600080fd5b803590602001918460018302840111600160201b8311171561068257600080fd5b509092509050610c2c565b61043461101a565b61028161101f565b6104c9600480360360408110156106b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156106d757600080fd5b8201836020820111156106e957600080fd5b803590602001918460018302840111600160201b8311171561070a57600080fd5b509092509050611025565b6104c96004803603602081101561072b57600080fd5b50356001600160a01b03166110d8565b610281611659565b6104c961165f565b6102816116d0565b61044e6116d6565b6104c96116db565b610281611b66565b606481565b61200181565b606033612000146107b85760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166107fd576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061087a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061089f612481565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146109525760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16610997576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b61200063f7a251d7600b6109aa84611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610a0a5781810151838201526020016109f2565b50505050905090810190601f168015610a375780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ae35760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff16610b28576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b610b306124a4565b6000610b7184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3e92505050565b915091508015610bbb5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a6c565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c71576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b3361100714610cb15760405162461bcd60e51b815260040180806020018281038252602e815260200180612548602e913960400191505060405180910390fd5b610d1c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611cbe9050565b15610df55760208114610d605760405162461bcd60e51b81526004018080602001828103825260278152602001806124f16027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d9e91858580838501838280828437600092019190915250611da692505050565b905060018110158015610db2575060055481105b610ded5760405162461bcd60e51b81526004018080602001828103825260258152602001806125986025913960400191505060405180910390fd5b600455610f88565b610e5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611cbe9050565b15610f4b5760208114610e9f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125766022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610edd91858580838501838280828437600092019190915250611da692505050565b90506103e88111158015610ef2575060045481115b610f43576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f88565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110655760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166110aa576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146111165760405162461bcd60e51b815260040180806020018281038252602d8152602001806125ec602d913960400191505060405180910390fd5b60005460ff1661115b576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60035443116111b1576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111fb576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561124357600080fd5b505afa158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b505161127857611652565b611280612481565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112db576020810180516001019052611334565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161134657fe5b0661157657600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561139957600080fd5b505af11580156113ad573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6113cd85611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561142d578181015183820152602001611415565b50505050905090810190601f16801561145a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b611571573d8080156114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153457818101518382015260200161151c565b50505050905090810190601f1680156115615780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b6115ec565b60045481602001518161158557fe5b066115ec57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156116b7576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461171b5760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16611760576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60015461176c57611b64565b600154600090600019015b808211611b38576000805b8284101561189b57611792612481565b60026000600187815481106117a357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118855760046005548161181057fe5b0481602001510381602001818152505080600260006001888154811061183257fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561188f565b600192505061189b565b50600190930192611782565b828411611a32576118aa612481565b60026000600186815481106118bb57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156119a35760046005548161192857fe5b0481602001510381602001818152505080600260006001878154811061194a57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a329050565b60026000600186815481106119b457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119f857fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a255750611a32565b506000199092019161189b565b818015611a3c5750805b15611b1b576002600060018681548110611a5257fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a9957fe5b600091825260209091200154600180546001600160a01b039092169186908110611abf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611af857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b27575050611b38565b505060019091019060001901611777565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b87579050509050611bb0836001600160a01b0316611dab565b81600081518110611bbd57fe5b6020026020010181905250611bd143611dce565b81600181518110611bde57fe5b6020908102919091010152611bf36061611dce565b81600281518110611c0057fe5b6020026020010181905250611c1442611dce565b81600381518110611c2157fe5b6020026020010181905250611c3581611de1565b9150505b919050565b611c466124a4565b6000611c506124a4565b611c586124b6565b611c69611c6486611e6b565b611e90565b90506000805b611c7883611eda565b15611cb15780611ca457611c93611c8e84611efb565b611f49565b63ffffffff16845260019150611ca9565b611cb1565b600101611c6f565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611cf35780518252601f199092019160209182019101611cd4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d615780518252601f199092019160209182019101611d42565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611c3581612000565b6060611da0611ddc83612056565b612000565b6060815160001415611e025750604080516000815260208101909152611c39565b606082600081518110611e1157fe5b602002602001015190506000600190505b8351811015611e5257611e4882858381518110611e3b57fe5b602002602001015161213c565b9150600101611e22565b50611c35611e65825160c060ff166121b9565b8261213c565b611e736124d6565b506040805180820190915281518152602082810190820152919050565b611e986124b6565b611ea1826122b1565b611eaa57600080fd5b6000611eb983602001516122eb565b60208085015160408051808201909152868152920190820152915050919050565b6000611ee46124d6565b505080518051602091820151919092015191011190565b611f036124d6565b611f0c82611eda565b611f1557600080fd5b60208201516000611f258261234e565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611f5e57508151602110155b611f6757600080fd5b6000611f7683602001516122eb565b90508083600001511015611fd1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ff757826020036101000a820491505b50949350505050565b6060815160011480156120325750607f60f81b8260008151811061202057fe5b01602001516001600160f81b03191611155b1561203e575080611c39565b611da06120508351608060ff166121b9565b8361213c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661209a575060186120be565b6fffffffffffffffffffffffffffffffff1984166120ba575060106120be565b5060005b60208110156120f4578181815181106120d357fe5b01602001516001600160f81b031916156120ec576120f4565b6001016120be565b60008160200390506060816040519080825280601f01601f191660200182016040528015612129576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561216d578051835260209283019201612155565b50855184518101855292509050808201602086015b8183101561219a578051835260209283019201612182565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612209576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116122635782840160f81b8160008151811061224557fe5b60200101906001600160f81b031916908160001a9053509050611da0565b606061226e85612056565b90508381510160370160f81b8260008151811061228757fe5b60200101906001600160f81b031916908160001a9053506122a8828261213c565b95945050505050565b80516000906122c257506000611c39565b6020820151805160001a9060c08210156122e157600092505050611c39565b5060019392505050565b8051600090811a6080811015612305576000915050611c39565b60b8811080612320575060c08110801590612320575060f881105b1561232f576001915050611c39565b60c08110156123435760b519019050611c39565b60f519019050611c39565b80516000908190811a6080811015612369576001915061247a565b60b881101561237e57607e198101915061247a565b60c08110156123f857600060b78203600186019550806020036101000a8651049150600181018201935050808310156123f2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061247a565b60f881101561240d5760be198101915061247a565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612478576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806124c96124d6565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a264697066735822122073e63503ac4253c326fb17904c6564f8471e21693509513fe7dc5277fcd239a364736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/planck/chapel/StakingContract b/core/systemcontracts/planck/chapel/StakingContract new file mode 100644 index 0000000000..f01ae29788 --- /dev/null +++ b/core/systemcontracts/planck/chapel/StakingContract @@ -0,0 +1 @@ +6080604052600436106103855760003560e01c806370fd5bad116101d1578063b88a802f11610102578063d7ecfcb6116100a0578063f9a2bbc71161006f578063f9a2bbc714610c40578063fa03f79714610c55578063fc3e590814610671578063fd6a687914610c6a5761038c565b8063d7ecfcb614610819578063dc927faf14610bd1578063edc1a5b014610be6578063f45fd80b14610bfb5761038c565b8063c2117d82116100dc578063c2117d8214610ae7578063c81b166214610afc578063c8509d8114610b11578063d61b9b9314610b965761038c565b8063b88a802f14610a82578063baaafd3b14610a97578063bf8546ca14610aac5761038c565b806396713da91161016f578063a78abc1611610149578063a78abc1614610964578063ab51bb961461098d578063ac431751146109a2578063b14315df14610a6d5761038c565b806396713da9146109255780639dc092621461093a578063a1a11bf51461094f5761038c565b806375d47a0a116101ab57806375d47a0a146108765780637942fd051461088b578063831d65d1146108a057806392b888a41461061d5761038c565b806370fd5bad14610819578063718a8aa81461082e57806375aca593146108435761038c565b80633fdfa7e4116102b6578063552aaf931161025457806369b635b61161022357806369b635b6146107865780636bd8f8041461079b5780636e47b482146107d15780636fb7f7eb146107e65761038c565b8063552aaf93146107325780635d17c8bd146107475780635d499b1b1461075c57806362b171d2146107715761038c565b8063493279b111610290578063493279b1146106b05780634bf6c882146106dc5780634d99dd16146106f157806351e806721461071d5761038c565b80633fdfa7e414610671578063413d9c3a1461068657806343756e5c1461069b5761038c565b806311fe9ec6116103235780632fdeb111116102fd5780632fdeb11114610632578063333ad3e71461064757806334c433541461065c5780633dffc3871461061d5761038c565b806311fe9ec6146105bf578063151817e3146105f257806317c9efb01461061d5761038c565b80630bee7a671161035f5780630bee7a67146104515780630c7957151461047f5780630e2374a5146104945780631182b875146104c55761038c565b8063026e402b1461039157806302985992146103bf578063047636d1146103e65761038c565b3661038c57005b600080fd5b6103bd600480360360408110156103a757600080fd5b506001600160a01b038135169060200135610c7f565b005b3480156103cb57600080fd5b506103d46111bc565b60408051918252519081900360200190f35b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b03166111c2565b6040518082606080838360005b8381101561043e578181015183820152602001610426565b5050505090500191505060405180910390f35b34801561045d57600080fd5b50610466611216565b6040805163ffffffff9092168252519081900360200190f35b34801561048b57600080fd5b506103d461121b565b3480156104a057600080fd5b506104a9611221565b604080516001600160a01b039092168252519081900360200190f35b3480156104d157600080fd5b5061054a600480360360408110156104e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561050c57600080fd5b82018360208201111561051e57600080fd5b803590602001918460018302840111600160201b8311171561053f57600080fd5b509092509050611227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561058457818101518382015260200161056c565b50505050905090810190601f1680156105b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cb57600080fd5b506103d4600480360360208110156105e257600080fd5b50356001600160a01b03166113e3565b3480156105fe57600080fd5b506106076113fe565b6040805160ff9092168252519081900360200190f35b34801561062957600080fd5b50610607611403565b34801561063e57600080fd5b506103d4611408565b34801561065357600080fd5b5061046661140e565b34801561066857600080fd5b506103d4611413565b34801561067d57600080fd5b5061060761141e565b34801561069257600080fd5b506103d4611423565b3480156106a757600080fd5b506104a961142a565b3480156106bc57600080fd5b506106c5611430565b6040805161ffff9092168252519081900360200190f35b3480156106e857600080fd5b50610607611435565b6103bd6004803603604081101561070757600080fd5b506001600160a01b03813516906020013561143a565b34801561072957600080fd5b506104a9611a62565b34801561073e57600080fd5b50610607611a68565b34801561075357600080fd5b506103d4611a6d565b34801561076857600080fd5b506103d4611a73565b34801561077d57600080fd5b506103d4611a7c565b34801561079257600080fd5b506103d4611c1c565b6103bd600480360360608110156107b157600080fd5b506001600160a01b03813581169160208101359091169060400135611c22565b3480156107dd57600080fd5b506104a961230b565b3480156107f257600080fd5b506103d46004803603602081101561080957600080fd5b50356001600160a01b0316612311565b34801561082557600080fd5b5061060761232c565b34801561083a57600080fd5b50610607612331565b34801561084f57600080fd5b506103d46004803603602081101561086657600080fd5b50356001600160a01b0316612336565b34801561088257600080fd5b506104a9612351565b34801561089757600080fd5b50610607612357565b3480156108ac57600080fd5b506103bd600480360360408110156108c357600080fd5b60ff8235169190810190604081016020820135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b50909250905061235c565b34801561093157600080fd5b50610607612624565b34801561094657600080fd5b506104a9612629565b34801561095b57600080fd5b506104a961262f565b34801561097057600080fd5b50610979612635565b604080519115158252519081900360200190f35b34801561099957600080fd5b50610466611a68565b3480156109ae57600080fd5b506103bd600480360360408110156109c557600080fd5b810190602081018135600160201b8111156109df57600080fd5b8201836020820111156109f157600080fd5b803590602001918460018302840111600160201b83111715610a1257600080fd5b919390929091602081019035600160201b811115610a2f57600080fd5b820183602082011115610a4157600080fd5b803590602001918460018302840111600160201b83111715610a6257600080fd5b50909250905061263e565b348015610a7957600080fd5b50610607612dd0565b348015610a8e57600080fd5b506103d4612dd5565b348015610aa357600080fd5b506103d4612f72565b348015610ab857600080fd5b506103d460048036036040811015610acf57600080fd5b506001600160a01b0381358116916020013516612f7d565b348015610af357600080fd5b506103d4612faa565b348015610b0857600080fd5b506104a9612fb0565b348015610b1d57600080fd5b506103bd60048036036040811015610b3457600080fd5b60ff8235169190810190604081016020820135600160201b811115610b5857600080fd5b820183602082011115610b6a57600080fd5b803590602001918460018302840111600160201b83111715610b8b57600080fd5b509092509050612fb6565b348015610ba257600080fd5b506103d460048036036040811015610bb957600080fd5b506001600160a01b03813581169160200135166131d9565b348015610bdd57600080fd5b506104a9613204565b348015610bf257600080fd5b506103d461320a565b348015610c0757600080fd5b506103d460048036036060811015610c1e57600080fd5b506001600160a01b038135811691602081013582169160409091013516613217565b348015610c4c57600080fd5b506104a961324c565b348015610c6157600080fd5b506103d4613252565b348015610c7657600080fd5b506104a9613258565b60105460ff1660021415610ccb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cf357506402540be4008106155b610d44576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d87576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600354821015610dde576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610df290839063ffffffff61325e16565b341015610e3d576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b601154604051600091339183818181818787f1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b5050905080610ecf576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610ee6846402540be40063ffffffff6132bf16565b90506000610efa348663ffffffff61330116565b90506000610f136002548361330190919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610f2f579050509050610f4f33613343565b81600081518110610f5c57fe5b6020026020010181905250610f79886001600160a01b0316613343565b81600181518110610f8657fe5b6020026020010181905250610f9a84613366565b81600281518110610fa757fe5b60200260200101819052506060610fc76001610fc284613379565b613403565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083611025876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b5061100492506108fc915061110290508a8663ffffffff61325e16565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561115b573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff1916600117905550505050505050565b60035481565b6111ca615193565b6111d2615193565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b606033612000146112695760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166112ac576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6112b46151b1565b6112fb6112f685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b6134ae565b9050600061131061130b836134f8565b613546565b90506000606060ff8316600414156113355761132b846135fd565b909250905061138c565b60ff83166005141561134a5761132b846137dd565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff8216156113d8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff1660021415611486576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be40034061580156114ae57506402540be4008106155b6114ff576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611542576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611590576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b60035482101561164b573360009081526005602090815260408083206001600160a01b03871684529091529020548214611602576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b600254821161164b576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156116c3576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461171e91859063ffffffff6139f916565b905080156117665760025481116117665760405162461bcd60e51b81526004018080602001828103825260258152602001806153766025913960400191505060405180910390fd5b600061177d846402540be40063ffffffff6132bf16565b600254909150349060009061179990839063ffffffff61330116565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816117b55790505090506117d533613343565b816000815181106117e257fe5b60200260200101819052506117ff886001600160a01b0316613343565b8160018151811061180c57fe5b602002602001018190525061182084613366565b8160028151811061182d57fe5b602002602001018190525060606118486002610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061189942620a8c0063ffffffff61325e16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836118dd876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561193b578181015183820152602001611923565b50505050905090810190601f1680156119685780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561198957600080fd5b505af115801561199d573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015611a01573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611acb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611b32576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b5050905080611bd5576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b60105460ff1660021415611c6e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611c9657506402540be4008106155b611ce7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611d2a576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611d88576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611dd6576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611e1e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611e8c57503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611edd576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b038916825290915291822054611f3891859063ffffffff6139f916565b90508015611f80576002548111611f805760405162461bcd60e51b815260040180806020018281038252602581526020018061527a6025913960400191505060405180910390fd5b6000611f97846402540be40063ffffffff6132bf16565b6002549091503490600090611fb390839063ffffffff61330116565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611fcf579050509050611fef33613343565b81600081518110611ffc57fe5b6020026020010181905250612019896001600160a01b0316613343565b8160018151811061202657fe5b6020026020010181905250612043886001600160a01b0316613343565b8160028151811061205057fe5b602002602001018190525061206484613366565b8160038151811061207157fe5b6020026020010181905250606061208c6003610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d90935291208054909101905590506120dd42620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908f16845290915290205561212042620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038f81168552908352818420908e16845290915290205561200063f7a251d7601083612170876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121ce5781810151838201526020016121b6565b50505050905090810190601f1680156121fb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561221c57600080fd5b505af1158015612230573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015612263573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015612294573d6000803e3d6000fd5b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158b87604051808381526020018281526020019250505060405180910390a450506010805460ff191660011790555050505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b336120001461239c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166123df576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6123e76151b1565b6124296112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b905060008060606000805b61243d86613a90565b156124a8578061245a5761245361130b876134f8565b94506124a0565b80600114156124765761246f61130b876134f8565b93506124a0565b806002141561249b5761249061248b876134f8565b613ab1565b9250600191506124a0565b6124a8565b600101612434565b816124ee576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6124f783613b21565b61253a576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125466112f684613489565b9550600061255661130b886134f8565b90506125606151b1565b61256988613a90565b1561258c576125856112f661258061248b8b6134f8565b613489565b90506125cd565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff8216600114156125e9576125e4818888613b75565b612617565b60ff821660021415612600576125e4818888613f2c565b60ff82166003141561134a576125e48188886141f9565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff16612695576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146126d55760405162461bcd60e51b815260040180806020018281038252602e8152602001806152ec602e913960400191505060405180910390fd5b61273684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061455e9050565b1561289c5760208114612790576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127ce9185858083850183828082843760009201919091525061464592505050565b905060035481106128105760405162461bcd60e51b815260040180806020018281038252602e81526020018061531a602e913960400191505060405180910390fd5b60025481116128505760405162461bcd60e51b815260040180806020018281038252602e815260200180615348602e913960400191505060405180910390fd5b6402540be4008106156128945760405162461bcd60e51b815260040180806020018281038252602c8152602001806152c0602c913960400191505060405180910390fd5b600155612d3e565b61290084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061455e9050565b15612a62576020811461295a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916129989185858083850183828082843760009201919091525061464592505050565b9050806129d65760405162461bcd60e51b81526004018080602001828103825260228152602001806153ca6022913960400191505060405180910390fd5b6001548110612a165760405162461bcd60e51b815260040180806020018281038252602e81526020018061521b602e913960400191505060405180910390fd5b6402540be400810615612a5a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806151ec602f913960400191505060405180910390fd5b600255612d3e565b612ac684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061455e9050565b15612ba85760208114612b20576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612b5e9185858083850183828082843760009201919091525061464592505050565b90506001548111612ba05760405162461bcd60e51b81526004018080602001828103825260318152602001806152496031913960400191505060405180910390fd5b600355612d3e565b612c0a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b6020820152915061455e9050565b15612d015760208114612c64576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612ca29185858083850183828082843760009201919091525061464592505050565b905060008111612cf9576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612d3e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612e24576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612e88576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d8060008114612ede576040519150601f19603f3d011682016040523d82523d6000602084013e612ee3565b606091505b5050905080612f2b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612ff65760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff16613039576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61307882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2192505050565b6130bb576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6130c36151b1565b6131056112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b9050600061311561130b836134f8565b905061311f6151b1565b61312883613a90565b156131465761313f6112f661258061248b866134f8565b905061318c565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156131a6576131a18161464a565b6131d0565b60ff8216600214156131bb576131a181614864565b60ff82166003141561134a576131a18161498e565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b6000828201838110156132b8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006132b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614af3565b60006132b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139f9565b60408051600560a21b83186014820152603481019091526060906132b881614b58565b6060612fa461337483614bae565b614b58565b606081516000141561339a5750604080516000815260208101909152611211565b6060826000815181106133a957fe5b602002602001015190506000600190505b83518110156133ea576133e0828583815181106133d357fe5b6020026020010151614c94565b91506001016133ba565b506132b86133fd825160c060ff16614d11565b82614c94565b6040805160028082526060828101909352829190816020015b606081526020019060019003908161341c57905050905061343f8460ff16613366565b8160008151811061344c57fe5b602002602001018190525061346083614b58565b8160018151811061346d57fe5b602002602001018190525061348181613379565b949350505050565b6134916151d1565b506040805180820190915281518152602082810190820152919050565b6134b66151b1565b6134bf82614e09565b6134c857600080fd5b60006134d78360200151614e43565b60208085015160408051808201909152868152920190820152915050919050565b6135006151d1565b61350982613a90565b61351257600080fd5b6020820151600061352282614ea6565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061355b57508151602110155b61356457600080fd5b60006135738360200151614e43565b905080836000015110156135ce576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156135f457826020036101000a820491505b50949350505050565b600060606000806000805b61361187613a90565b1561366357826136335761362c613627886134f8565b614fd9565b9150613658565b82600114156136535761364861130b886134f8565b905060019350613658565b613663565b826001019250613608565b836136a9576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156136f357600080fd5b505af1158015613707573d6000803e3d6000fd5b505050506040513d602081101561371d57600080fd5b505190508061374257613734600484846065614ff3565b9650965050505050506137d8565b6001600160a01b03831660009081526006602052604090205461376b908363ffffffff61325e16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6137f388613a90565b1561385c578361381057613809613627896134f8565b9250613851565b836001141561382c57613825613627896134f8565b9150613851565b836002141561384c5761384161130b896134f8565b905060019450613851565b61385c565b8360010193506137ea565b846138a2576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156138ec57600080fd5b505af1158015613900573d6000803e3d6000fd5b505050506040513d602081101561391657600080fd5b505190508061393c5761392d600585846065614ff3565b975097505050505050506137d8565b6001600160a01b038085166000818152600760209081526040808320948816835293815283822082905591815260089091522054613980908363ffffffff61325e16565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b60008184841115613a885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a4d578181015183820152602001613a35565b50505050905090810190601f168015613a7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613a9a6151d1565b505080518051602091820151919092015191011190565b8051606090613abf57600080fd5b6000613ace8360200151614e43565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015613b05576020820181803683370190505b50905060008160200190506135f48487602001510182856150ef565b8051602080830191909120600e546000908152600a9092526040822054808214613b5057600092505050611211565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b613b8788613a90565b15613bf05783613ba457613b9d613627896134f8565b9250613be5565b8360011415613bc057613bb9613627896134f8565b9150613be5565b8360021415613be057613bd561130b896134f8565b905060019450613be5565b613bf0565b836001019350613b7e565b84613c36576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613c4d826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff881660011415613d935760ff871615613cc0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613ce9908263ffffffff61325e16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613d2b908263ffffffff61325e16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613f21565b60ff8816613ee5576001600160a01b038416600090815260086020526040902054613dc4908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613e2057600080fd5b505af1158015613e34573d6000803e3d6000fd5b505050506040513d6020811015613e4a57600080fd5b5051613e93576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613f21565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613f3e88613a90565b15613fa75783613f5b57613f54613627896134f8565b9250613f9c565b8360011415613f7757613f70613627896134f8565b9150613f9c565b8360021415613f9757613f8c61130b896134f8565b905060019450613f9c565b613fa7565b836001019350613f35565b84613fed576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614004826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156141835760ff871615614077576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546140a0908263ffffffff61330116565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546140e2908263ffffffff61330116565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561411b42620a8c0063ffffffff61325e16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613f21565b60ff8816613ee5576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613f21565b6000806000806000805b61420c89613a90565b156142915784614229576142226136278a6134f8565b9350614286565b84600114156142455761423e6136278a6134f8565b9250614286565b84600214156142615761425a6136278a6134f8565b9150614286565b84600314156142815761427661130b8a6134f8565b905060019550614286565b614291565b846001019450614203565b856142d7576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142ee826402540be40063ffffffff61513a16565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156144c15760ff881615614361576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054614397908263ffffffff61330116565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546143d3908261325e565b6001600160a01b0380871660009081526005602090815260408083209388168352929052205561440c42620a8c0063ffffffff61325e16565b6001600160a01b038087166000908152600960209081526040808320898516845282528083209388168352929052205561444f42620a8c0063ffffffff61325e16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614552565b60ff8916613ee5576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106145935780518252601f199092019160209182019101614574565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146015780518252601f1990920191602091820191016145e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61465c86613a90565b156146c5578361467957614672613627876134f8565b92506146ba565b83600114156146955761468e613627876134f8565b91506146ba565b83600214156146b5576146aa61130b876134f8565b9050600194506146ba565b6146c5565b836001019350614653565b8461470b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614722826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150614760908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b505161482f576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b61487686613a90565b156148df57836148935761488c613627876134f8565b92506148d4565b83600114156148af576148a8613627876134f8565b91506148d4565b83600214156148cf576148c461130b876134f8565b9050600194506148d4565b6148df565b83600101935061486d565b84614925576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6149a187613a90565b15614a2657846149be576149b7613627886134f8565b9350614a1b565b84600114156149da576149d3613627886134f8565b9250614a1b565b84600214156149f6576149ef613627886134f8565b9150614a1b565b8460031415614a1657614a0b61130b886134f8565b905060019550614a1b565b614a26565b846001019450614998565b85614a6c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b60008183614b425760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613a4d578181015183820152602001613a35565b506000838581614b4e57fe5b0495945050505050565b606081516001148015614b8a5750607f60f81b82600081518110614b7857fe5b01602001516001600160f81b03191611155b15614b96575080611211565b612fa4614ba88351608060ff16614d11565b83614c94565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614bf257506018614c16565b6fffffffffffffffffffffffffffffffff198416614c1257506010614c16565b5060005b6020811015614c4c57818181518110614c2b57fe5b01602001516001600160f81b03191615614c4457614c4c565b600101614c16565b60008160200390506060816040519080825280601f01601f191660200182016040528015614c81576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614cc5578051835260209283019201614cad565b50855184518101855292509050808201602086015b81831015614cf2578051835260209283019201614cda565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d61576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614dbb5782840160f81b81600081518110614d9d57fe5b60200101906001600160f81b031916908160001a9053509050612fa4565b6060614dc685614bae565b90508381510160370160f81b82600081518110614ddf57fe5b60200101906001600160f81b031916908160001a905350614e008282614c94565b95945050505050565b8051600090614e1a57506000611211565b6020820151805160001a9060c0821015614e3957600092505050611211565b5060019392505050565b8051600090811a6080811015614e5d576000915050611211565b60b8811080614e78575060c08110801590614e78575060f881105b15614e87576001915050611211565b60c0811015614e9b5760b519019050611211565b60f519019050611211565b80516000908190811a6080811015614ec15760019150614fd2565b60b8811015614ed657607e1981019150614fd2565b60c0811015614f5057600060b78203600186019550806020036101000a865104915060018101820193505080831015614f4a576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fd2565b60f8811015614f655760be1981019150614fd2565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fd0576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614fea57600080fd5b612fa482613546565b6000606061500c846402540be40063ffffffff6132bf16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161502857905050905061504b8760ff16613366565b8160008151811061505857fe5b6020026020010181905250615075866001600160a01b0316613343565b8160018151811061508257fe5b602002602001018190525061509685613366565b816002815181106150a357fe5b60200260200101819052506150bd8463ffffffff16613366565b816003815181106150ca57fe5b602002602001018190525060606150e082613379565b94989497509395505050505050565b806150f9576131d4565b5b60208110615119578251825260209283019290910190601f19016150fa565b915181516020939093036101000a6000190180199091169216919091179052565b60008261514957506000612fa4565b8282028284828161515657fe5b04146132b85760405162461bcd60e51b815260040180806020018281038252602181526020018061529f6021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806151c46151d1565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565696e73756666696369656e742062616c616e636520616674657220726564656c6567617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa2646970667358221220de1a90a99417952bd5d4f424161817780a15ff9f30026401fbf3cc2b00ccc44464736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/planck/chapel/TokenHubContract b/core/systemcontracts/planck/chapel/TokenHubContract new file mode 100644 index 0000000000..a2c3cb2b7e --- /dev/null +++ b/core/systemcontracts/planck/chapel/TokenHubContract @@ -0,0 +1 @@ +6080604052600436106103c75760003560e01c806396713da9116101f2578063c81b16621161010d578063f0148472116100a0578063fc1a598f1161006f578063fc1a598f14610f25578063fc3e590814610b85578063fd6a687914610f58578063ff9c0027146107fd5761040f565b8063f014847214610ed1578063f9a2bbc714610ee6578063fa9e915914610efb578063fb063e8f14610f105761040f565b8063dc927faf116100dc578063dc927faf14610e5f578063e1c7392a14610e74578063e8f35cea14610e89578063ebf71d5314610ebc5761040f565b8063c81b166214610d8a578063c8509d8114610d9f578063cf41984414610e24578063d9e6dae91461077f5761040f565b8063aa7415f511610185578063b9fd21e311610154578063b9fd21e314610cfa578063ba35ead614610d0f578063bbface1f14610d24578063bd46646114610d575761040f565b8063aa7415f514610b9a578063ab51bb9614610be1578063ac43175114610bf6578063b99328c514610cc15761040f565b8063a1a11bf5116101c1578063a1a11bf514610b46578063a496fba214610b5b578063a78abc1614610b70578063a7c9f02d14610b855761040f565b806396713da914610ace5780639a854bbd14610ae35780639a99b4f014610af85780639dc0926214610b315761040f565b806359b92789116102e257806371d3086311610275578063831d65d111610244578063831d65d1146109d15780638b87b21f146106d45780638eff336c14610a565780639509b98014610a955761040f565b806371d3086314610968578063727be1f81461097d57806375d47a0a146109a75780637942fd05146109bc5761040f565b80636e056520116102b15780636e056520146108125780636e47b4821461093e57806370fd5bad146107fd578063718a8aa8146109535761040f565b806359b92789146107be5780635d499b1b146107e8578063613684751461077f57806366dea52a146107fd5761040f565b80633fd8b02f1161035a5780634a3acdf4116103295780634a3acdf41461076a5780634bf6c8821461077f57806350432d321461079457806351e80672146107a95761040f565b80633fd8b02f146106ff57806343756e5c1461071457806343a368b914610729578063493279b11461073e5761040f565b8063149d14d911610396578063149d14d9146105a85780632ae45483146105cf5780633d713223146106235780633dffc387146106d45761040f565b80630bee7a67146104145780630e2374a5146104425780631182b87514610473578063122345821461056d5761040f565b3661040f57341561040d576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561042057600080fd5b50610429610f6d565b6040805163ffffffff9092168252519081900360200190f35b34801561044e57600080fd5b50610457610f72565b604080516001600160a01b039092168252519081900360200190f35b34801561047f57600080fd5b506104f86004803603604081101561049657600080fd5b60ff8235169190810190604081016020820135600160201b8111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111600160201b831117156104ed57600080fd5b509092509050610f78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053257818101518382015260200161051a565b50505050905090810190601f16801561055f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057957600080fd5b5061040d6004803603604081101561059057600080fd5b506001600160a01b03813581169160200135166110a6565b3480156105b457600080fd5b506105bd6111a0565b60408051918252519081900360200190f35b3480156105db57600080fd5b5061060a600480360360408110156105f257600080fd5b506001600160a01b03813581169160200135166111a6565b6040805192835260208301919091528051918290030190f35b34801561062f57600080fd5b506104576004803603602081101561064657600080fd5b810190602081018135600160201b81111561066057600080fd5b82018360208201111561067257600080fd5b803590602001918460018302840111600160201b8311171561069357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111ca945050505050565b3480156106e057600080fd5b506106e96111ee565b6040805160ff9092168252519081900360200190f35b34801561070b57600080fd5b506105bd6111f3565b34801561072057600080fd5b506104576111f9565b34801561073557600080fd5b506105bd6111ff565b34801561074a57600080fd5b5061075361120b565b6040805161ffff9092168252519081900360200190f35b34801561077657600080fd5b506105bd611210565b34801561078b57600080fd5b506106e9611216565b3480156107a057600080fd5b506105bd61121b565b3480156107b557600080fd5b50610457611226565b3480156107ca57600080fd5b50610457600480360360208110156107e157600080fd5b503561122c565b3480156107f457600080fd5b506105bd611247565b34801561080957600080fd5b506106e9611250565b61092a6004803603608081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460208302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460208302840111600160201b831117156108c557600080fd5b919390929091602081019035600160201b8111156108e257600080fd5b8201836020820111156108f457600080fd5b803590602001918460208302840111600160201b8311171561091557600080fd5b91935091503567ffffffffffffffff16611255565b604080519115158252519081900360200190f35b34801561094a57600080fd5b5061045761172a565b34801561095f57600080fd5b506106e9611730565b34801561097457600080fd5b506105bd611735565b34801561098957600080fd5b5061092a600480360360208110156109a057600080fd5b503561173b565b3480156109b357600080fd5b506104576117bc565b3480156109c857600080fd5b506106e96117c2565b3480156109dd57600080fd5b5061040d600480360360408110156109f457600080fd5b60ff8235169190810190604081016020820135600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b5090925090506117c7565b348015610a6257600080fd5b5061040d60048036036060811015610a7957600080fd5b508035906001600160a01b036020820135169060400135611910565b348015610aa157600080fd5b5061040d60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611996565b348015610ada57600080fd5b506106e9611b53565b348015610aef57600080fd5b506105bd611b58565b348015610b0457600080fd5b506105bd60048036036040811015610b1b57600080fd5b506001600160a01b038135169060200135611b64565b348015610b3d57600080fd5b50610457611ca2565b348015610b5257600080fd5b50610457611ca8565b348015610b6757600080fd5b506106e9611cae565b348015610b7c57600080fd5b5061092a611cb3565b348015610b9157600080fd5b506106e9611cbc565b61092a60048036036080811015610bb057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611cc1565b348015610bed57600080fd5b50610429611cae565b348015610c0257600080fd5b5061040d60048036036040811015610c1957600080fd5b810190602081018135600160201b811115610c3357600080fd5b820183602082011115610c4557600080fd5b803590602001918460018302840111600160201b83111715610c6657600080fd5b919390929091602081019035600160201b811115610c8357600080fd5b820183602082011115610c9557600080fd5b803590602001918460018302840111600160201b83111715610cb657600080fd5b509092509050612382565b348015610ccd57600080fd5b5061040d60048036036040811015610ce457600080fd5b50803590602001356001600160a01b031661282a565b348015610d0657600080fd5b506105bd6128a0565b348015610d1b57600080fd5b506105bd6128aa565b348015610d3057600080fd5b506105bd60048036036020811015610d4757600080fd5b50356001600160a01b03166128b0565b348015610d6357600080fd5b506105bd60048036036020811015610d7a57600080fd5b50356001600160a01b03166128c2565b348015610d9657600080fd5b506104576128dd565b348015610dab57600080fd5b5061040d60048036036040811015610dc257600080fd5b60ff8235169190810190604081016020820135600160201b811115610de657600080fd5b820183602082011115610df857600080fd5b803590602001918460018302840111600160201b83111715610e1957600080fd5b5090925090506128e3565b348015610e3057600080fd5b5061040d60048036036040811015610e4757600080fd5b506001600160a01b03813581169160200135166129b3565b348015610e6b57600080fd5b50610457612c87565b348015610e8057600080fd5b5061040d612c8d565b348015610e9557600080fd5b506105bd60048036036020811015610eac57600080fd5b50356001600160a01b0316612d2d565b348015610ec857600080fd5b506106e9612d3f565b348015610edd57600080fd5b506106e9612d44565b348015610ef257600080fd5b50610457612d49565b348015610f0757600080fd5b506105bd612d4f565b348015610f1c57600080fd5b506105bd612d55565b348015610f3157600080fd5b506104f860048036036020811015610f4857600080fd5b50356001600160a01b0316612d63565b348015610f6457600080fd5b50610457612e8a565b606481565b61200181565b60005460609060ff16610fc0576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146110005760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff8416600214156110525761104b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9092505050565b905061109f565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146110e65760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611151576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b606181565b61a8c081565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661129b576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b8685146112d95760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f5603b913960400191505060405180910390fd5b8683146113175760405162461bcd60e51b815260040180806020018281038252603f8152602001806153c8603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156113635760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be4003406156113a75760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156113da578160200160208202803683370190505b50905060005b848110156114b5576402540be4008b8b838181106113fa57fe5b905060200201358161140857fe5b06156114455760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b61146a8b8b8381811061145457fe5b9050602002013585612fb490919063ffffffff16565b93506114966402540be4008c8c8481811061148157fe5b9050602002013561300e90919063ffffffff16565b8282815181106114a257fe5b60209081029190910101526001016113e0565b506001546114da906114cd908663ffffffff61305016565b849063ffffffff612fb416565b3410156115185760405162461bcd60e51b81526004018080602001828103825260568152602001806155a26056913960600191505060405180910390fd5b611528348463ffffffff6130a916565b91506115326150bc565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036115f6846130eb565b61160b876402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611669578181015183820152602001611651565b50505050905090810190601f1680156116965780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461177d5760405162461bcd60e51b81526004018080602001828103825260338152602001806151d66033913960400191505060405180910390fd5b81156117b4576040516120019083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff1661180c576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b336120001461184c5760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133a692505050565b61190b565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146119505760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516001600160a01b03163314611a58576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211611aa6576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054611afc576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff16611baa576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b3361100514611bea5760405162461bcd60e51b815260040180806020018281038252602f815260200180615209602f913960400191505060405180910390fd5b6000478310611bf95747611bfb565b825b9050670de0b6b3a7640000811115611c17576000915050611c9c565b8015611c99576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611c53573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611d07576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff161015611d535760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be400340615611d975760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b600080806001600160a01b038816611e7657600154611dbd90879063ffffffff612fb416565b341015611dfb5760405162461bcd60e51b81526004018080602001828103825260618152602001806153426061913960800191505060405180910390fd5b6402540be400860615611e3f5760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611e4f348763ffffffff6130a916565b9050611e66866402540be40063ffffffff61300e16565b6221272160e91b93509150612119565b6001600160a01b038816600090815260036020526040902054925082611ecd5760405162461bcd60e51b81526004018080602001828103825260318152602001806153116031913960400191505060405180910390fd5b600154341015611f0e5760405162461bcd60e51b815260040180806020018281038252603f815260200180615464603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611f595750600881118015611f595750611f57876007198301600a0a63ffffffff61340216565b155b611f945760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611f9e8782613444565b9250611fa984613484565b15611ff1576305f5e100831015611ff15760405162461bcd60e51b815260040180806020018281038252603a81526020018061525a603a913960400191505060405180910390fd5b60088110158061200b575060088110801561200b57508683115b6120465760405162461bcd60e51b81526004018080602001828103825260258152602001806153a36025913960400191505060405180910390fd5b677ce66c50e284000083111561208d5760405162461bcd60e51b81526004018080602001828103825260358152602001806152dc6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050506040513d602081101561210c57600080fd5b505161211757600080fd5b505b6121216150bc565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff1681525090508281604001516000815181106121cf57fe5b6020026020010181815250508781606001516000815181106121ed57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505033816080015160008151811061221f57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d7600361224a846130eb565b61225f866402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156122bd5781810151838201526020016122a5565b50505050905090810190601f1680156122ea5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b33611007146123c25760405162461bcd60e51b815260040180806020018281038252602e8152602001806154a3602e913960400191505060405180910390fd5b60208114612417576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561251f576020820151670de0b6b3a764000081118015906124c657506402540be4008106155b612517576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612795565b61259387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061358a9050565b1561262f57604080516020601f87018190048102820181019092528581526000916125d69188888083850183828082843760009201919091525061367192505050565b905062093a80811115612627576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612795565b61269b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061358a9050565b1561275857604080516020601f87018190048102820181019092528581526000916126de9188888083850183828082843760009201919091525061367192505050565b905068056bc75e2d631000008110156127285760405162461bcd60e51b81526004018080602001828103825260228152602001806152386022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612795565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461286a5760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612928576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146129685760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367692505050565b60085460ff16600214156129ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a77576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612ad0576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b43576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612b33576040519150601f19603f3d011682016040523d82523d6000602084013e612b38565b606091505b505080915050612bd6565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612ba657600080fd5b5087f1158015612bba573d6000803e3d6000fd5b50505050506040513d6020811015612bd157600080fd5b505190505b80612c28576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b60005460ff1615612ce5576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612df357828160ff1681518110612dc757fe5b01602001516001600160f81b03191615612de657600190910190612deb565b612df3565b600101612dac565b5060608160ff166040519080825280601f01601f191660200182016040528015612e24576020820181803683370190505b50905060005b8260ff168160ff161015612e8057838160ff1681518110612e4757fe5b602001015160f81c60f81b828260ff1681518110612e6157fe5b60200101906001600160f81b031916908160001a905350600101612e2a565b5095945050505050565b61100481565b6060612e9a615108565b6000612ea584613774565b9150915080612efb576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f06836138b3565b905063ffffffff811615612f9a576040808401516020808601516001600160a01b03166000908152600290915291822054612f419190613444565b9050612f4b61513d565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff168152509050612f8e81613c19565b955050505050506111e9565b505060408051600081526020810190915291506111e99050565b600082820183811015611c99576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cf5565b60008261305f57506000611c9c565b8282028284828161306c57fe5b0414611c995760405162461bcd60e51b81526004018080602001828103825260218152602001806154436021913960400191505060405180910390fd5b6000611c9983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d97565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613106575050835190915061312890613df1565b8160008151811061313557fe5b602002602001018190525061315683602001516001600160a01b0316613e04565b8160018151811061316357fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156131ae57816020015b60608152602001906001900390816131995790505b50905060005b828110156131fb576131dc866040015182815181106131cf57fe5b6020026020010151613df1565b8282815181106131e857fe5b60209081029190910101526001016131b4565b5061320581613e27565b8360028151811061321257fe5b602002602001018190525060608260405190808252806020026020018201604052801561325357816020015b606081526020019060019003908161323e5790505b50905060005b838110156132a95761328a8760600151828151811061327457fe5b60200260200101516001600160a01b0316613e04565b82828151811061329657fe5b6020908102919091010152600101613259565b506132b381613e27565b846003815181106132c057fe5b602002602001018190525060608360405190808252806020026020018201604052801561330157816020015b60608152602001906001900390816132ec5790505b50905060005b84811015613341576133228860800151828151811061327457fe5b82828151811061332e57fe5b6020908102919091010152600101613307565b5061334b81613e27565b8560048151811061335857fe5b602002602001018190525061337a8760a0015167ffffffffffffffff16613df1565b8560058151811061338757fe5b602002602001018190525061339b85613e27565b979650505050505050565b6133ae615164565b60006133b983613eb1565b91509150806133f95760405162461bcd60e51b81526004018080602001828103825260248152602001806154d16024913960400191505060405180910390fd5b61190b8261407c565b6000611c9983836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250614500565b6000600882111561346d57613466836007198401600a0a63ffffffff61300e16565b9050611c9c565b611c99836008849003600a0a63ffffffff61305016565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156134fa57828160ff16815181106134ce57fe5b01602001516001600160f81b031916156134ed576001909101906134f2565b6134fa565b6001016134b3565b50600760ff82161015613512576000925050506111e9565b816005820360ff168151811061352457fe5b6020910101516001600160f81b031916602d60f81b14613549576000925050506111e9565b816001820360ff168151811061355b57fe5b6020910101516001600160f81b031916604d60f81b14613580576000925050506111e9565b5060019392505050565b6000816040516020018082805190602001908083835b602083106135bf5780518252601f1990920191602091820191016135a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061362d5780518252601f19909201916020918201910161360e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b61367e6150bc565b600061368983614562565b91509150806136c95760405162461bcd60e51b81526004018080602001828103825260248152602001806152946024913960400191505060405180910390fd5b6136d1615164565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b8460400151518110156137525761372f8560400151828151811061372157fe5b6020026020010151836147c6565b8560400151828151811061373f57fe5b6020908102919091010152600101613701565b50608084015160408301526005606083015261376d8261407c565b5050505050565b61377c615108565b6000613786615108565b61378e61519b565b61379f61379a866147ff565b614824565b90506000805b6137ae8361486e565b156138a657806137d0576137c96137c48461488f565b6148dd565b845261389e565b80600114156137fd576137ea6137e58461488f565b614994565b6001600160a01b0316602085015261389e565b806002141561381c576138126137c48461488f565b604085015261389e565b8060031415613844576138316137e58461488f565b6001600160a01b0316606085015261389e565b806004141561386c576138596137e58461488f565b6001600160a01b0316608085015261389e565b8060051415613899576138816137c48461488f565b67ffffffffffffffff1660a08501526001915061389e565b6138a6565b6001016137a5565b5091935090915050915091565b60208101516000906001600160a01b03166139f7578160a0015167ffffffffffffffff164211156138e6575060016111e9565b81604001514710156138fa575060036111e9565b613903826149ae565b61397857606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461395e576040519150601f19603f3d011682016040523d82523d6000602084013e613963565b606091505b50509050806139765750600490506111e9565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006111e9565b8160a0015167ffffffffffffffff16421115613a15575060016111e9565b81516020808401516001600160a01b031660009081526003909152604090205414613a42575060026111e9565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a9257600080fd5b5086fa158015613aa6573d6000803e3d6000fd5b50505050506040513d6020811015613abd57600080fd5b50516040840151909150811015613ad85750600390506111e9565b613ae1836149ae565b613b9857600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b5657600080fd5b5087f1158015613b6a573d6000803e3d6000fd5b50505050506040513d6020811015613b8157600080fd5b5051905080613b965750600591506111e99050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506111e9565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c345750508351909150613c5690613df1565b81600081518110613c6357fe5b6020026020010181905250613c7b8360200151613df1565b81600181518110613c8857fe5b6020026020010181905250613ca983604001516001600160a01b0316613e04565b81600281518110613cb657fe5b6020026020010181905250613cd4836060015163ffffffff16613df1565b81600381518110613ce157fe5b602002602001018190525061109f81613e27565b60008183613d815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d46578181015183820152602001613d2e565b50505050905090810190601f168015613d735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8d57fe5b0495945050505050565b60008184841115613de95760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b505050900390565b6060611c9c613dff83614b1c565b614c02565b60408051600560a21b831860148201526034810190915260609061109f81614c02565b6060815160001415613e4857506040805160008152602081019091526111e9565b606082600081518110613e5757fe5b602002602001015190506000600190505b8351811015613e9857613e8e82858381518110613e8157fe5b6020026020010151614c54565b9150600101613e68565b5061109f613eab825160c060ff16614cd1565b82614c54565b613eb9615164565b6000613ec3615164565b613ecb61519b565b613ed761379a866147ff565b90506000805b613ee68361486e565b156138a65780613f0c57613efc6137e58461488f565b6001600160a01b03168452614074565b8060011415613fad576060613f28613f238561488f565b614dc9565b90508051604051908082528060200260200182016040528015613f55578160200160208202803683370190505b50602086015260005b8151811015613fa657613f83828281518110613f7657fe5b60200260200101516148dd565b86602001518281518110613f9357fe5b6020908102919091010152600101613f5e565b5050614074565b806002141561404f576060613fc4613f238561488f565b90508051604051908082528060200260200182016040528015613ff1578160200160208202803683370190505b50604086015260005b8151811015613fa65761401f82828151811061401257fe5b6020026020010151614994565b8660400151828151811061402f57fe5b6001600160a01b0390921660209283029190910190910152600101613ffa565b8060031415613899576140646137c48461488f565b63ffffffff166060850152600191505b600101613edd565b80516001600160a01b03166142a65760005b8160200151518110156142a0576000826040015182815181106140ad57fe5b60200260200101516001600160a01b0316612710846020015184815181106140d157fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614119576040519150601f19603f3d011682016040523d82523d6000602084013e61411e565b606091505b50509050806141e1577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415d57fe5b60200260200101518560200151858151811061417557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1614297565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061421757fe5b60200260200101518560200151858151811061422f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161408e565b506144fd565b60005b8160200151518110156144fb57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142de57fe5b6020026020010151866020015186815181106142f657fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434d57600080fd5b5087f1158015614361573d6000803e3d6000fd5b50505050506040513d602081101561437857600080fd5b50519050801561443c577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b857fe5b6020026020010151856020015185815181106143d057fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144f2565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061447257fe5b60200260200101518560200151858151811061448a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a9565b505b50565b6000818361454f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b5082848161455957fe5b06949350505050565b61456a6150bc565b60006145746150bc565b61457c61519b565b61458861379a866147ff565b90506000805b6145978361486e565b156138a657806145b4576145ad6137c48461488f565b84526147be565b80600114156145dc576145c96137e58461488f565b6001600160a01b031660208501526147be565b806002141561466b5760606145f3613f238561488f565b90508051604051908082528060200260200182016040528015614620578160200160208202803683370190505b50604086015260005b815181101561466457614641828281518110613f7657fe5b8660400151828151811061465157fe5b6020908102919091010152600101614629565b50506147be565b8060031415614700576060614682613f238561488f565b905080516040519080825280602002602001820160405280156146af578160200160208202803683370190505b50606086015260005b8151811015614664576146d082828151811061401257fe5b866060015182815181106146e057fe5b6001600160a01b03909216602092830291909101909101526001016146b8565b8060041415614795576060614717613f238561488f565b90508051604051908082528060200260200182016040528015614744578160200160208202803683370190505b50608086015260005b81518110156146645761476582828151811061401257fe5b8660800151828151811061477557fe5b6001600160a01b039092166020928302919091019091015260010161474d565b8060051415613899576147aa6137c48461488f565b67ffffffffffffffff1660a0850152600191505b60010161458e565b600060088211156147e857613466836007198401600a0a63ffffffff61305016565b611c99836008849003600a0a63ffffffff61300e16565b6148076151bb565b506040805180820190915281518152602082810190820152919050565b61482c61519b565b61483582614e9a565b61483e57600080fd5b600061484d8360200151614eca565b60208085015160408051808201909152868152920190820152915050919050565b60006148786151bb565b505080518051602091820151919092015191011190565b6148976151bb565b6148a08261486e565b6148a957600080fd5b602082015160006148b982614f2d565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906148f257508151602110155b6148fb57600080fd5b600061490a8360200151614eca565b90508083600001511015614965576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561498b57826020036101000a820491505b50949350505050565b80516000906015146149a557600080fd5b611c9c826148dd565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149e75750600554155b15614a295760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b0316600090815260069091526040902054801580614a575750808360400151105b15614a665760009150506111e9565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614aac9163ffffffff612fb416565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614b6057506018614b84565b6fffffffffffffffffffffffffffffffff198416614b8057506010614b84565b5060005b6020811015614bba57818181518110614b9957fe5b01602001516001600160f81b03191615614bb257614bba565b600101614b84565b60008160200390506060816040519080825280601f01601f191660200182016040528015614bef576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614c345750607f60f81b82600081518110614c2257fe5b01602001516001600160f81b03191611155b15614c405750806111e9565b611c9c614c528351608060ff16614cd1565b835b6060806040519050835180825260208201818101602087015b81831015614c85578051835260209283019201614c6d565b50855184518101855292509050808201602086015b81831015614cb2578051835260209283019201614c9a565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d21576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614d7b5782840160f81b81600081518110614d5d57fe5b60200101906001600160f81b031916908160001a9053509050611c9c565b6060614d8685614b1c565b90508381510160370160f81b82600081518110614d9f57fe5b60200101906001600160f81b031916908160001a905350614dc08282614c54565b95945050505050565b6060614dd482614e9a565b614ddd57600080fd5b6000614de883615060565b9050606081604051908082528060200260200182016040528015614e2657816020015b614e136151bb565b815260200190600190039081614e0b5790505b5090506000614e388560200151614eca565b60208601510190506000805b84811015614e8f57614e5583614f2d565b9150604051806040016040528083815260200184815250848281518110614e7857fe5b602090810291909101015291810191600101614e44565b509195945050505050565b8051600090614eab575060006111e9565b6020820151805160001a9060c0821015613580576000925050506111e9565b8051600090811a6080811015614ee45760009150506111e9565b60b8811080614eff575060c08110801590614eff575060f881105b15614f0e5760019150506111e9565b60c0811015614f225760b5190190506111e9565b60f5190190506111e9565b80516000908190811a6080811015614f485760019150615059565b60b8811015614f5d57607e1981019150615059565b60c0811015614fd757600060b78203600186019550806020036101000a865104915060018101820193505080831015614fd1576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615059565b60f8811015614fec5760be1981019150615059565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615057576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090615071575060006111e9565b600080905060006150858460200151614eca565b602085015185519181019250015b808210156150b3576150a482614f2d565b60019093019290910190615093565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b60405180604001604052806151ae6151bb565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220ef72e8713245ba000d1e9efd85d005317b64710a26d7b67a7649bda481a927d064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/planck/mainnet/CrossChainContract b/core/systemcontracts/planck/mainnet/CrossChainContract new file mode 100644 index 0000000000..0a3aabd810 --- /dev/null +++ b/core/systemcontracts/planck/mainnet/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b610409612a36565b6103a6612a3e565b6103e5612a43565b6103e5612a49565b610423612a4f565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b509092509050612a58565b61063d60048036036020811015610a9657600080fd5b503560ff1661351c565b610409613537565b6103e561355b565b610599613561565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff166137b5565b61070c6137d5565b6104096137f4565b6103e56137fa565b610599613800565b61063d60048036036020811015610b1d57600080fd5b503560ff16613bb7565b610599613bd2565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613df1565b6103e5613f34565b6103a6613f3a565b6103e5613f3f565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613f45565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f8d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f8d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61408a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614108565b50905061138681838851614112565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d89083614153565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480611842575073446aa6e0dc65690403df3f127750da1322941f3e33145b61187d5760405162461bcd60e51b815260040180806020018281038252602a8152602001806149f0602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b0390811690831681146118ed576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561196257600080fd5b505afa158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50516119c95760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a33576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a9c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611aee5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b32576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c766110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c1f57600080fd5b505afa158015611c33573d6000803e3d6000fd5b505050506040513d6020811015611c4957600080fd5b505160408051808201909152600381526269626360e81b6020820152611c6f8e8e613f45565b8585613f8d565b611cbe576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d0a57600080fd5b505afa158015611d1e573d6000803e3d6000fd5b505050506040513d6020811015611d3457600080fd5b505190508b8b600080806060611d4989614438565b935093509350935083611e0b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dc3578181015183820152602001611dab565b50505050905090810190601f168015611df05780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a26565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123905760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611ed8578181015183820152602001611ec0565b50505050905090810190601f168015611f055780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f2557600080fd5b505af192505050801561200957506040513d6000823e601f3d908101601f191682016040526020811015611f5857600080fd5b8101908080516040519392919084600160201b821115611f7757600080fd5b908301906020820185811115611f8c57600080fd5b8251600160201b811182820188101715611fa557600080fd5b82525081516020918201929091019080838360005b83811015611fd2578181015183820152602001611fba565b50505050905090810190601f168015611fff5780820380516001836020036101000a031916815260200191505b5060405250505060015b61231b576040516000815260443d1015612025575060006120c0565b60046000803e60005160e01c6308c379a081146120465760009150506120c0565b60043d036004833e81513d60248201116001600160401b0382111715612071576000925050506120c0565b80830180516001600160401b038111156120925760009450505050506120c0565b8060208301013d86018111156120b0576000955050505050506120c0565b601f01601f191660405250925050505b806120cb57506121dd565b60ff8716600090815260076020526040812054612102916001600160401b039091169089906120fd906002908861131c565b6144e8565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561219d578181015183820152602001612185565b50505050905090810190601f1680156121ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612316565b3d808015612207576040519150601f19603f3d011682016040523d82523d6000602084013e61220c565b606091505b5060ff871660009081526007602052604081205461223f916001600160401b039091169089906120fd906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156122da5781810151838201526020016122c2565b50505050905090810190601f1680156123075780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61238a565b8051156123885760ff8716600090815260076020526040812054612354916001600160401b039091169089906120fd906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b5061295e565b60ff8316600114156126345760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561241a578181015183820152602001612402565b50505050905090810190601f1680156124475780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561246757600080fd5b505af1925050508015612478575060015b61238a576040516000815260443d10156124945750600061252f565b60046000803e60005160e01c6308c379a081146124b557600091505061252f565b60043d036004833e81513d60248201116001600160401b03821117156124e05760009250505061252f565b80830180516001600160401b0381111561250157600094505050505061252f565b8060208301013d860181111561251f5760009550505050505061252f565b601f01601f191660405250925050505b8061253a575061259f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561219d578181015183820152602001612185565b3d8080156125c9576040519150601f19603f3d011682016040523d82523d6000602084013e6125ce565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156122da5781810151838201526020016122c2565b60ff83166002141561295e5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126be5781810151838201526020016126a6565b50505050905090810190601f1680156126eb5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561270b57600080fd5b505af192505050801561271c575060015b61295c576040516000815260443d1015612738575060006127d3565b60046000803e60005160e01c6308c379a081146127595760009150506127d3565b60043d036004833e81513d60248201116001600160401b0382111715612784576000925050506127d3565b80830180516001600160401b038111156127a55760009450505050506127d3565b8060208301013d86018111156127c3576000955050505050506127d3565b601f01601f191660405250925050505b806127de5750612887565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561284757818101518382015260200161282f565b50505050905090810190601f1680156128745780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061295c565b3d8080156128b1576040519150601f19603f3d011682016040523d82523d6000602084013e6128b6565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612920578181015183820152602001612908565b50505050905090810190601f16801561294d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612990575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050506040513d6020811015612a1a57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a985760405162461bcd60e51b815260040180806020018281038252602e815260200180614978602e913960400191505060405180910390fd5b600b5460ff1615612adc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b4584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146829050565b15612be057604080516020601f8401819004810282018101909252828152600091612b889185858083850183828082843760009201919091525061476992505050565b90506127108111158015612b9d5750600a8110155b612bd85760405162461bcd60e51b8152600401808060200182810382526032815260200180614a1a6032913960400191505060405180910390fd5b60015561348a565b612c4984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146829050565b15612dd157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612ccc5760405162461bcd60e51b815260040180806020018281038252605a815260200180614891605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612cea8161476e565b612d3b576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061348a565b612e3e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146829050565b15612f6f57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ec15760405162461bcd60e51b815260040180806020018281038252604a8152602001806149a6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f65576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061348a565b612fd384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146829050565b1561310857600281146130175760405162461bcd60e51b815260040180806020018281038252602d81526020018061491f602d913960400191505060405180910390fd5b600061305a600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff16118015613074575060648161ffff16105b6130be576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61316b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146829050565b1561329e57600281146131af5760405162461bcd60e51b815260040180806020018281038252602c81526020018061494c602c913960400191505060405180910390fd5b60006131f2600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff1611801561320c575060648161ffff16105b613255576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61330984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146829050565b1561344d576002811461334d5760405162461bcd60e51b81526004018080602001828103825260348152602001806148eb6034913960400191505060405180910390fd5b6000613390600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff161180156133aa575060648161ffff16105b6133fb576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135a6576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b1580156135e957600080fd5b505afa1580156135fd573d6000803e3d6000fd5b505050506040513d602081101561361357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561365457600080fd5b505afa158015613668573d6000803e3d6000fd5b505050506040513d602081101561367e57600080fd5b505190508061368b575060155b60008211801561369b5750808211155b6136da576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613721576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613772907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff1615613858576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c17576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cc557600080fd5b505afa158015613cd9573d6000803e3d6000fd5b505050506040513d6020811015613cef57600080fd5b5051905080613cfc575060155b600082118015613d0c5750808211155b613d4b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d8f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613de1907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b0576137b061408a565b60005460ff16613e36576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e935760405162461bcd60e51b81526004018080602001828103825260318152602001806148606031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613ef89284928a926120fd92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f9c57506000614081565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613fd3576020820181803683370190505b5090506000613fe182614774565b602080890151825201905086600080613ff989614108565b8086526020909501949092509050614012828583614112565b9283019261401f88614108565b8086526020909501949092509050614038828583614112565b9283018a81526020019261404b87614108565b909250905061405b828583614112565b50835160200161406961477a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff16156140ce576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614132578251825260209283019290910190601f1901614113565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661421c57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061424d575082816001015414155b15614320576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142c291600284019190614798565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a36143d4565b60005b60028201548110156143ab57336001600160a01b031682600201828154811061434857fe5b6000918252602090912001546001600160a01b031614156143a3576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614323565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161442e576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff19168155600181018290559061442260028301826147fd565b50506001915050613f87565b5060009392505050565b600080600060606021855110156144685750506040805160008082526020820190925290925082915081906144e1565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144b3576020820181803683370190505b50905060006144c182614108565b5090506144d3858260218d5103614112565b506001975091955093509150505b9193509193565b600b5460ff161561452c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60025443111561456b576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ac565b600380546001908101918290555410156145ac576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561464257818101518382015260200161462a565b50505050905090810190601f16801561466f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146b75780518252601f199092019160209182019101614698565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147255780518252601f199092019160209182019101614706565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b8280548282559060005260206000209081019282156147ed579160200282015b828111156147ed57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147b8565b506147f992915061481e565b5090565b508054600082559060005260206000209081019061481b9190614845565b50565b61484291905b808211156147f95780546001600160a01b0319168155600101614824565b90565b61484291905b808211156147f9576000815560010161484b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122041ff13fe956e0a3b951862bdc1d377a102e361a8960c89b2a595749204aba3ed64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/planck/mainnet/SlashContract b/core/systemcontracts/planck/mainnet/SlashContract new file mode 100644 index 0000000000..1beb015926 --- /dev/null +++ b/core/systemcontracts/planck/mainnet/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102535760003560e01c80637942fd0511610146578063ac431751116100c3578063dc927faf11610087578063dc927faf1461073b578063e1c7392a14610743578063f9a2bbc71461074b578063fc3e590814610753578063fc4333cd1461075b578063fd6a68791461076357610253565b8063ac431751146105cf578063c80d4b8f1461068d578063c81b166214610695578063c8509d811461069d578063c96be4cb1461071557610253565b80639dc092621161010a5780639dc0926214610593578063a1a11bf51461059b578063a78abc16146105a3578063ab51bb96146105bf578063ac0af629146105c757610253565b80637942fd05146104fb5780638256ace614610503578063831d65d11461050b57806396713da9146105835780639bc8e4f21461058b57610253565b80634bf6c882116101d45780636e47b482116101985780636e47b482146104d357806370fd5bad146104db578063718a8aa8146104e357806375d47a0a146104eb5780637912a65d146104f357610253565b80634bf6c8821461048b57806351e8067214610493578063567a372d1461049b5780635bfb4990146104a357806362b72cf5146104cb57610253565b806337c8dab91161021b57806337c8dab9146103ed578063389f4f711461042c5780633dffc3871461044657806343756e5c14610464578063493279b11461046c57610253565b80630bee7a67146102585780630e2374a5146102795780631182b8751461029d57806323bac5a21461038a57806335aa2e44146103d0575b600080fd5b61026061076b565b6040805163ffffffff9092168252519081900360200190f35b610281610770565b604080516001600160a01b039092168252519081900360200190f35b610315600480360360408110156102b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b509092509050610776565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b0600480360360208110156103a057600080fd5b50356001600160a01b031661084a565b604080519384526020840192909252151582820152519081900360600190f35b610281600480360360208110156103e657600080fd5b503561086d565b6104136004803603602081101561040357600080fd5b50356001600160a01b0316610894565b6040805192835260208301919091528051918290030190f35b6104346108eb565b60408051918252519081900360200190f35b61044e6108f1565b6040805160ff9092168252519081900360200190f35b6102816108f6565b6104746108fc565b6040805161ffff9092168252519081900360200190f35b61044e610901565b610281610906565b61043461090c565b6104c9600480360360208110156104b957600080fd5b50356001600160a01b0316610912565b005b610434610a73565b610281610a79565b61044e610a7f565b61044e610a84565b610281610a89565b610434610a8f565b61044e610a94565b610413610a99565b6104c96004803603604081101561052157600080fd5b60ff8235169190810190604081016020820135600160201b81111561054557600080fd5b82018360208201111561055757600080fd5b803590602001918460018302840111600160201b8311171561057857600080fd5b509092509050610aa3565b61044e610bfd565b610434610c02565b610281610c0d565b610281610c13565b6105ab610c19565b604080519115158252519081900360200190f35b610260610c22565b610434610c27565b6104c9600480360360408110156105e557600080fd5b810190602081018135600160201b8111156105ff57600080fd5b82018360208201111561061157600080fd5b803590602001918460018302840111600160201b8311171561063257600080fd5b919390929091602081019035600160201b81111561064f57600080fd5b82018360208201111561066157600080fd5b803590602001918460018302840111600160201b8311171561068257600080fd5b509092509050610c2c565b61043461101a565b61028161101f565b6104c9600480360360408110156106b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156106d757600080fd5b8201836020820111156106e957600080fd5b803590602001918460018302840111600160201b8311171561070a57600080fd5b509092509050611025565b6104c96004803603602081101561072b57600080fd5b50356001600160a01b03166110d8565b610281611659565b6104c961165f565b6102816116d0565b61044e6116d6565b6104c96116db565b610281611b66565b606481565b61200181565b606033612000146107b85760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166107fd576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061087a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061089f612481565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146109525760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16610997576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b61200063f7a251d7600b6109aa84611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610a0a5781810151838201526020016109f2565b50505050905090810190601f168015610a375780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ae35760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff16610b28576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b610b306124a4565b6000610b7184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3e92505050565b915091508015610bbb5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a6c565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c71576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b3361100714610cb15760405162461bcd60e51b815260040180806020018281038252602e815260200180612548602e913960400191505060405180910390fd5b610d1c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611cbe9050565b15610df55760208114610d605760405162461bcd60e51b81526004018080602001828103825260278152602001806124f16027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d9e91858580838501838280828437600092019190915250611da692505050565b905060018110158015610db2575060055481105b610ded5760405162461bcd60e51b81526004018080602001828103825260258152602001806125986025913960400191505060405180910390fd5b600455610f88565b610e5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611cbe9050565b15610f4b5760208114610e9f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125766022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610edd91858580838501838280828437600092019190915250611da692505050565b90506103e88111158015610ef2575060045481115b610f43576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f88565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110655760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166110aa576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146111165760405162461bcd60e51b815260040180806020018281038252602d8152602001806125ec602d913960400191505060405180910390fd5b60005460ff1661115b576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60035443116111b1576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111fb576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561124357600080fd5b505afa158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b505161127857611652565b611280612481565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112db576020810180516001019052611334565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161134657fe5b0661157657600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561139957600080fd5b505af11580156113ad573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6113cd85611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561142d578181015183820152602001611415565b50505050905090810190601f16801561145a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b611571573d8080156114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153457818101518382015260200161151c565b50505050905090810190601f1680156115615780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b6115ec565b60045481602001518161158557fe5b066115ec57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156116b7576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461171b5760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16611760576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60015461176c57611b64565b600154600090600019015b808211611b38576000805b8284101561189b57611792612481565b60026000600187815481106117a357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118855760046005548161181057fe5b0481602001510381602001818152505080600260006001888154811061183257fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561188f565b600192505061189b565b50600190930192611782565b828411611a32576118aa612481565b60026000600186815481106118bb57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156119a35760046005548161192857fe5b0481602001510381602001818152505080600260006001878154811061194a57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a329050565b60026000600186815481106119b457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119f857fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a255750611a32565b506000199092019161189b565b818015611a3c5750805b15611b1b576002600060018681548110611a5257fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a9957fe5b600091825260209091200154600180546001600160a01b039092169186908110611abf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611af857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b27575050611b38565b505060019091019060001901611777565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b87579050509050611bb0836001600160a01b0316611dab565b81600081518110611bbd57fe5b6020026020010181905250611bd143611dce565b81600181518110611bde57fe5b6020908102919091010152611bf36038611dce565b81600281518110611c0057fe5b6020026020010181905250611c1442611dce565b81600381518110611c2157fe5b6020026020010181905250611c3581611de1565b9150505b919050565b611c466124a4565b6000611c506124a4565b611c586124b6565b611c69611c6486611e6b565b611e90565b90506000805b611c7883611eda565b15611cb15780611ca457611c93611c8e84611efb565b611f49565b63ffffffff16845260019150611ca9565b611cb1565b600101611c6f565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611cf35780518252601f199092019160209182019101611cd4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d615780518252601f199092019160209182019101611d42565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611c3581612000565b6060611da0611ddc83612056565b612000565b6060815160001415611e025750604080516000815260208101909152611c39565b606082600081518110611e1157fe5b602002602001015190506000600190505b8351811015611e5257611e4882858381518110611e3b57fe5b602002602001015161213c565b9150600101611e22565b50611c35611e65825160c060ff166121b9565b8261213c565b611e736124d6565b506040805180820190915281518152602082810190820152919050565b611e986124b6565b611ea1826122b1565b611eaa57600080fd5b6000611eb983602001516122eb565b60208085015160408051808201909152868152920190820152915050919050565b6000611ee46124d6565b505080518051602091820151919092015191011190565b611f036124d6565b611f0c82611eda565b611f1557600080fd5b60208201516000611f258261234e565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611f5e57508151602110155b611f6757600080fd5b6000611f7683602001516122eb565b90508083600001511015611fd1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ff757826020036101000a820491505b50949350505050565b6060815160011480156120325750607f60f81b8260008151811061202057fe5b01602001516001600160f81b03191611155b1561203e575080611c39565b611da06120508351608060ff166121b9565b8361213c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661209a575060186120be565b6fffffffffffffffffffffffffffffffff1984166120ba575060106120be565b5060005b60208110156120f4578181815181106120d357fe5b01602001516001600160f81b031916156120ec576120f4565b6001016120be565b60008160200390506060816040519080825280601f01601f191660200182016040528015612129576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561216d578051835260209283019201612155565b50855184518101855292509050808201602086015b8183101561219a578051835260209283019201612182565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612209576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116122635782840160f81b8160008151811061224557fe5b60200101906001600160f81b031916908160001a9053509050611da0565b606061226e85612056565b90508381510160370160f81b8260008151811061228757fe5b60200101906001600160f81b031916908160001a9053506122a8828261213c565b95945050505050565b80516000906122c257506000611c39565b6020820151805160001a9060c08210156122e157600092505050611c39565b5060019392505050565b8051600090811a6080811015612305576000915050611c39565b60b8811080612320575060c08110801590612320575060f881105b1561232f576001915050611c39565b60c08110156123435760b519019050611c39565b60f519019050611c39565b80516000908190811a6080811015612369576001915061247a565b60b881101561237e57607e198101915061247a565b60c08110156123f857600060b78203600186019550806020036101000a8651049150600181018201935050808310156123f2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061247a565b60f881101561240d5760be198101915061247a565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612478576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806124c96124d6565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220638a87b280b96494e110d626ea9527bb15cb9cf42454fbab93839017affa9a8564736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/planck/mainnet/TokenHubContract b/core/systemcontracts/planck/mainnet/TokenHubContract new file mode 100644 index 0000000000..6605c91c0d --- /dev/null +++ b/core/systemcontracts/planck/mainnet/TokenHubContract @@ -0,0 +1 @@ +6080604052600436106103c75760003560e01c806396713da9116101f2578063c81b16621161010d578063f0148472116100a0578063fc1a598f1161006f578063fc1a598f14610f25578063fc3e590814610b85578063fd6a687914610f58578063ff9c0027146107fd5761040f565b8063f014847214610ed1578063f9a2bbc714610ee6578063fa9e915914610efb578063fb063e8f14610f105761040f565b8063dc927faf116100dc578063dc927faf14610e5f578063e1c7392a14610e74578063e8f35cea14610e89578063ebf71d5314610ebc5761040f565b8063c81b166214610d8a578063c8509d8114610d9f578063cf41984414610e24578063d9e6dae91461077f5761040f565b8063aa7415f511610185578063b9fd21e311610154578063b9fd21e314610cfa578063ba35ead614610d0f578063bbface1f14610d24578063bd46646114610d575761040f565b8063aa7415f514610b9a578063ab51bb9614610be1578063ac43175114610bf6578063b99328c514610cc15761040f565b8063a1a11bf5116101c1578063a1a11bf514610b46578063a496fba214610b5b578063a78abc1614610b70578063a7c9f02d14610b855761040f565b806396713da914610ace5780639a854bbd14610ae35780639a99b4f014610af85780639dc0926214610b315761040f565b806359b92789116102e257806371d3086311610275578063831d65d111610244578063831d65d1146109d15780638b87b21f146106d45780638eff336c14610a565780639509b98014610a955761040f565b806371d3086314610968578063727be1f81461097d57806375d47a0a146109a75780637942fd05146109bc5761040f565b80636e056520116102b15780636e056520146108125780636e47b4821461093e57806370fd5bad146107fd578063718a8aa8146109535761040f565b806359b92789146107be5780635d499b1b146107e8578063613684751461077f57806366dea52a146107fd5761040f565b80633fd8b02f1161035a5780634a3acdf4116103295780634a3acdf41461076a5780634bf6c8821461077f57806350432d321461079457806351e80672146107a95761040f565b80633fd8b02f146106ff57806343756e5c1461071457806343a368b914610729578063493279b11461073e5761040f565b8063149d14d911610396578063149d14d9146105a85780632ae45483146105cf5780633d713223146106235780633dffc387146106d45761040f565b80630bee7a67146104145780630e2374a5146104425780631182b87514610473578063122345821461056d5761040f565b3661040f57341561040d576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561042057600080fd5b50610429610f6d565b6040805163ffffffff9092168252519081900360200190f35b34801561044e57600080fd5b50610457610f72565b604080516001600160a01b039092168252519081900360200190f35b34801561047f57600080fd5b506104f86004803603604081101561049657600080fd5b60ff8235169190810190604081016020820135600160201b8111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111600160201b831117156104ed57600080fd5b509092509050610f78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053257818101518382015260200161051a565b50505050905090810190601f16801561055f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057957600080fd5b5061040d6004803603604081101561059057600080fd5b506001600160a01b03813581169160200135166110a6565b3480156105b457600080fd5b506105bd6111a0565b60408051918252519081900360200190f35b3480156105db57600080fd5b5061060a600480360360408110156105f257600080fd5b506001600160a01b03813581169160200135166111a6565b6040805192835260208301919091528051918290030190f35b34801561062f57600080fd5b506104576004803603602081101561064657600080fd5b810190602081018135600160201b81111561066057600080fd5b82018360208201111561067257600080fd5b803590602001918460018302840111600160201b8311171561069357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111ca945050505050565b3480156106e057600080fd5b506106e96111ee565b6040805160ff9092168252519081900360200190f35b34801561070b57600080fd5b506105bd6111f3565b34801561072057600080fd5b506104576111f9565b34801561073557600080fd5b506105bd6111ff565b34801561074a57600080fd5b5061075361120b565b6040805161ffff9092168252519081900360200190f35b34801561077657600080fd5b506105bd611210565b34801561078b57600080fd5b506106e9611216565b3480156107a057600080fd5b506105bd61121b565b3480156107b557600080fd5b50610457611226565b3480156107ca57600080fd5b50610457600480360360208110156107e157600080fd5b503561122c565b3480156107f457600080fd5b506105bd611247565b34801561080957600080fd5b506106e9611250565b61092a6004803603608081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460208302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460208302840111600160201b831117156108c557600080fd5b919390929091602081019035600160201b8111156108e257600080fd5b8201836020820111156108f457600080fd5b803590602001918460208302840111600160201b8311171561091557600080fd5b91935091503567ffffffffffffffff16611255565b604080519115158252519081900360200190f35b34801561094a57600080fd5b5061045761172a565b34801561095f57600080fd5b506106e9611730565b34801561097457600080fd5b506105bd611735565b34801561098957600080fd5b5061092a600480360360208110156109a057600080fd5b503561173b565b3480156109b357600080fd5b506104576117bc565b3480156109c857600080fd5b506106e96117c2565b3480156109dd57600080fd5b5061040d600480360360408110156109f457600080fd5b60ff8235169190810190604081016020820135600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b5090925090506117c7565b348015610a6257600080fd5b5061040d60048036036060811015610a7957600080fd5b508035906001600160a01b036020820135169060400135611910565b348015610aa157600080fd5b5061040d60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611996565b348015610ada57600080fd5b506106e9611b53565b348015610aef57600080fd5b506105bd611b58565b348015610b0457600080fd5b506105bd60048036036040811015610b1b57600080fd5b506001600160a01b038135169060200135611b64565b348015610b3d57600080fd5b50610457611ca2565b348015610b5257600080fd5b50610457611ca8565b348015610b6757600080fd5b506106e9611cae565b348015610b7c57600080fd5b5061092a611cb3565b348015610b9157600080fd5b506106e9611cbc565b61092a60048036036080811015610bb057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611cc1565b348015610bed57600080fd5b50610429611cae565b348015610c0257600080fd5b5061040d60048036036040811015610c1957600080fd5b810190602081018135600160201b811115610c3357600080fd5b820183602082011115610c4557600080fd5b803590602001918460018302840111600160201b83111715610c6657600080fd5b919390929091602081019035600160201b811115610c8357600080fd5b820183602082011115610c9557600080fd5b803590602001918460018302840111600160201b83111715610cb657600080fd5b509092509050612382565b348015610ccd57600080fd5b5061040d60048036036040811015610ce457600080fd5b50803590602001356001600160a01b031661282a565b348015610d0657600080fd5b506105bd6128a0565b348015610d1b57600080fd5b506105bd6128aa565b348015610d3057600080fd5b506105bd60048036036020811015610d4757600080fd5b50356001600160a01b03166128b0565b348015610d6357600080fd5b506105bd60048036036020811015610d7a57600080fd5b50356001600160a01b03166128c2565b348015610d9657600080fd5b506104576128dd565b348015610dab57600080fd5b5061040d60048036036040811015610dc257600080fd5b60ff8235169190810190604081016020820135600160201b811115610de657600080fd5b820183602082011115610df857600080fd5b803590602001918460018302840111600160201b83111715610e1957600080fd5b5090925090506128e3565b348015610e3057600080fd5b5061040d60048036036040811015610e4757600080fd5b506001600160a01b03813581169160200135166129b3565b348015610e6b57600080fd5b50610457612c87565b348015610e8057600080fd5b5061040d612c8d565b348015610e9557600080fd5b506105bd60048036036020811015610eac57600080fd5b50356001600160a01b0316612d2d565b348015610ec857600080fd5b506106e9612d3f565b348015610edd57600080fd5b506106e9612d44565b348015610ef257600080fd5b50610457612d49565b348015610f0757600080fd5b506105bd612d4f565b348015610f1c57600080fd5b506105bd612d55565b348015610f3157600080fd5b506104f860048036036020811015610f4857600080fd5b50356001600160a01b0316612d63565b348015610f6457600080fd5b50610457612e8a565b606481565b61200181565b60005460609060ff16610fc0576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146110005760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff8416600214156110525761104b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9092505050565b905061109f565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146110e65760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611151576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b603881565b61a8c081565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661129b576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b8685146112d95760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f5603b913960400191505060405180910390fd5b8683146113175760405162461bcd60e51b815260040180806020018281038252603f8152602001806153c8603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156113635760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be4003406156113a75760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156113da578160200160208202803683370190505b50905060005b848110156114b5576402540be4008b8b838181106113fa57fe5b905060200201358161140857fe5b06156114455760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b61146a8b8b8381811061145457fe5b9050602002013585612fb490919063ffffffff16565b93506114966402540be4008c8c8481811061148157fe5b9050602002013561300e90919063ffffffff16565b8282815181106114a257fe5b60209081029190910101526001016113e0565b506001546114da906114cd908663ffffffff61305016565b849063ffffffff612fb416565b3410156115185760405162461bcd60e51b81526004018080602001828103825260568152602001806155a26056913960600191505060405180910390fd5b611528348463ffffffff6130a916565b91506115326150bc565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036115f6846130eb565b61160b876402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611669578181015183820152602001611651565b50505050905090810190601f1680156116965780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461177d5760405162461bcd60e51b81526004018080602001828103825260338152602001806151d66033913960400191505060405180910390fd5b81156117b4576040516120019083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff1661180c576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b336120001461184c5760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133a692505050565b61190b565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146119505760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516001600160a01b03163314611a58576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211611aa6576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054611afc576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff16611baa576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b3361100514611bea5760405162461bcd60e51b815260040180806020018281038252602f815260200180615209602f913960400191505060405180910390fd5b6000478310611bf95747611bfb565b825b9050670de0b6b3a7640000811115611c17576000915050611c9c565b8015611c99576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611c53573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611d07576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff161015611d535760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be400340615611d975760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b600080806001600160a01b038816611e7657600154611dbd90879063ffffffff612fb416565b341015611dfb5760405162461bcd60e51b81526004018080602001828103825260618152602001806153426061913960800191505060405180910390fd5b6402540be400860615611e3f5760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611e4f348763ffffffff6130a916565b9050611e66866402540be40063ffffffff61300e16565b6221272160e91b93509150612119565b6001600160a01b038816600090815260036020526040902054925082611ecd5760405162461bcd60e51b81526004018080602001828103825260318152602001806153116031913960400191505060405180910390fd5b600154341015611f0e5760405162461bcd60e51b815260040180806020018281038252603f815260200180615464603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611f595750600881118015611f595750611f57876007198301600a0a63ffffffff61340216565b155b611f945760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611f9e8782613444565b9250611fa984613484565b15611ff1576305f5e100831015611ff15760405162461bcd60e51b815260040180806020018281038252603a81526020018061525a603a913960400191505060405180910390fd5b60088110158061200b575060088110801561200b57508683115b6120465760405162461bcd60e51b81526004018080602001828103825260258152602001806153a36025913960400191505060405180910390fd5b677ce66c50e284000083111561208d5760405162461bcd60e51b81526004018080602001828103825260358152602001806152dc6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050506040513d602081101561210c57600080fd5b505161211757600080fd5b505b6121216150bc565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff1681525090508281604001516000815181106121cf57fe5b6020026020010181815250508781606001516000815181106121ed57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505033816080015160008151811061221f57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d7600361224a846130eb565b61225f866402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156122bd5781810151838201526020016122a5565b50505050905090810190601f1680156122ea5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b33611007146123c25760405162461bcd60e51b815260040180806020018281038252602e8152602001806154a3602e913960400191505060405180910390fd5b60208114612417576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561251f576020820151670de0b6b3a764000081118015906124c657506402540be4008106155b612517576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612795565b61259387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061358a9050565b1561262f57604080516020601f87018190048102820181019092528581526000916125d69188888083850183828082843760009201919091525061367192505050565b905062093a80811115612627576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612795565b61269b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061358a9050565b1561275857604080516020601f87018190048102820181019092528581526000916126de9188888083850183828082843760009201919091525061367192505050565b905068056bc75e2d631000008110156127285760405162461bcd60e51b81526004018080602001828103825260228152602001806152386022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612795565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461286a5760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612928576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146129685760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367692505050565b60085460ff16600214156129ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a77576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612ad0576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b43576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612b33576040519150601f19603f3d011682016040523d82523d6000602084013e612b38565b606091505b505080915050612bd6565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612ba657600080fd5b5087f1158015612bba573d6000803e3d6000fd5b50505050506040513d6020811015612bd157600080fd5b505190505b80612c28576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b60005460ff1615612ce5576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612df357828160ff1681518110612dc757fe5b01602001516001600160f81b03191615612de657600190910190612deb565b612df3565b600101612dac565b5060608160ff166040519080825280601f01601f191660200182016040528015612e24576020820181803683370190505b50905060005b8260ff168160ff161015612e8057838160ff1681518110612e4757fe5b602001015160f81c60f81b828260ff1681518110612e6157fe5b60200101906001600160f81b031916908160001a905350600101612e2a565b5095945050505050565b61100481565b6060612e9a615108565b6000612ea584613774565b9150915080612efb576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f06836138b3565b905063ffffffff811615612f9a576040808401516020808601516001600160a01b03166000908152600290915291822054612f419190613444565b9050612f4b61513d565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff168152509050612f8e81613c19565b955050505050506111e9565b505060408051600081526020810190915291506111e99050565b600082820183811015611c99576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cf5565b60008261305f57506000611c9c565b8282028284828161306c57fe5b0414611c995760405162461bcd60e51b81526004018080602001828103825260218152602001806154436021913960400191505060405180910390fd5b6000611c9983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d97565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613106575050835190915061312890613df1565b8160008151811061313557fe5b602002602001018190525061315683602001516001600160a01b0316613e04565b8160018151811061316357fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156131ae57816020015b60608152602001906001900390816131995790505b50905060005b828110156131fb576131dc866040015182815181106131cf57fe5b6020026020010151613df1565b8282815181106131e857fe5b60209081029190910101526001016131b4565b5061320581613e27565b8360028151811061321257fe5b602002602001018190525060608260405190808252806020026020018201604052801561325357816020015b606081526020019060019003908161323e5790505b50905060005b838110156132a95761328a8760600151828151811061327457fe5b60200260200101516001600160a01b0316613e04565b82828151811061329657fe5b6020908102919091010152600101613259565b506132b381613e27565b846003815181106132c057fe5b602002602001018190525060608360405190808252806020026020018201604052801561330157816020015b60608152602001906001900390816132ec5790505b50905060005b84811015613341576133228860800151828151811061327457fe5b82828151811061332e57fe5b6020908102919091010152600101613307565b5061334b81613e27565b8560048151811061335857fe5b602002602001018190525061337a8760a0015167ffffffffffffffff16613df1565b8560058151811061338757fe5b602002602001018190525061339b85613e27565b979650505050505050565b6133ae615164565b60006133b983613eb1565b91509150806133f95760405162461bcd60e51b81526004018080602001828103825260248152602001806154d16024913960400191505060405180910390fd5b61190b8261407c565b6000611c9983836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250614500565b6000600882111561346d57613466836007198401600a0a63ffffffff61300e16565b9050611c9c565b611c99836008849003600a0a63ffffffff61305016565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156134fa57828160ff16815181106134ce57fe5b01602001516001600160f81b031916156134ed576001909101906134f2565b6134fa565b6001016134b3565b50600760ff82161015613512576000925050506111e9565b816005820360ff168151811061352457fe5b6020910101516001600160f81b031916602d60f81b14613549576000925050506111e9565b816001820360ff168151811061355b57fe5b6020910101516001600160f81b031916604d60f81b14613580576000925050506111e9565b5060019392505050565b6000816040516020018082805190602001908083835b602083106135bf5780518252601f1990920191602091820191016135a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061362d5780518252601f19909201916020918201910161360e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b61367e6150bc565b600061368983614562565b91509150806136c95760405162461bcd60e51b81526004018080602001828103825260248152602001806152946024913960400191505060405180910390fd5b6136d1615164565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b8460400151518110156137525761372f8560400151828151811061372157fe5b6020026020010151836147c6565b8560400151828151811061373f57fe5b6020908102919091010152600101613701565b50608084015160408301526005606083015261376d8261407c565b5050505050565b61377c615108565b6000613786615108565b61378e61519b565b61379f61379a866147ff565b614824565b90506000805b6137ae8361486e565b156138a657806137d0576137c96137c48461488f565b6148dd565b845261389e565b80600114156137fd576137ea6137e58461488f565b614994565b6001600160a01b0316602085015261389e565b806002141561381c576138126137c48461488f565b604085015261389e565b8060031415613844576138316137e58461488f565b6001600160a01b0316606085015261389e565b806004141561386c576138596137e58461488f565b6001600160a01b0316608085015261389e565b8060051415613899576138816137c48461488f565b67ffffffffffffffff1660a08501526001915061389e565b6138a6565b6001016137a5565b5091935090915050915091565b60208101516000906001600160a01b03166139f7578160a0015167ffffffffffffffff164211156138e6575060016111e9565b81604001514710156138fa575060036111e9565b613903826149ae565b61397857606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461395e576040519150601f19603f3d011682016040523d82523d6000602084013e613963565b606091505b50509050806139765750600490506111e9565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006111e9565b8160a0015167ffffffffffffffff16421115613a15575060016111e9565b81516020808401516001600160a01b031660009081526003909152604090205414613a42575060026111e9565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a9257600080fd5b5086fa158015613aa6573d6000803e3d6000fd5b50505050506040513d6020811015613abd57600080fd5b50516040840151909150811015613ad85750600390506111e9565b613ae1836149ae565b613b9857600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b5657600080fd5b5087f1158015613b6a573d6000803e3d6000fd5b50505050506040513d6020811015613b8157600080fd5b5051905080613b965750600591506111e99050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506111e9565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c345750508351909150613c5690613df1565b81600081518110613c6357fe5b6020026020010181905250613c7b8360200151613df1565b81600181518110613c8857fe5b6020026020010181905250613ca983604001516001600160a01b0316613e04565b81600281518110613cb657fe5b6020026020010181905250613cd4836060015163ffffffff16613df1565b81600381518110613ce157fe5b602002602001018190525061109f81613e27565b60008183613d815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d46578181015183820152602001613d2e565b50505050905090810190601f168015613d735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8d57fe5b0495945050505050565b60008184841115613de95760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b505050900390565b6060611c9c613dff83614b1c565b614c02565b60408051600560a21b831860148201526034810190915260609061109f81614c02565b6060815160001415613e4857506040805160008152602081019091526111e9565b606082600081518110613e5757fe5b602002602001015190506000600190505b8351811015613e9857613e8e82858381518110613e8157fe5b6020026020010151614c54565b9150600101613e68565b5061109f613eab825160c060ff16614cd1565b82614c54565b613eb9615164565b6000613ec3615164565b613ecb61519b565b613ed761379a866147ff565b90506000805b613ee68361486e565b156138a65780613f0c57613efc6137e58461488f565b6001600160a01b03168452614074565b8060011415613fad576060613f28613f238561488f565b614dc9565b90508051604051908082528060200260200182016040528015613f55578160200160208202803683370190505b50602086015260005b8151811015613fa657613f83828281518110613f7657fe5b60200260200101516148dd565b86602001518281518110613f9357fe5b6020908102919091010152600101613f5e565b5050614074565b806002141561404f576060613fc4613f238561488f565b90508051604051908082528060200260200182016040528015613ff1578160200160208202803683370190505b50604086015260005b8151811015613fa65761401f82828151811061401257fe5b6020026020010151614994565b8660400151828151811061402f57fe5b6001600160a01b0390921660209283029190910190910152600101613ffa565b8060031415613899576140646137c48461488f565b63ffffffff166060850152600191505b600101613edd565b80516001600160a01b03166142a65760005b8160200151518110156142a0576000826040015182815181106140ad57fe5b60200260200101516001600160a01b0316612710846020015184815181106140d157fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614119576040519150601f19603f3d011682016040523d82523d6000602084013e61411e565b606091505b50509050806141e1577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415d57fe5b60200260200101518560200151858151811061417557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1614297565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061421757fe5b60200260200101518560200151858151811061422f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161408e565b506144fd565b60005b8160200151518110156144fb57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142de57fe5b6020026020010151866020015186815181106142f657fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434d57600080fd5b5087f1158015614361573d6000803e3d6000fd5b50505050506040513d602081101561437857600080fd5b50519050801561443c577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b857fe5b6020026020010151856020015185815181106143d057fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144f2565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061447257fe5b60200260200101518560200151858151811061448a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a9565b505b50565b6000818361454f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b5082848161455957fe5b06949350505050565b61456a6150bc565b60006145746150bc565b61457c61519b565b61458861379a866147ff565b90506000805b6145978361486e565b156138a657806145b4576145ad6137c48461488f565b84526147be565b80600114156145dc576145c96137e58461488f565b6001600160a01b031660208501526147be565b806002141561466b5760606145f3613f238561488f565b90508051604051908082528060200260200182016040528015614620578160200160208202803683370190505b50604086015260005b815181101561466457614641828281518110613f7657fe5b8660400151828151811061465157fe5b6020908102919091010152600101614629565b50506147be565b8060031415614700576060614682613f238561488f565b905080516040519080825280602002602001820160405280156146af578160200160208202803683370190505b50606086015260005b8151811015614664576146d082828151811061401257fe5b866060015182815181106146e057fe5b6001600160a01b03909216602092830291909101909101526001016146b8565b8060041415614795576060614717613f238561488f565b90508051604051908082528060200260200182016040528015614744578160200160208202803683370190505b50608086015260005b81518110156146645761476582828151811061401257fe5b8660800151828151811061477557fe5b6001600160a01b039092166020928302919091019091015260010161474d565b8060051415613899576147aa6137c48461488f565b67ffffffffffffffff1660a0850152600191505b60010161458e565b600060088211156147e857613466836007198401600a0a63ffffffff61305016565b611c99836008849003600a0a63ffffffff61300e16565b6148076151bb565b506040805180820190915281518152602082810190820152919050565b61482c61519b565b61483582614e9a565b61483e57600080fd5b600061484d8360200151614eca565b60208085015160408051808201909152868152920190820152915050919050565b60006148786151bb565b505080518051602091820151919092015191011190565b6148976151bb565b6148a08261486e565b6148a957600080fd5b602082015160006148b982614f2d565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906148f257508151602110155b6148fb57600080fd5b600061490a8360200151614eca565b90508083600001511015614965576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561498b57826020036101000a820491505b50949350505050565b80516000906015146149a557600080fd5b611c9c826148dd565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149e75750600554155b15614a295760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b0316600090815260069091526040902054801580614a575750808360400151105b15614a665760009150506111e9565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614aac9163ffffffff612fb416565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614b6057506018614b84565b6fffffffffffffffffffffffffffffffff198416614b8057506010614b84565b5060005b6020811015614bba57818181518110614b9957fe5b01602001516001600160f81b03191615614bb257614bba565b600101614b84565b60008160200390506060816040519080825280601f01601f191660200182016040528015614bef576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614c345750607f60f81b82600081518110614c2257fe5b01602001516001600160f81b03191611155b15614c405750806111e9565b611c9c614c528351608060ff16614cd1565b835b6060806040519050835180825260208201818101602087015b81831015614c85578051835260209283019201614c6d565b50855184518101855292509050808201602086015b81831015614cb2578051835260209283019201614c9a565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d21576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614d7b5782840160f81b81600081518110614d5d57fe5b60200101906001600160f81b031916908160001a9053509050611c9c565b6060614d8685614b1c565b90508381510160370160f81b82600081518110614d9f57fe5b60200101906001600160f81b031916908160001a905350614dc08282614c54565b95945050505050565b6060614dd482614e9a565b614ddd57600080fd5b6000614de883615060565b9050606081604051908082528060200260200182016040528015614e2657816020015b614e136151bb565b815260200190600190039081614e0b5790505b5090506000614e388560200151614eca565b60208601510190506000805b84811015614e8f57614e5583614f2d565b9150604051806040016040528083815260200184815250848281518110614e7857fe5b602090810291909101015291810191600101614e44565b509195945050505050565b8051600090614eab575060006111e9565b6020820151805160001a9060c0821015613580576000925050506111e9565b8051600090811a6080811015614ee45760009150506111e9565b60b8811080614eff575060c08110801590614eff575060f881105b15614f0e5760019150506111e9565b60c0811015614f225760b5190190506111e9565b60f5190190506111e9565b80516000908190811a6080811015614f485760019150615059565b60b8811015614f5d57607e1981019150615059565b60c0811015614fd757600060b78203600186019550806020036101000a865104915060018101820193505080831015614fd1576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615059565b60f8811015614fec5760be1981019150615059565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615057576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090615071575060006111e9565b600080905060006150858460200151614eca565b602085015185519181019250015b808210156150b3576150a482614f2d565b60019093019290910190615093565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b60405180604001604052806151ae6151bb565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220b559cd4e3125714f2f5ec5e81bc7a26f9ea28156afc15d661cb954c3ea9a53d864736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/planck/types.go b/core/systemcontracts/planck/types.go new file mode 100644 index 0000000000..ac1028047e --- /dev/null +++ b/core/systemcontracts/planck/types.go @@ -0,0 +1,25 @@ +package planck + +import _ "embed" + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/SlashContract + MainnetSlashContract string + //go:embed mainnet/TokenHubContract + MainnetTokenHubContract string + //go:embed mainnet/CrossChainContract + MainnetCrossChainContract string +) + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/SlashContract + ChapelSlashContract string + //go:embed chapel/TokenHubContract + ChapelTokenHubContract string + //go:embed chapel/CrossChainContract + ChapelCrossChainContract string + //go:embed chapel/StakingContract + ChapelStakingContract string +) diff --git a/core/systemcontracts/plato/chapel/SlashContract b/core/systemcontracts/plato/chapel/SlashContract new file mode 100644 index 0000000000..58eb5c021c --- /dev/null +++ b/core/systemcontracts/plato/chapel/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b604051610299919061336a565b60405180910390f35b6102aa6104e2565b6040516102999190612c1b565b6102ca6102c5366004612b51565b6104e8565b6040516102999190612c53565b6102df61054e565b6040516102999190612c48565b6102ff6102fa3660046128ff565b610557565b60405161029993929190613352565b6102aa61031c366004612b21565b61057a565b61033461032f3660046128ff565b6105a1565b604051610299929190613344565b61034a6105f8565b604051610299919061331a565b61034a6105fe565b610367610604565b604051610299919061337b565b6102aa610609565b61038461060f565b604051610299919061330b565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b73660046128ff565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612b51565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc610457366004612a05565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612b51565b610ceb565b6103bc61048d3660046128ff565b610d5c565b6103bc6104a0366004612a6e565b61114d565b61034a611733565b6102aa611738565b6103bc61173e565b6102aa61177a565b610367611780565b6103bc611785565b6102aa611bce565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b90613163565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612d04565b60405162461bcd60e51b815260040161050b90613254565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac6126e6565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612f48565b60005460ff166106685760405162461bcd60e51b815260040161050b90612d04565b61200063f7a251d7600b61067b84611bd4565b60006040518463ffffffff1660e01b815260040161069b93929190613389565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b90613163565b60005460ff166107435760405162461bcd60e51b815260040161050b90612d04565b61074b612709565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca692505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c69161336a565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108039161336a565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612d04565b33611007146108845760405162461bcd60e51b815260040161050b90613020565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611d269050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612ed4565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611d8092505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b9061311e565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611d269050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b9061306e565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611d8092505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d72565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611d269050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b9061328b565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611d8092505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e88565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611d269050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612da7565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611d8592505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b906131ff565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612c66565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b90613163565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612d04565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b906131b2565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612d04565b6003544311610dbe5760405162461bcd60e51b815260040161050b906132d6565b3a15610ddc5760405162461bcd60e51b815260040161050b90612fc3565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612c1b565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906129e5565b610e5a57611146565b610e626126e6565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612c1b565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611bd4565b60006040518463ffffffff1660e01b8152600401610fc793929190613389565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c836020015183604051611065929190613323565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612c1b565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612d04565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612c1b565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906129e5565b6112005760405162461bcd60e51b815260040161050b90612c98565b60075460ff166112225760405162461bcd60e51b815260040161050b90612ccf565b60065461122f5760146006555b438160000151604001516101000111801561125557504381602001516040015161010001115b6112715760405162461bcd60e51b815260040161050b90613226565b80602001516020015181600001516020015114801561129f5750806020015160600151816000015160600151145b156112bc5760405162461bcd60e51b815260040161050b90612f1b565b8051604081015190511080156112db5750602081015160408101519051105b6112f75760405162461bcd60e51b815260040161050b90612e51565b60208101515181515110801561131c5750806000015160400151816020015160400151105b8061134757508051516020820151511080156113475750806020015160400151816000015160400151105b806113615750806020015160400151816000015160400151145b61137d5760405162461bcd60e51b815260040161050b90612d3b565b604080820151905163ea321e4960e01b81526110009163ea321e49916113a69190600401612c53565b60206040518083038186803b1580156113be57600080fd5b505afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f691906129e5565b6114125760405162461bcd60e51b815260040161050b90612ff1565b61142481600001518260400151611dad565b801561143d575061143d81602001518260400151611dad565b6114595760405162461bcd60e51b815260040161050b90612df2565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561149757600080fd5b505afa1580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d39190810190612922565b9150915060005b8151811015611610576115048282815181106114f257fe5b60200260200101518560400151611f85565b15611608576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f09061153c9033908590600401612c2f565b602060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612b39565b506110006001600160a01b03166335409f7f8584815181106115ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016115d09190612c1b565b600060405180830381600087803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b5050505050611610565b6001016114da565b50600061162284604001516000611fe9565b90506120006001600160a01b031663f7a251d7600b6116448760400151612005565b60006040518463ffffffff1660e01b815260040161166493929190613389565b600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b611701573d8080156116bd576040519150601f19603f3d011682016040523d82523d6000602084013e6116c2565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f3628826040516116f39190612c53565b60405180910390a25061172d565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156117615760405162461bcd60e51b815260040161050b906130b0565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146117a65760405162461bcd60e51b815260040161050b90612f48565b60005460ff166117c85760405162461bcd60e51b815260040161050b90612d04565b6001546117d457611bcc565b600154600090600019015b808211611ba0576000805b82841015611903576117fa6126e6565b600260006001878154811061180b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118ed5760046005548161187857fe5b0481602001510381602001818152505080600260006001888154811061189a57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff19169115159190911790556118f7565b6001925050611903565b508360010193506117ea565b828411611a9a576119126126e6565b600260006001868154811061192357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a0b5760046005548161199057fe5b048160200151038160200181815250508060026000600187815481106119b257fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a9a9050565b6002600060018681548110611a1c57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611a6057fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a8d5750611a9a565b5060001990920191611903565b818015611aa45750805b15611b83576002600060018681548110611aba57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611b0157fe5b600091825260209091200154600180546001600160a01b039092169186908110611b2757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611b6057fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b8f575050611ba0565b5050600190910190600019016117df565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611bef579050509050611c18836001600160a01b0316612040565b81600081518110611c2557fe5b6020026020010181905250611c3943612063565b81600181518110611c4657fe5b6020908102919091010152611c5b6061612063565b81600281518110611c6857fe5b6020026020010181905250611c7c42612063565b81600381518110611c8957fe5b6020026020010181905250611c9d81612076565b9150505b919050565b611cae612709565b6000611cb8612709565b611cc061271b565b611cd1611ccc86612100565b612125565b90506000805b611ce08361216f565b15611d195780611d0c57611cfb611cf684612190565b6121de565b63ffffffff16845260019150611d11565b611d19565b600101611cd7565b5091935090915050915091565b600081604051602001611d399190612bff565b6040516020818303038152906040528051906020012083604051602001611d609190612bff565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d9f576001915081611da5565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611dc9575050604080516020808252818301909252919250606091908082018180368337019050509050611e0e8560000151612063565b82600081518110611e1b57fe5b6020026020010181905250611e366020866020015183612260565b611e3f81612270565b82600181518110611e4c57fe5b6020026020010181905250611e648560400151612063565b82600281518110611e7157fe5b6020026020010181905250611e8c6020866060015183612260565b611e9581612270565b82600381518110611ea257fe5b6020026020010181905250611ec86020611ebb84612076565b8051906020012083612260565b6040805160b080825260e08201909252606091602082018180368337019050509050611ef88183600060206122c6565b611f0a818760800151602060606122c6565b611f188186608060306122c6565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611f5557600080fd5b506001611f63826000612319565b60ff1614611f78576000945050505050611d7a565b5060019695505050505050565b815181516000916001918114808314611fa15760009250611fdf565b600160208701838101602088015b600284838510011415611fda578051835114611fce5760009650600093505b60209283019201611faf565b505050505b5090949350505050565b60008160200183511015611ffc57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612020579050509050611c1883612270565b60408051600560a21b8318601482015260348101909152606090611c9d81612270565b6060611d7a61207183612335565b612270565b60608151600014156120975750604080516000815260208101909152611ca1565b6060826000815181106120a657fe5b602002602001015190506000600190505b83518110156120e7576120dd828583815181106120d057fe5b602002602001015161241b565b91506001016120b7565b50611c9d6120fa825160c060ff16612498565b8261241b565b61210861273b565b506040805180820190915281518152602082810190820152919050565b61212d61271b565b6121368261256a565b61213f57600080fd5b600061214e83602001516125a4565b60208085015160408051808201909152868152920190820152915050919050565b600061217961273b565b505080518051602091820151919092015191011190565b61219861273b565b6121a18261216f565b6121aa57600080fd5b602082015160006121ba82612607565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906121f357508151602110155b6121fc57600080fd5b600061220b83602001516125a4565b905080836000015110156122315760405162461bcd60e51b815260040161050b906130e7565b82516020808501518301805192849003929183101561225757826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122a25750607f60f81b8260008151811061229057fe5b01602001516001600160f81b03191611155b156122ae575080611ca1565b611d7a6122c08351608060ff16612498565b8361241b565b60005b818110156106c9578381815181106122dd57fe5b602001015160f81c60f81b8584806001019550815181106122fa57fe5b60200101906001600160f81b031916908160001a9053506001016122c9565b6000816001018351101561232c57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166123795750601861239d565b6fffffffffffffffffffffffffffffffff1984166123995750601061239d565b5060005b60208110156123d3578181815181106123b257fe5b01602001516001600160f81b031916156123cb576123d3565b60010161239d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612408576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561244c578051835260209283019201612434565b50855184518101855292509050808201602086015b81831015612479578051835260209283019201612461565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124c25760405162461bcd60e51b815260040161050b90612e29565b6040805160018082528183019092526060916020820181803683370190505090506037841161251c5782840160f81b816000815181106124fe57fe5b60200101906001600160f81b031916908160001a9053509050611d7a565b606061252785612335565b90508381510160370160f81b8260008151811061254057fe5b60200101906001600160f81b031916908160001a905350612561828261241b565b95945050505050565b805160009061257b57506000611ca1565b6020820151805160001a9060c082101561259a57600092505050611ca1565b5060019392505050565b8051600090811a60808110156125be576000915050611ca1565b60b88110806125d9575060c081108015906125d9575060f881105b156125e8576001915050611ca1565b60c08110156125fc5760b519019050611ca1565b60f519019050611ca1565b80516000908190811a608081101561262257600191506126df565b60b881101561263757607e19810191506126df565b60c081101561268857600060b78203600186019550806020036101000a8651049150600181018201935050808310156126825760405162461bcd60e51b815260040161050b90612f98565b506126df565b60f881101561269d5760be19810191506126df565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611da55760405162461bcd60e51b815260040161050b90612f98565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061272e61273b565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612765578081fd5b8151612778612773826133dc565b6133b5565b818152915060208083019084810160005b848110156127ee578151870188603f8201126127a457600080fd5b838101516127b4612773826133fc565b81815260408b818486010111156127ca57600080fd5b6127d983888401838701613420565b50865250509282019290820190600101612789565b505050505092915050565b60008083601f84011261280a578182fd5b50813567ffffffffffffffff811115612821578182fd5b60208301915083602082850101111561283957600080fd5b9250929050565b600082601f830112612850578081fd5b813561285e612773826133fc565b915080825283602082850101111561287557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561289f578081fd5b6128a960a06133b5565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156128e757600080fd5b6128f384828501612840565b60808301525092915050565b600060208284031215612910578081fd5b813561291b8161344c565b9392505050565b60008060408385031215612934578081fd5b825167ffffffffffffffff8082111561294b578283fd5b81850186601f82011261295c578384fd5b8051925061296c612773846133dc565b80848252602080830192508084018a82838902870101111561298c578788fd5b8794505b868510156129b75780516129a38161344c565b845260019490940193928101928101612990565b5088015190965093505050808211156129ce578283fd5b506129db85828601612755565b9150509250929050565b6000602082840312156129f6578081fd5b8151801515811461291b578182fd5b60008060008060408587031215612a1a578182fd5b843567ffffffffffffffff80821115612a31578384fd5b612a3d888389016127f9565b90965094506020870135915080821115612a55578384fd5b50612a62878288016127f9565b95989497509550505050565b600060208284031215612a7f578081fd5b813567ffffffffffffffff80821115612a96578283fd5b81840160608187031215612aa8578384fd5b612ab260606133b5565b9250803582811115612ac2578485fd5b612ace8782840161288e565b845250602081013582811115612ae2578485fd5b612aee8782840161288e565b602085015250604081013582811115612b05578485fd5b612b1187828401612840565b6040850152509195945050505050565b600060208284031215612b32578081fd5b5035919050565b600060208284031215612b4a578081fd5b5051919050565b600080600060408486031215612b65578283fd5b833560ff81168114612b75578384fd5b9250602084013567ffffffffffffffff811115612b90578283fd5b612b9c868287016127f9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612beb816020860160208601613420565b601f01601f19169290920160200192915050565b60008251612c11818460208701613420565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261291b6020830184612bd3565b600060408252612c7a604083018688612ba9565b8281036020840152612c8d818587612ba9565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008382526040602083015261333c6040830184612bd3565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526133a56060830185612bd3565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156133d457600080fd5b604052919050565b600067ffffffffffffffff8211156133f2578081fd5b5060209081020190565b600067ffffffffffffffff821115613412578081fd5b50601f01601f191660200190565b60005b8381101561343b578181015183820152602001613423565b8381111561172d5750506000910152565b6001600160a01b038116811461346157600080fd5b5056fea2646970667358221220c3310788cc2517fb88ccc86019bc9b743e07923bbb3700f681487f4aa3af63b964736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/plato/chapel/ValidatorContract b/core/systemcontracts/plato/chapel/ValidatorContract new file mode 100644 index 0000000000..ad5f5b1715 --- /dev/null +++ b/core/systemcontracts/plato/chapel/ValidatorContract @@ -0,0 +1 @@ +60806040526004361061048d5760003560e01c806388b32f1111610255578063c81b166211610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610bd7578063f9a2bbc714610bec578063fc3e590814610c01578063fccc281314610c16578063fd4ad81f14610c2b578063fd6a687914610c5a57610494565b8063e40716a114610b5a578063ea321e4914610b6f578063eb57e20214610b8f578063eda5868c14610baf578063f340fa0114610bc457610494565b8063d86222d511610108578063d86222d514610af1578063daacdb6614610b06578063dc927faf14610b1b578063e086c7b114610b30578063e1c7392a14610b4557610494565b8063c81b166214610a92578063c8509d81146108a0578063ce910b0c14610aa7578063d04aa99614610ac7578063d68fb56a14610adc57610494565b8063a78abc16116101d2578063aef198a911610196578063aef198a914610a31578063b7ab4db514610a46578063b8cf4ef114610a68578063bf9f499514610650578063c6d3394514610a7d57610494565b8063a78abc16146109b2578063aaf5eb68146109c7578063ab51bb96146109dc578063ac431751146109f1578063ad3c9da614610a1157610494565b80639dc09262116102195780639dc09262146109495780639fe0f8161461095e578063a0dc275814610973578063a1a11bf514610988578063a5422d5c1461099d57610494565b806388b32f11146108d55780638b5ad0c9146108ea5780638d19a410146108ff5780639369d7de1461091f57806396713da91461093457610494565b80635192c82c1161037c5780636e47b482116102f95780637942fd05116102bd5780637942fd05146108615780637a84ca2a1461087657806381650b621461088b578063831d65d1146108a0578063853230aa1461084c57806386249882146108c057610494565b80636e47b482146107f857806370fd5bad1461080d578063718a8aa81461082257806375d47a0a1461083757806378dfed4a1461084c57610494565b80635667515a116103405780635667515a146107675780635d77156c1461077c57806360eba4fe1461079157806362b72cf5146107b15780636969a25c146107c657610494565b80635192c82c146106e857806351e80672146106fd578063549b03f21461071257806355614fcc14610727578063565c56b31461074757610494565b80633365af3a1161040a57806343756e5c116103ce57806343756e5c1461067257806345cf9daf14610687578063493279b11461069c5780634bf6c882146106be5780634df6e0c3146106d357610494565b80633365af3a146105d857806335409f7f146105f85780633b071dcc146106185780633de0f0d81461063b5780633dffc3871461065057610494565b8063152ad3b811610451578063152ad3b81461054c5780631ff180691461056e578063219f22d514610583578063300c356714610598578063321d398a146105b857610494565b806304c4fec61461049957806307a56847146104b05780630bee7a67146104db5780630e2374a5146104fd5780631182b8751461051f57610494565b3661049457005b600080fd5b3480156104a557600080fd5b506104ae610c6f565b005b3480156104bc57600080fd5b506104c5610ce1565b6040516104d29190617594565b60405180910390f35b3480156104e757600080fd5b506104f0610ce7565b6040516104d291906175be565b34801561050957600080fd5b50610512610cec565b6040516104d2919061699b565b34801561052b57600080fd5b5061053f61053a366004616881565b610cf2565b6040516104d29190616b12565b34801561055857600080fd5b50610561610f2a565b6040516104d29190616b07565b34801561057a57600080fd5b506104c5610f33565b34801561058f57600080fd5b506104f0610f39565b3480156105a457600080fd5b506104ae6105b336600461670b565b610f3e565b3480156105c457600080fd5b506105616105d336600461682e565b6112c2565b3480156105e457600080fd5b506105616105f336600461682e565b611391565b34801561060457600080fd5b506104ae6106133660046166e4565b611442565b34801561062457600080fd5b5061062d61159b565b6040516104d2929190616a1d565b34801561064757600080fd5b506104c5611877565b34801561065c57600080fd5b5061066561187d565b6040516104d291906175cf565b34801561067e57600080fd5b50610512611882565b34801561069357600080fd5b506104c5611888565b3480156106a857600080fd5b506106b161188e565b6040516104d29190617585565b3480156106ca57600080fd5b50610665611893565b3480156106df57600080fd5b5061062d611898565b3480156106f457600080fd5b506104c5611a16565b34801561070957600080fd5b50610512611a1c565b34801561071e57600080fd5b506104c5611a22565b34801561073357600080fd5b506105616107423660046166e4565b611a28565b34801561075357600080fd5b506104c56107623660046166e4565b611a5d565b34801561077357600080fd5b50610665611aae565b34801561078857600080fd5b506104f0611ab3565b34801561079d57600080fd5b5061053f6107ac36600461682e565b611ab8565b3480156107bd57600080fd5b506104c5611b5e565b3480156107d257600080fd5b506107e66107e136600461682e565b611b64565b6040516104d2969594939291906169c8565b34801561080457600080fd5b50610512611bc8565b34801561081957600080fd5b50610665611bce565b34801561082e57600080fd5b50610665611bd3565b34801561084357600080fd5b50610512611bd8565b34801561085857600080fd5b506104c5611bde565b34801561086d57600080fd5b50610665611be4565b34801561088257600080fd5b506104c5611be9565b34801561089757600080fd5b506104f0611bef565b3480156108ac57600080fd5b506104ae6108bb366004616881565b611bf4565b3480156108cc57600080fd5b506104c5611c55565b3480156108e157600080fd5b506104c5611c5b565b3480156108f657600080fd5b506104c5611c61565b34801561090b57600080fd5b506104c561091a3660046166e4565b611c67565b34801561092b57600080fd5b506104ae611ca7565b34801561094057600080fd5b50610665611dbb565b34801561095557600080fd5b50610512611dc0565b34801561096a57600080fd5b506104c5611dc6565b34801561097f57600080fd5b506104c5611dcb565b34801561099457600080fd5b50610512611dd0565b3480156109a957600080fd5b5061053f611dd6565b3480156109be57600080fd5b50610561611df5565b3480156109d357600080fd5b506104c5611dfe565b3480156109e857600080fd5b506104f0611aae565b3480156109fd57600080fd5b506104ae610a0c3660046167d2565b611e07565b348015610a1d57600080fd5b506104c5610a2c3660046166e4565b6126b3565b348015610a3d57600080fd5b506104c56126c5565b348015610a5257600080fd5b50610a5b6126d2565b6040516104d29190616a0a565b348015610a7457600080fd5b506104c56127be565b348015610a8957600080fd5b506104c5611bce565b348015610a9e57600080fd5b506105126127c3565b348015610ab357600080fd5b5061053f610ac236600461682e565b6127c9565b348015610ad357600080fd5b506104c56127d6565b348015610ae857600080fd5b506104c56127db565b348015610afd57600080fd5b506104c561281a565b348015610b1257600080fd5b506104c5612826565b348015610b2757600080fd5b5061051261282c565b348015610b3c57600080fd5b506104c5612832565b348015610b5157600080fd5b506104ae612837565b348015610b6657600080fd5b506104c56129e6565b348015610b7b57600080fd5b50610561610b8a366004616793565b6129ec565b348015610b9b57600080fd5b506104ae610baa3660046166e4565b612b72565b348015610bbb57600080fd5b506104f0612c7a565b6104ae610bd23660046166e4565b612c7f565b348015610be357600080fd5b506104c5612f07565b348015610bf857600080fd5b50610512612f0d565b348015610c0d57600080fd5b50610665611dc6565b348015610c2257600080fd5b50610512612f13565b348015610c3757600080fd5b50610c4b610c4636600461682e565b612f19565b6040516104d29392919061759d565b348015610c6657600080fd5b50610512612fdb565b6000610c7a33611c67565b9050600b8181548110610c8957fe5b600091825260209091206001601690920201015460ff16610cc55760405162461bcd60e51b8152600401610cbc9061723d565b60405180910390fd5b6000610ccf6127db565b9050610cdc338383612fe1565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d175760405162461bcd60e51b8152600401610cbc90616cd1565b3361200014610d385760405162461bcd60e51b8152600401610cbc9061741c565b600b54610df657610d476163d0565b60015460005b81811015610df257600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794610dce936000805160206178128339815191529091019201906163ff565b506060820151610de49060038301906013616479565b505050806001019050610d4d565b5050505b610dfe6164a6565b6000610e3f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131cd92505050565b9150915080610e5b57610e526064613389565b92505050610f23565b815160009060ff16610e8057610e79836020015184604001516133ea565b9050610eef565b825160ff1660011415610eeb57826020015151600114610ec5576000805160206177d2833981519152604051610eb590617124565b60405180910390a1506067610ee6565b610e798360200151600081518110610ed957fe5b602002602001015161403e565b610eef565b5060655b63ffffffff8116610f145750506040805160008152602081019091529150610f239050565b610f1d81613389565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f5d5760405162461bcd60e51b8152600401610cbc9061746b565b6010544311610f7e5760405162461bcd60e51b8152600401610cbc90616e2d565b60005460ff16610fa05760405162461bcd60e51b8152600401610cbc90616cd1565b600f54610fb8576032600f55611002316011556112b8565b60006110023168056bc75e2d63100000811115610fe757610fe081606463ffffffff6141b516565b9150611030565b60115481111561102957610fe0606461101d600f54611011601154866141f790919063ffffffff16565b9063ffffffff61423916565b9063ffffffff6141b516565b50506112b8565b6040516309a99b4f60e41b815261100290639a99b4f09061105790309086906004016169af565b602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190616846565b611002316011559150816110be5750506112b8565b6000805b848110156110ec578585828181106110d657fe5b90506020020135820191508060010190506110c2565b50806110fa575050506112b8565b6000806000805b898110156112b0578489898381811061111657fe5b9050602002013588028161112657fe5b0493508a8a8281811061113557fe5b905060200201602081019061114a91906166e4565b6001600160a01b0381166000908152600460205260409020549093509150811561126657600060018084038154811061117f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111ec57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111df9190617594565b60405180910390a2611260565b6003546111ff908663ffffffff61427316565b6003908155810154611217908663ffffffff61427316565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611257908890617594565b60405180910390a25b506112a8565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161129f9190617594565b60405180910390a25b600101611101565b505050505050505b5050436010555050565b60015460009082106112d65750600061138c565b60006001600160a01b0316600183815481106112ee57fe5b60009182526020909120600490910201546001600160a01b0316148061131e5750600854158061131e5750600a54155b8061132d575060085460095410155b8061133e575061133c82611391565b155b8061136757506000600b838154811061135357fe5b906000526020600020906016020160000154115b8061137b575060016113776126d2565b5111155b156113885750600061138c565b5060015b919050565b60015460009082106113a55750600061138c565b600b5482106113e257600182815481106113bb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061138c565b600182815481106113ef57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561143c5750600b828154811061142357fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114635760405162461bcd60e51b8152600401610cbc9061753c565b600b54611521576114726163d0565b60015460005b8181101561151d57600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff19169115159190911790556040860151805187946114f9936000805160206178128339815191529091019201906163ff565b50606082015161150f9060038301906013616479565b505050806001019050611478565b5050505b6001600160a01b038116600090815260046020526040902054806115455750611598565b6001810390506000600b828154811061155a57fe5b600091825260209091206001601690920201015460ff16905061157d8383614298565b80156115865750805b15610cdc576009805460001901905550505b50565b60015460609081906000805b828110156115ee57600181815481106115bc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115e6576001909101905b6001016115a7565b5060608160405190808252806020026020018201604052801561161b578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561165457816020015b606081526020019060019003908161163f5790505b50600b54600094509091508414156117cf5760005b848110156117c9576001818154811061167e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117c157600181815481106116ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061170657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b50505050508285815181106117af57fe5b60209081029190910101526001909301925b600101611669565b5061186b565b60005b8481101561186957600181815481106117e757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611861576001818154811061181757fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061184257fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117d2565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c546060918291806118ac575060155b60606118b66126d2565b905060606118c38261464b565b9050828251116118da579094509250611873915050565b838383510310156118ec578282510393505b83156119225760c8430461190883838388880360008a8a6147b9565b6119208383838888038989038a8b8b8b5103016147b9565b505b60608360405190808252806020026020018201604052801561194e578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561198757816020015b60608152602001906001900390816119725790505b50905060005b85811015611a08578481815181106119a157fe5b60200260200101518382815181106119b557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119e157fe5b60200260200101518282815181106119f557fe5b602090810291909101015260010161198d565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b03811660009081526004602052604081205480611a5057600091505061138c565b60001901610f2381611391565b6001600160a01b03811660009081526004602052604081205480611a8557600091505061138c565b600180820381548110611a9457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60128181548110611ac557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b565780601f10611b2b57610100808354040283529160200191611b56565b820191906000526020600020905b815481529060010190602001808311611b3957829003601f168201915b505050505081565b60105481565b60018181548110611b7157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c155760405162461bcd60e51b8152600401610cbc9061741c565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c48939291906175dd565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c9d5760405162461bcd60e51b8152600401610cbc906173a4565b6000190192915050565b600b54611d6557611cb66163d0565b60015460005b81811015611d6157600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794611d3d936000805160206178128339815191529091019201906163ff565b506060820151611d539060038301906013616479565b505050806001019050611cbc565b5050505b600854611d725760036008555b600a54611d7f576002600a555b6000611d8a33611c67565b9050611d95816112c2565b611db15760405162461bcd60e51b8152600401610cbc906170e1565b6115983382614910565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016176276101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e295760405162461bcd60e51b8152600401610cbc90616cd1565b3361100714611e4a5760405162461bcd60e51b8152600401610cbc906171aa565b611eb484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149a89050565b15611f515760208114611ed95760405162461bcd60e51b8152600401610cbc9061735e565b604080516020601f8401819004810282018101909252828152600091611f1791858580838501838280828437600092019190915250614a0192505050565b905060648110158015611f2d5750620186a08111155b611f495760405162461bcd60e51b8152600401610cbc90616f8a565b600255612670565b611fb184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149a89050565b1561204d5760208114611fd65760405162461bcd60e51b8152600401610cbc90616b57565b604080516020601f840181900481028201810190925282815260009161201491858580838501838280828437600092019190915250614a0192505050565b90506127108111156120385760405162461bcd60e51b8152600401610cbc90616e6f565b6006556007805460ff19166001179055612670565b6120b784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149a89050565b1561215157602081146120dc5760405162461bcd60e51b8152600401610cbc90616b8e565b604080516020601f840181900481028201810190925282815260009161211a91858580838501838280828437600092019190915250614a0192505050565b600c5490915080612129575060155b8082106121485760405162461bcd60e51b8152600401610cbc90616ee2565b50600855612670565b6121ba84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149a89050565b1561225357602081146121df5760405162461bcd60e51b8152600401610cbc90616c57565b604080516020601f840181900481028201810190925282815260009161221d91858580838501838280828437600092019190915250614a0192505050565b905060008111801561222f5750600a81105b61224b5760405162461bcd60e51b8152600401610cbc906174b8565b600a55612670565b6122c784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149a89050565b1561235657602081146122ec5760405162461bcd60e51b8152600401610cbc90616c0b565b604080516020601f840181900481028201810190925282815260009161232a91858580838501838280828437600092019190915250614a0192505050565b9050600d5481111561234e5760405162461bcd60e51b8152600401610cbc90617000565b600e55612670565b6123bf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149a89050565b1561244157602081146123e45760405162461bcd60e51b8152600401610cbc906171f8565b604080516020601f840181900481028201810190925282815260009161242291858580838501838280828437600092019190915250614a0192505050565b600d819055600e5490915081101561243b57600d54600e555b50612670565b6124a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149a89050565b1561255357602081146124ca5760405162461bcd60e51b8152600401610cbc90616c9c565b604080516020601f840181900481028201810190925282815260009161250891858580838501838280828437600092019190915250614a0192505050565b90506000811161252a5760405162461bcd60e51b8152600401610cbc90616d3f565b602981111561254b5760405162461bcd60e51b8152600401610cbc90616d87565b600c55612670565b6125bd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506149a89050565b1561265857602081146125e25760405162461bcd60e51b8152600401610cbc906172e1565b604080516020601f840181900481028201810190925282815260009161262091858580838501838280828437600092019190915250614a0192505050565b905060018110158015612634575060648111155b6126505760405162461bcd60e51b8152600401610cbc9061706f565b600f55612670565b60405162461bcd60e51b8152600401610cbc90617515565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516126a59493929190616b25565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612701576126ed81611391565b156126f9578160010191505b6001016126dc565b5060608160405190808252806020026020018201604052801561272e578160200160208202803683370190505b5090506000915060005b838110156127b55761274981611391565b156127ad576001818154811061275b57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061278657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612738565b50925050505b90565b601581565b61100281565b60138181548110611ac557fe5b603281565b60006127e56126d2565b519050600080600c54116127fa5760156127fe565b600c545b90508082111561280c578091505b8161281657600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561285a5760405162461bcd60e51b8152600401610cbc906172aa565b6128626164a6565b6000612888604051806101e001604052806101ab81526020016176276101ab91396131cd565b91509150806128a95760405162461bcd60e51b8152600401610cbc906173db565b60005b8260200151518110156129ce576001836020015182815181106128cb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106129a157fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016128ac565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612af557612add85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a4557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b820191906000526020600020905b815481529060010190602001808311612ab657829003601f168201915b5050505050614a06565b15612aed5760019250505061143c565b6001016129f4565b5060125460005b81811015612b6657612b4d86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a4557fe5b15612b5e576001935050505061143c565b600101612afc565b50600095945050505050565b3361100114612b935760405162461bcd60e51b8152600401610cbc9061753c565b600b54612c5157612ba26163d0565b60015460005b81811015612c4d57600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794612c29936000805160206178128339815191529091019201906163ff565b506060820151612c3f9060038301906013616479565b505050806001019050612ba8565b5050505b6000612c5c82614a6a565b9050612c67816112c2565b15612c7657612c768282614910565b5050565b606581565b334114612c9e5760405162461bcd60e51b8152600401610cbc9061746b565b60005460ff16612cc05760405162461bcd60e51b8152600401610cbc90616cd1565b60003411612ce05760405162461bcd60e51b8152600401610cbc90616fd1565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612d1057506006545b600083118015612d205750600081115b15612dc1576000612d3d61271061101d868563ffffffff61423916565b90508015612dbf5760405161dead9082156108fc029083906000818181858888f19350505050158015612d74573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612da49190617594565b60405180910390a1612dbc848263ffffffff6141f716565b93505b505b8115612ebf576000600180840381548110612dd857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612e4557846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612e389190617594565b60405180910390a2612eb9565b600354612e58908563ffffffff61427316565b6003908155810154612e70908563ffffffff61427316565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612eb0908790617594565b60405180910390a25b50612f01565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612ef89190617594565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612f2657fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612fd15780601f10612fa657610100808354040283529160200191612fd1565b820191906000526020600020905b815481529060010190602001808311612fb457829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612ff2575081155b80612ffd5750600954155b1561300a57506000610f23565b60096000815460019003919050819055506000613055600a5461101d8561101d600b898154811061303757fe5b6000918252602090912060169091020154439063ffffffff6141f716565b90506000600b858154811061306657fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b1580156130cb57600080fd5b505afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613103919061685e565b915091506000935080831061317d5761311c8787614298565b506040516305bfb49960e41b815261100190635bfb499090613142908a9060040161699b565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b505050506001935061318f565b81831061318f5761318d87614a6a565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b6131d56164a6565b60006131df6164a6565b6131e76164ca565b6131f86131f386614c0d565b614c32565b90506000805b61320783614c7c565b1561337b578061322c5761322261321d84614c9d565b614ceb565b60ff168452613373565b806001141561336e57606061324861324385614c9d565b614d6b565b9050805160405190808252806020026020018201604052801561328557816020015b6132726164ea565b81526020019060019003908161326a5790505b50856020018190525080516040519080825280602002602001820160405280156132c357816020015b60608152602001906001900390816132ae5790505b50604086015260005b8151811015613363576132dd6164ea565b606060006132fd8585815181106132f057fe5b6020026020010151614e3c565b9250925092508061331d578860009a509a50505050505050505050613384565b828960200151858151811061332e57fe5b6020026020010181905250818960400151858151811061334a57fe5b60200260200101819052505050508060010190506132cc565b506001925050613373565b61337b565b6001016131fe565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816133a35790505090506133c98363ffffffff16614f56565b816000815181106133d657fe5b6020026020010181905250610f2381614f69565b6000602983511115613421576000805160206177d283398151915260405161341190616de4565b60405180910390a150606661143c565b60005b83518110156134bf5760005b818110156134b65784818151811061344457fe5b6020026020010151600001516001600160a01b031685838151811061346557fe5b6020026020010151600001516001600160a01b031614156134ae576000805160206177d283398151915260405161349b90616f3f565b60405180910390a160669250505061143c565b600101613430565b50600101613424565b506060806134cd8585614ff3565b60015491935091506000908190815b818110156135525767016345785d8a0000600182815481106134fa57fe5b9060005260206000209060040201600301541061351c5783600101935061354a565b60006001828154811061352b57fe5b906000526020600020906004020160030154111561354a578260010192505b6001016134dc565b5060608360405190808252806020026020018201604052801561357f578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156135ae578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156135dd578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561360c578160200160208202803683370190505b509050600060608760405190808252806020026020018201604052801561363d578160200160208202803683370190505b50905060608860405190808252806020026020018201604052801561366c578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190616846565b905067016345785d8a0000811115613737576000805160206177d283398151915260405161371990617269565b60405180910390a160689d505050505050505050505050505061143c565b60005b898110156139a85767016345785d8a00006001828154811061375857fe5b906000526020600020906004020160030154106138dd576001818154811061377c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106137ad57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106137e257fe5b906000526020600020906004020160030154816137fb57fe5b066001838154811061380957fe5b90600052602060002090600402016003015403905061383183826141f790919063ffffffff16565b898e8151811061383d57fe5b6020026020010181815250506001828154811061385657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061388757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106138b457fe5b60209081029190910101526138cf868263ffffffff61427316565b95508c6001019c50506139a0565b6000600182815481106138ec57fe5b90600052602060002090600402016003015411156139a0576001818154811061391157fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061394257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061396f57fe5b906000526020600020906004020160030154838c8151811061398d57fe5b6020026020010181815250508a6001019a505b60010161373a565b5060008415613c1e576002546040516303702b2960e51b815261100491636e0565209188916139e2918e918e918d91420190600401616a8d565b6020604051808303818588803b1580156139fb57600080fd5b505af193505050508015613a2c575060408051601f3d908101601f19168201909252613a2991810190616773565b60015b613ba3576040516000815260443d1015613a4857506000613ae3565b60046000803e60005160e01c6308c379a08114613a69576000915050613ae3565b60043d036004833e81513d60248201116001600160401b0382111715613a9457600092505050613ae3565b80830180516001600160401b03811115613ab5576000945050505050613ae3565b8060208301013d8601811115613ad357600095505050505050613ae3565b601f01601f191660405250925050505b80613aee5750613b30565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613b229190616b12565b60405180910390a250613b9e565b3d808015613b5a576040519150601f19603f3d011682016040523d82523d6000602084013e613b5f565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613b949190616b12565b60405180910390a2505b613c1e565b8015613be5577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613bd89190617594565b60405180910390a1613c1c565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613c1390616bd4565b60405180910390a25b505b8015613dd45760005b8751811015613dd2576000888281518110613c3e57fe5b60200260200101519050600060018281548110613c5757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613c8857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613d445760018281548110613cc957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613d1857fe5b906000526020600020906004020160030154604051613d379190617594565b60405180910390a2613dc8565b60018281548110613d5157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613da057fe5b906000526020600020906004020160030154604051613dbf9190617594565b60405180910390a25b5050600101613c27565b505b835115613f1e5760005b8451811015613f1c576000858281518110613df557fe5b60200260200101516001600160a01b03166108fc868481518110613e1557fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613eab57858281518110613e4b57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613e8957fe5b6020026020010151604051613e9e9190617594565b60405180910390a2613f13565b858281518110613eb757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613ef557fe5b6020026020010151604051613f0a9190617594565b60405180910390a25b50600101613dde565b505b5050505050505050505050506000471115613f9a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613f629190617594565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613f98573d6000803e3d6000fd5b505b60006003819055600555815115613fb557613fb5828261522c565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ff257600080fd5b505af1158015614006573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b031660009081526004602052604081205480158061408f575060018082038154811061406f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156140d55782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061138c565b60015460055460001982011180159061412b5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061138c565b60058054600190810190915580548190600019860190811061414957fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159e6565b6000610f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615a1d565b6000826142485750600061143c565b8282028284828161425557fe5b0414610f235760405162461bcd60e51b8152600401610cbc90617169565b600082820183811015610f235760405162461bcd60e51b8152600401610cbc90616d08565b600080600183815481106142a857fe5b906000526020600020906004020160030154905060006001808054905003905060016142d26126d2565b5111614307576000600185815481106142e757fe5b90600052602060002090600402016003018190555060009250505061143c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143409190617594565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561452d576001816001018154811061438157fe5b90600052602060002090600402016001828154811061439c57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061445d57fe5b9060005260206000209060160201600b828154811061447857fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546144cf93838601939082161561010002600019019091160461651f565b506144e260038281019084016013616594565b509050508060010160046000600184815481106144fb57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614363565b50600180548061453957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061458c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906145be60028301826165be565b6145cc600383016000616602565b5050905560008183816145db57fe5b049050801561463f5760015460005b8181101561463c57826001828154811061460057fe5b906000526020600020906004020160030154016001828154811061462057fe5b60009182526020909120600360049092020101556001016145ea565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561468a57816020015b60608152602001906001900390816146755790505b50600b5490915083146146a157925061138c915050565b60005b828110156147b057600b6001600460008985815181106146c057fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106146f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561478c5780601f106147615761010080835404028352916020019161478c565b820191906000526020600020905b81548152906001019060200180831161476f57829003601f168201915b505050505082828151811061479d57fe5b60209081029190910101526001016146a4565b50949350505050565b60005b8281101561490657600082878388016040516020016147dc92919061698d565b6040516020818303038152906040528051906020012060001c816147fc57fe5b069050808501828701146148fd576000898388018151811061481a57fe5b602002602001015190506060898489018151811061483457fe5b602002602001015190508a8388018151811061484c57fe5b60200260200101518b858a018151811061486257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061489157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106148bf57fe5b60200260200101518a858a01815181106148d557fe5b6020026020010181905250808a848901815181106148ef57fe5b602002602001018190525050505b506001016147bc565b5050505050505050565b600980546001908101909155600b80548390811061492a57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061496057fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016149bb9190616971565b60405160208183030381529060405280519060200120836040516020016149e29190616971565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a225760009250614a60565b600160208701838101602088015b600284838510011415614a5b578051835114614a4f5760009650600093505b60209283019201614a30565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614a935750600019905061138c565b600181039050600060018281548110614aa857fe5b9060005260206000209060040201600301549050600060018381548110614acb57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b24908590617594565b60405180910390a280614b3c5782935050505061138c565b6000818381614b4757fe5b0490508015614c035760005b84811015614ba5578160018281548110614b6957fe5b9060005260206000209060040201600301540160018281548110614b8957fe5b6000918252602090912060036004909202010155600101614b53565b50600180549085015b81811015614c00578260018281548110614bc457fe5b9060005260206000209060040201600301540160018281548110614be457fe5b6000918252602090912060036004909202010155600101614bae565b50505b5091949350505050565b614c15616611565b506040805180820190915281518152602082810190820152919050565b614c3a6164ca565b614c4382615a49565b614c4c57600080fd5b6000614c5b8360200151615a83565b60208085015160408051808201909152868152920190820152915050919050565b6000614c86616611565b505080518051602091820151919092015191011190565b614ca5616611565b614cae82614c7c565b614cb757600080fd5b60208201516000614cc782615ae6565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614d0057508151602110155b614d0957600080fd5b6000614d188360200151615a83565b90508083600001511015614d3e5760405162461bcd60e51b8152600401610cbc90617327565b8251602080850151830180519284900392918310156147b057506020919091036101000a90049392505050565b6060614d7682615a49565b614d7f57600080fd5b6000614d8a83615bc7565b9050606081604051908082528060200260200182016040528015614dc857816020015b614db5616611565b815260200190600190039081614dad5790505b5090506000614dda8560200151615a83565b60208601510190506000805b84811015614e3157614df783615ae6565b9150604051806040016040528083815260200184815250848281518110614e1a57fe5b602090810291909101015291810191600101614de6565b509195945050505050565b614e446164ea565b60606000614e506164ea565b6060614e5a6164ca565b614e6387614c32565b90506000805b614e7283614c7c565b15614f475780614e9d57614e8d614e8884614c9d565b615c23565b6001600160a01b03168552614f3f565b8060011415614ec557614eb2614e8884614c9d565b6001600160a01b03166020860152614f3f565b8060021415614eed57614eda614e8884614c9d565b6001600160a01b03166040860152614f3f565b8060031415614f1957614f0261321d84614c9d565b6001600160401b0316606086015260019150614f3f565b8060041415614f3a57614f33614f2e84614c9d565b615c3d565b9350614f3f565b614f47565b600101614e69565b50929791965091945092505050565b606061143c614f6483615cad565b615d93565b6060815160001415614f8a575060408051600081526020810190915261138c565b606082600081518110614f9957fe5b602002602001015190506000600190505b8351811015614fda57614fd082858381518110614fc357fe5b6020026020010151615de5565b9150600101614faa565b50610f23614fed825160c060ff16615e62565b82615de5565b6060806000808080806150046127db565b6001549091505b801561511257600181039250600b838154811061502457fe5b600091825260209091206001601690920201015460ff1661504457615109565b6001838154811061505157fe5b60009182526020909120600490910201546001600160a01b03169450615078858484612fe1565b935083158061508b575060018a51038610155b1561509557615109565b60005b8a5181101561510757856001600160a01b03168b82815181106150b757fe5b6020026020010151600001516001600160a01b031614156150ff5760018b82815181106150e057fe5b6020908102919091010151901515608090910152600190960195615107565b600101615098565b505b6000190161500b565b508489510360405190808252806020026020018201604052801561515057816020015b61513d6164ea565b8152602001906001900390816151355790505b5096508489510360405190808252806020026020018201604052801561518a57816020015b60608152602001906001900390816151755790505b5095506000915060005b895181101561521e578981815181106151a957fe5b602002602001015160800151615216578981815181106151c557fe5b60200260200101518884815181106151d957fe5b60200260200101819052508881815181106151f057fe5b602002602001015187848151811061520457fe5b60200260200101819052508260010192505b600101615194565b5050505050505b9250929050565b600154825160005b828110156153495760016152466164ea565b6001838154811061525357fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561531d578781815181106152e357fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615315576000925061531d565b6001016152cf565b50811561533f5780516001600160a01b03166000908152600460205260408120555b5050600101615234565b508082111561540857805b8281101561540657600180548061536757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806153ba57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906153ec60028301826165be565b6153fa600383016000616602565b50509055600101615354565b505b60008183106154175781615419565b825b905060005b81811015615788576154cb86828151811061543557fe5b60200260200101516001838154811061544a57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615f34565b61567f5780600101600460008884815181106154e357fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061551f57fe5b60200260200101516001828154811061553457fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106155ef57fe5b6020026020010151600b828154811061560457fe5b906000526020600020906016020160020190805190602001906156289291906163ff565b506000600b828154811061563857fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061566957fe5b6000918252602090912060169091020155615780565b61571085828151811061568e57fe5b6020026020010151600b83815481106156a357fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b61575b5784818151811061572057fe5b6020026020010151600b828154811061573557fe5b906000526020600020906016020160020190805190602001906157599291906163ff565b505b60006001828154811061576a57fe5b9060005260206000209060040201600301819055505b60010161541e565b5082821115615960576157996163d0565b835b8381101561595d578581815181106157af57fe5b6020026020010151826040018190525060018782815181106157cd57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206177f28339815191528101918255858301516000805160206178328339815191528201805491151560ff199092169190911790559285015180518694929361590393600080516020617812833981519152019201906163ff565b5060608201516159199060038301906013616479565b505050806001016004600089848151811061593057fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161579b565b50505b615968615fb5565b615970616197565b6000600981905560015493505b838110156159de576000600b828154811061599457fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106159c557fe5b600091825260209091206016909102015560010161597d565b505050505050565b60008183615a075760405162461bcd60e51b8152600401610cbc9190616b12565b506000838581615a1357fe5b0495945050505050565b60008184841115615a415760405162461bcd60e51b8152600401610cbc9190616b12565b505050900390565b8051600090615a5a5750600061138c565b6020820151805160001a9060c0821015615a795760009250505061138c565b5060019392505050565b8051600090811a6080811015615a9d57600091505061138c565b60b8811080615ab8575060c08110801590615ab8575060f881105b15615ac757600191505061138c565b60c0811015615adb5760b51901905061138c565b60f51901905061138c565b80516000908190811a6080811015615b015760019150615bc0565b60b8811015615b1657607e1981019150615bc0565b60c0811015615b6757600060b78203600186019550806020036101000a865104915060018101820193505080831015615b615760405162461bcd60e51b8152600401610cbc906170b6565b50615bc0565b60f8811015615b7c5760be1981019150615bc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615bbe5760405162461bcd60e51b8152600401610cbc906170b6565b505b5092915050565b8051600090615bd85750600061138c565b60008090506000615bec8460200151615a83565b602085015185519181019250015b80821015615c1a57615c0b82615ae6565b82019150826001019250615bfa565b50909392505050565b8051600090601514615c3457600080fd5b61143c82614ceb565b8051606090615c4b57600080fd5b6000615c5a8360200151615a83565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615c91576020820181803683370190505b50905060008160200190506147b0848760200151018285616385565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615cf157506018615d15565b6fffffffffffffffffffffffffffffffff198416615d1157506010615d15565b5060005b6020811015615d4b57818181518110615d2a57fe5b01602001516001600160f81b03191615615d4357615d4b565b600101615d15565b60008160200390506060816040519080825280601f01601f191660200182016040528015615d80576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615dc55750607f60f81b82600081518110615db357fe5b01602001516001600160f81b03191611155b15615dd157508061138c565b61143c615de38351608060ff16615e62565b835b6060806040519050835180825260208201818101602087015b81831015615e16578051835260209283019201615dfe565b50855184518101855292509050808201602086015b81831015615e43578051835260209283019201615e2b565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615e8c5760405162461bcd60e51b8152600401610cbc90616eba565b60408051600180825281830190925260609160208201818036833701905050905060378411615ee65782840160f81b81600081518110615ec857fe5b60200101906001600160f81b031916908160001a905350905061143c565b6060615ef185615cad565b90508381510160370160f81b82600081518110615f0a57fe5b60200101906001600160f81b031916908160001a905350615f2b8282615de5565b95945050505050565b805182516000916001600160a01b039182169116148015615f6e575081602001516001600160a01b031683602001516001600160a01b0316145b8015615f93575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f235750506060908101519101516001600160401b0390811691161490565b6012546013548082111561600057805b82811015615ffe576012805480615fd857fe5b600190038181906000526020600020016000615ff491906165be565b9055600101615fc5565b505b600081831061600f5781616011565b825b905060005b81811015616129576160ce6012828154811061602e57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156160bc5780601f10616091576101008083540402835291602001916160bc565b820191906000526020600020905b81548152906001019060200180831161609f57829003601f168201915b505050505060138381548110612a4557fe5b61612157601381815481106160df57fe5b90600052602060002001601282815481106160f657fe5b90600052602060002001908054600181600116156101000203166002900461611f92919061651f565b505b600101616016565b5082821115610cdc57825b82811015612f015760126013828154811061614b57fe5b600091825260208083208454600181810187559585529190932092909101805461618e94939092019290916002610100928216159290920260001901160461651f565b50600101616134565b601354600b54808211156161e257805b828110156161e05760138054806161ba57fe5b6001900381819060005260206000200160006161d691906165be565b90556001016161a7565b505b60008183106161f157816161f3565b825b905060005b81811015616312576162b06013828154811061621057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561629e5780601f106162735761010080835404028352916020019161629e565b820191906000526020600020905b81548152906001019060200180831161628157829003601f168201915b5050505050600b83815481106156a357fe5b61630a57600b81815481106162c157fe5b9060005260206000209060160201600201601382815481106162df57fe5b90600052602060002001908054600181600116156101000203166002900461630892919061651f565b505b6001016161f8565b5082821115610cdc57825b82811015612f01576013600b828154811061633457fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461637c9593909401939092600019908216156101000201160461651f565b5060010161631d565b8061638f57610cdc565b5b602081106163af578251825260209283019290910190601f1901616390565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016163fa61662b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061644057805160ff191683800117855561646d565b8280016001018555821561646d579182015b8281111561646d578251825591602001919060010190616452565b5061281692915061664a565b826013810192821561646d579160200282018281111561646d578251825591602001919060010190616452565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806164dd616611565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616558578054855561646d565b8280016001018555821561646d57600052602060002091601f016020900482015b8281111561646d578254825591600101919060010190616579565b826013810192821561646d579182018281111561646d578254825591600101919060010190616579565b50805460018160011615610100020316600290046000825580601f106165e45750611598565b601f016020900490600052602060002090810190611598919061664a565b5061159890601381019061664a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127bb91905b808211156128165760008155600101616650565b60008083601f840112616675578182fd5b5081356001600160401b0381111561668b578182fd5b602083019150836020808302850101111561522557600080fd5b60008083601f8401126166b6578182fd5b5081356001600160401b038111156166cc578182fd5b60208301915083602082850101111561522557600080fd5b6000602082840312156166f5578081fd5b81356001600160a01b0381168114610f23578182fd5b60008060008060408587031215616720578283fd5b84356001600160401b0380821115616736578485fd5b61674288838901616664565b9096509450602087013591508082111561675a578384fd5b5061676787828801616664565b95989497509550505050565b600060208284031215616784578081fd5b81518015158114610f23578182fd5b600080602083850312156167a5578182fd5b82356001600160401b038111156167ba578283fd5b6167c6858286016166a5565b90969095509350505050565b600080600080604085870312156167e7578384fd5b84356001600160401b03808211156167fd578586fd5b616809888389016166a5565b90965094506020870135915080821115616821578384fd5b50616767878288016166a5565b60006020828403121561683f578081fd5b5035919050565b600060208284031215616857578081fd5b5051919050565b60008060408385031215616870578182fd5b505080516020909101519092909150565b600080600060408486031215616895578283fd5b833560ff811681146168a5578384fd5b925060208401356001600160401b038111156168bf578283fd5b6168cb868287016166a5565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169105781516001600160a01b0316875295820195908201906001016168eb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261695d8160208601602086016175fa565b601f01601f19169290920160200192915050565b600082516169838184602087016175fa565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f2360208301846168d8565b600060408252616a3060408301856168d8565b602083820381850152818551808452828401915082838202850101838801865b83811015616a7e57601f19878403018552616a6c838351616945565b94860194925090850190600101616a50565b50909998505050505050505050565b600060808252616aa060808301876168d8565b828103602084810191909152865180835287820192820190845b81811015616ad657845183529383019391830191600101616aba565b50508481036040860152616aea81886168d8565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f236020830184616945565b600060408252616b3960408301868861691b565b8281036020840152616b4c81858761691b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615f2b6060830184616945565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615f2b60408301848661691b565b60005b838110156176155781810151838201526020016175fd565b83811115612f01575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa26469706673582212201bfbc326e63aa136a8685cddd241600b97b8502885f737aee34f1189c78be29b64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/plato/mainnet/SlashContract b/core/systemcontracts/plato/mainnet/SlashContract new file mode 100644 index 0000000000..42a7403d04 --- /dev/null +++ b/core/systemcontracts/plato/mainnet/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b604051610299919061336a565b60405180910390f35b6102aa6104e2565b6040516102999190612c1b565b6102ca6102c5366004612b51565b6104e8565b6040516102999190612c53565b6102df61054e565b6040516102999190612c48565b6102ff6102fa3660046128ff565b610557565b60405161029993929190613352565b6102aa61031c366004612b21565b61057a565b61033461032f3660046128ff565b6105a1565b604051610299929190613344565b61034a6105f8565b604051610299919061331a565b61034a6105fe565b610367610604565b604051610299919061337b565b6102aa610609565b61038461060f565b604051610299919061330b565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b73660046128ff565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612b51565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc610457366004612a05565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612b51565b610ceb565b6103bc61048d3660046128ff565b610d5c565b6103bc6104a0366004612a6e565b61114d565b61034a611733565b6102aa611738565b6103bc61173e565b6102aa61177a565b610367611780565b6103bc611785565b6102aa611bce565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b90613163565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612d04565b60405162461bcd60e51b815260040161050b90613254565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac6126e6565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612f48565b60005460ff166106685760405162461bcd60e51b815260040161050b90612d04565b61200063f7a251d7600b61067b84611bd4565b60006040518463ffffffff1660e01b815260040161069b93929190613389565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b90613163565b60005460ff166107435760405162461bcd60e51b815260040161050b90612d04565b61074b612709565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca692505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c69161336a565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108039161336a565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612d04565b33611007146108845760405162461bcd60e51b815260040161050b90613020565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611d269050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612ed4565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611d8092505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b9061311e565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611d269050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b9061306e565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611d8092505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d72565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611d269050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b9061328b565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611d8092505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e88565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611d269050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612da7565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611d8592505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b906131ff565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612c66565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b90613163565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612d04565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b906131b2565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612d04565b6003544311610dbe5760405162461bcd60e51b815260040161050b906132d6565b3a15610ddc5760405162461bcd60e51b815260040161050b90612fc3565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612c1b565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906129e5565b610e5a57611146565b610e626126e6565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612c1b565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611bd4565b60006040518463ffffffff1660e01b8152600401610fc793929190613389565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c836020015183604051611065929190613323565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612c1b565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612d04565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612c1b565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906129e5565b6112005760405162461bcd60e51b815260040161050b90612c98565b60075460ff166112225760405162461bcd60e51b815260040161050b90612ccf565b60065461122f5760146006555b438160000151604001516101000111801561125557504381602001516040015161010001115b6112715760405162461bcd60e51b815260040161050b90613226565b80602001516020015181600001516020015114801561129f5750806020015160600151816000015160600151145b156112bc5760405162461bcd60e51b815260040161050b90612f1b565b8051604081015190511080156112db5750602081015160408101519051105b6112f75760405162461bcd60e51b815260040161050b90612e51565b60208101515181515110801561131c5750806000015160400151816020015160400151105b8061134757508051516020820151511080156113475750806020015160400151816000015160400151105b806113615750806020015160400151816000015160400151145b61137d5760405162461bcd60e51b815260040161050b90612d3b565b604080820151905163ea321e4960e01b81526110009163ea321e49916113a69190600401612c53565b60206040518083038186803b1580156113be57600080fd5b505afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f691906129e5565b6114125760405162461bcd60e51b815260040161050b90612ff1565b61142481600001518260400151611dad565b801561143d575061143d81602001518260400151611dad565b6114595760405162461bcd60e51b815260040161050b90612df2565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561149757600080fd5b505afa1580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d39190810190612922565b9150915060005b8151811015611610576115048282815181106114f257fe5b60200260200101518560400151611f85565b15611608576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f09061153c9033908590600401612c2f565b602060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612b39565b506110006001600160a01b03166335409f7f8584815181106115ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016115d09190612c1b565b600060405180830381600087803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b5050505050611610565b6001016114da565b50600061162284604001516000611fe9565b90506120006001600160a01b031663f7a251d7600b6116448760400151612005565b60006040518463ffffffff1660e01b815260040161166493929190613389565b600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b611701573d8080156116bd576040519150601f19603f3d011682016040523d82523d6000602084013e6116c2565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f3628826040516116f39190612c53565b60405180910390a25061172d565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156117615760405162461bcd60e51b815260040161050b906130b0565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146117a65760405162461bcd60e51b815260040161050b90612f48565b60005460ff166117c85760405162461bcd60e51b815260040161050b90612d04565b6001546117d457611bcc565b600154600090600019015b808211611ba0576000805b82841015611903576117fa6126e6565b600260006001878154811061180b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118ed5760046005548161187857fe5b0481602001510381602001818152505080600260006001888154811061189a57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff19169115159190911790556118f7565b6001925050611903565b508360010193506117ea565b828411611a9a576119126126e6565b600260006001868154811061192357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a0b5760046005548161199057fe5b048160200151038160200181815250508060026000600187815481106119b257fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a9a9050565b6002600060018681548110611a1c57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611a6057fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a8d5750611a9a565b5060001990920191611903565b818015611aa45750805b15611b83576002600060018681548110611aba57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611b0157fe5b600091825260209091200154600180546001600160a01b039092169186908110611b2757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611b6057fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b8f575050611ba0565b5050600190910190600019016117df565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611bef579050509050611c18836001600160a01b0316612040565b81600081518110611c2557fe5b6020026020010181905250611c3943612063565b81600181518110611c4657fe5b6020908102919091010152611c5b6038612063565b81600281518110611c6857fe5b6020026020010181905250611c7c42612063565b81600381518110611c8957fe5b6020026020010181905250611c9d81612076565b9150505b919050565b611cae612709565b6000611cb8612709565b611cc061271b565b611cd1611ccc86612100565b612125565b90506000805b611ce08361216f565b15611d195780611d0c57611cfb611cf684612190565b6121de565b63ffffffff16845260019150611d11565b611d19565b600101611cd7565b5091935090915050915091565b600081604051602001611d399190612bff565b6040516020818303038152906040528051906020012083604051602001611d609190612bff565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d9f576001915081611da5565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611dc9575050604080516020808252818301909252919250606091908082018180368337019050509050611e0e8560000151612063565b82600081518110611e1b57fe5b6020026020010181905250611e366020866020015183612260565b611e3f81612270565b82600181518110611e4c57fe5b6020026020010181905250611e648560400151612063565b82600281518110611e7157fe5b6020026020010181905250611e8c6020866060015183612260565b611e9581612270565b82600381518110611ea257fe5b6020026020010181905250611ec86020611ebb84612076565b8051906020012083612260565b6040805160b080825260e08201909252606091602082018180368337019050509050611ef88183600060206122c6565b611f0a818760800151602060606122c6565b611f188186608060306122c6565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611f5557600080fd5b506001611f63826000612319565b60ff1614611f78576000945050505050611d7a565b5060019695505050505050565b815181516000916001918114808314611fa15760009250611fdf565b600160208701838101602088015b600284838510011415611fda578051835114611fce5760009650600093505b60209283019201611faf565b505050505b5090949350505050565b60008160200183511015611ffc57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612020579050509050611c1883612270565b60408051600560a21b8318601482015260348101909152606090611c9d81612270565b6060611d7a61207183612335565b612270565b60608151600014156120975750604080516000815260208101909152611ca1565b6060826000815181106120a657fe5b602002602001015190506000600190505b83518110156120e7576120dd828583815181106120d057fe5b602002602001015161241b565b91506001016120b7565b50611c9d6120fa825160c060ff16612498565b8261241b565b61210861273b565b506040805180820190915281518152602082810190820152919050565b61212d61271b565b6121368261256a565b61213f57600080fd5b600061214e83602001516125a4565b60208085015160408051808201909152868152920190820152915050919050565b600061217961273b565b505080518051602091820151919092015191011190565b61219861273b565b6121a18261216f565b6121aa57600080fd5b602082015160006121ba82612607565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906121f357508151602110155b6121fc57600080fd5b600061220b83602001516125a4565b905080836000015110156122315760405162461bcd60e51b815260040161050b906130e7565b82516020808501518301805192849003929183101561225757826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122a25750607f60f81b8260008151811061229057fe5b01602001516001600160f81b03191611155b156122ae575080611ca1565b611d7a6122c08351608060ff16612498565b8361241b565b60005b818110156106c9578381815181106122dd57fe5b602001015160f81c60f81b8584806001019550815181106122fa57fe5b60200101906001600160f81b031916908160001a9053506001016122c9565b6000816001018351101561232c57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166123795750601861239d565b6fffffffffffffffffffffffffffffffff1984166123995750601061239d565b5060005b60208110156123d3578181815181106123b257fe5b01602001516001600160f81b031916156123cb576123d3565b60010161239d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612408576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561244c578051835260209283019201612434565b50855184518101855292509050808201602086015b81831015612479578051835260209283019201612461565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124c25760405162461bcd60e51b815260040161050b90612e29565b6040805160018082528183019092526060916020820181803683370190505090506037841161251c5782840160f81b816000815181106124fe57fe5b60200101906001600160f81b031916908160001a9053509050611d7a565b606061252785612335565b90508381510160370160f81b8260008151811061254057fe5b60200101906001600160f81b031916908160001a905350612561828261241b565b95945050505050565b805160009061257b57506000611ca1565b6020820151805160001a9060c082101561259a57600092505050611ca1565b5060019392505050565b8051600090811a60808110156125be576000915050611ca1565b60b88110806125d9575060c081108015906125d9575060f881105b156125e8576001915050611ca1565b60c08110156125fc5760b519019050611ca1565b60f519019050611ca1565b80516000908190811a608081101561262257600191506126df565b60b881101561263757607e19810191506126df565b60c081101561268857600060b78203600186019550806020036101000a8651049150600181018201935050808310156126825760405162461bcd60e51b815260040161050b90612f98565b506126df565b60f881101561269d5760be19810191506126df565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611da55760405162461bcd60e51b815260040161050b90612f98565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061272e61273b565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612765578081fd5b8151612778612773826133dc565b6133b5565b818152915060208083019084810160005b848110156127ee578151870188603f8201126127a457600080fd5b838101516127b4612773826133fc565b81815260408b818486010111156127ca57600080fd5b6127d983888401838701613420565b50865250509282019290820190600101612789565b505050505092915050565b60008083601f84011261280a578182fd5b50813567ffffffffffffffff811115612821578182fd5b60208301915083602082850101111561283957600080fd5b9250929050565b600082601f830112612850578081fd5b813561285e612773826133fc565b915080825283602082850101111561287557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561289f578081fd5b6128a960a06133b5565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156128e757600080fd5b6128f384828501612840565b60808301525092915050565b600060208284031215612910578081fd5b813561291b8161344c565b9392505050565b60008060408385031215612934578081fd5b825167ffffffffffffffff8082111561294b578283fd5b81850186601f82011261295c578384fd5b8051925061296c612773846133dc565b80848252602080830192508084018a82838902870101111561298c578788fd5b8794505b868510156129b75780516129a38161344c565b845260019490940193928101928101612990565b5088015190965093505050808211156129ce578283fd5b506129db85828601612755565b9150509250929050565b6000602082840312156129f6578081fd5b8151801515811461291b578182fd5b60008060008060408587031215612a1a578182fd5b843567ffffffffffffffff80821115612a31578384fd5b612a3d888389016127f9565b90965094506020870135915080821115612a55578384fd5b50612a62878288016127f9565b95989497509550505050565b600060208284031215612a7f578081fd5b813567ffffffffffffffff80821115612a96578283fd5b81840160608187031215612aa8578384fd5b612ab260606133b5565b9250803582811115612ac2578485fd5b612ace8782840161288e565b845250602081013582811115612ae2578485fd5b612aee8782840161288e565b602085015250604081013582811115612b05578485fd5b612b1187828401612840565b6040850152509195945050505050565b600060208284031215612b32578081fd5b5035919050565b600060208284031215612b4a578081fd5b5051919050565b600080600060408486031215612b65578283fd5b833560ff81168114612b75578384fd5b9250602084013567ffffffffffffffff811115612b90578283fd5b612b9c868287016127f9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612beb816020860160208601613420565b601f01601f19169290920160200192915050565b60008251612c11818460208701613420565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261291b6020830184612bd3565b600060408252612c7a604083018688612ba9565b8281036020840152612c8d818587612ba9565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008382526040602083015261333c6040830184612bd3565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526133a56060830185612bd3565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156133d457600080fd5b604052919050565b600067ffffffffffffffff8211156133f2578081fd5b5060209081020190565b600067ffffffffffffffff821115613412578081fd5b50601f01601f191660200190565b60005b8381101561343b578181015183820152602001613423565b8381111561172d5750506000910152565b6001600160a01b038116811461346157600080fd5b5056fea2646970667358221220532ad4dea38f301adf4b42a3bbc7b2ca9d59afe0f9ac4088e05b58394b1c666564736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/plato/mainnet/ValidatorContract b/core/systemcontracts/plato/mainnet/ValidatorContract new file mode 100644 index 0000000000..c47e8566b4 --- /dev/null +++ b/core/systemcontracts/plato/mainnet/ValidatorContract @@ -0,0 +1 @@ +60806040526004361061048d5760003560e01c806388b32f1111610255578063c81b166211610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610bd7578063f9a2bbc714610bec578063fc3e590814610c01578063fccc281314610c16578063fd4ad81f14610c2b578063fd6a687914610c5a57610494565b8063e40716a114610b5a578063ea321e4914610b6f578063eb57e20214610b8f578063eda5868c14610baf578063f340fa0114610bc457610494565b8063d86222d511610108578063d86222d514610af1578063daacdb6614610b06578063dc927faf14610b1b578063e086c7b114610b30578063e1c7392a14610b4557610494565b8063c81b166214610a92578063c8509d81146108a0578063ce910b0c14610aa7578063d04aa99614610ac7578063d68fb56a14610adc57610494565b8063a78abc16116101d2578063aef198a911610196578063aef198a914610a31578063b7ab4db514610a46578063b8cf4ef114610a68578063bf9f499514610650578063c6d3394514610a7d57610494565b8063a78abc16146109b2578063aaf5eb68146109c7578063ab51bb96146109dc578063ac431751146109f1578063ad3c9da614610a1157610494565b80639dc09262116102195780639dc09262146109495780639fe0f8161461095e578063a0dc275814610973578063a1a11bf514610988578063a5422d5c1461099d57610494565b806388b32f11146108d55780638b5ad0c9146108ea5780638d19a410146108ff5780639369d7de1461091f57806396713da91461093457610494565b80635192c82c1161037c5780636e47b482116102f95780637942fd05116102bd5780637942fd05146108615780637a84ca2a1461087657806381650b621461088b578063831d65d1146108a0578063853230aa1461084c57806386249882146108c057610494565b80636e47b482146107f857806370fd5bad1461080d578063718a8aa81461082257806375d47a0a1461083757806378dfed4a1461084c57610494565b80635667515a116103405780635667515a146107675780635d77156c1461077c57806360eba4fe1461079157806362b72cf5146107b15780636969a25c146107c657610494565b80635192c82c146106e857806351e80672146106fd578063549b03f21461071257806355614fcc14610727578063565c56b31461074757610494565b80633365af3a1161040a57806343756e5c116103ce57806343756e5c1461067257806345cf9daf14610687578063493279b11461069c5780634bf6c882146106be5780634df6e0c3146106d357610494565b80633365af3a146105d857806335409f7f146105f85780633b071dcc146106185780633de0f0d81461063b5780633dffc3871461065057610494565b8063152ad3b811610451578063152ad3b81461054c5780631ff180691461056e578063219f22d514610583578063300c356714610598578063321d398a146105b857610494565b806304c4fec61461049957806307a56847146104b05780630bee7a67146104db5780630e2374a5146104fd5780631182b8751461051f57610494565b3661049457005b600080fd5b3480156104a557600080fd5b506104ae610c6f565b005b3480156104bc57600080fd5b506104c5610ce1565b6040516104d29190617594565b60405180910390f35b3480156104e757600080fd5b506104f0610ce7565b6040516104d291906175be565b34801561050957600080fd5b50610512610cec565b6040516104d2919061699b565b34801561052b57600080fd5b5061053f61053a366004616881565b610cf2565b6040516104d29190616b12565b34801561055857600080fd5b50610561610f2a565b6040516104d29190616b07565b34801561057a57600080fd5b506104c5610f33565b34801561058f57600080fd5b506104f0610f39565b3480156105a457600080fd5b506104ae6105b336600461670b565b610f3e565b3480156105c457600080fd5b506105616105d336600461682e565b6112c2565b3480156105e457600080fd5b506105616105f336600461682e565b611391565b34801561060457600080fd5b506104ae6106133660046166e4565b611442565b34801561062457600080fd5b5061062d61159b565b6040516104d2929190616a1d565b34801561064757600080fd5b506104c5611877565b34801561065c57600080fd5b5061066561187d565b6040516104d291906175cf565b34801561067e57600080fd5b50610512611882565b34801561069357600080fd5b506104c5611888565b3480156106a857600080fd5b506106b161188e565b6040516104d29190617585565b3480156106ca57600080fd5b50610665611893565b3480156106df57600080fd5b5061062d611898565b3480156106f457600080fd5b506104c5611a16565b34801561070957600080fd5b50610512611a1c565b34801561071e57600080fd5b506104c5611a22565b34801561073357600080fd5b506105616107423660046166e4565b611a28565b34801561075357600080fd5b506104c56107623660046166e4565b611a5d565b34801561077357600080fd5b50610665611aae565b34801561078857600080fd5b506104f0611ab3565b34801561079d57600080fd5b5061053f6107ac36600461682e565b611ab8565b3480156107bd57600080fd5b506104c5611b5e565b3480156107d257600080fd5b506107e66107e136600461682e565b611b64565b6040516104d2969594939291906169c8565b34801561080457600080fd5b50610512611bc8565b34801561081957600080fd5b50610665611bce565b34801561082e57600080fd5b50610665611bd3565b34801561084357600080fd5b50610512611bd8565b34801561085857600080fd5b506104c5611bde565b34801561086d57600080fd5b50610665611be4565b34801561088257600080fd5b506104c5611be9565b34801561089757600080fd5b506104f0611bef565b3480156108ac57600080fd5b506104ae6108bb366004616881565b611bf4565b3480156108cc57600080fd5b506104c5611c55565b3480156108e157600080fd5b506104c5611c5b565b3480156108f657600080fd5b506104c5611c61565b34801561090b57600080fd5b506104c561091a3660046166e4565b611c67565b34801561092b57600080fd5b506104ae611ca7565b34801561094057600080fd5b50610665611dbb565b34801561095557600080fd5b50610512611dc0565b34801561096a57600080fd5b506104c5611dc6565b34801561097f57600080fd5b506104c5611dcb565b34801561099457600080fd5b50610512611dd0565b3480156109a957600080fd5b5061053f611dd6565b3480156109be57600080fd5b50610561611df5565b3480156109d357600080fd5b506104c5611dfe565b3480156109e857600080fd5b506104f0611aae565b3480156109fd57600080fd5b506104ae610a0c3660046167d2565b611e07565b348015610a1d57600080fd5b506104c5610a2c3660046166e4565b6126b3565b348015610a3d57600080fd5b506104c56126c5565b348015610a5257600080fd5b50610a5b6126d2565b6040516104d29190616a0a565b348015610a7457600080fd5b506104c56127be565b348015610a8957600080fd5b506104c5611bce565b348015610a9e57600080fd5b506105126127c3565b348015610ab357600080fd5b5061053f610ac236600461682e565b6127c9565b348015610ad357600080fd5b506104c56127d6565b348015610ae857600080fd5b506104c56127db565b348015610afd57600080fd5b506104c561281a565b348015610b1257600080fd5b506104c5612826565b348015610b2757600080fd5b5061051261282c565b348015610b3c57600080fd5b506104c5612832565b348015610b5157600080fd5b506104ae612837565b348015610b6657600080fd5b506104c56129e6565b348015610b7b57600080fd5b50610561610b8a366004616793565b6129ec565b348015610b9b57600080fd5b506104ae610baa3660046166e4565b612b72565b348015610bbb57600080fd5b506104f0612c7a565b6104ae610bd23660046166e4565b612c7f565b348015610be357600080fd5b506104c5612f07565b348015610bf857600080fd5b50610512612f0d565b348015610c0d57600080fd5b50610665611dc6565b348015610c2257600080fd5b50610512612f13565b348015610c3757600080fd5b50610c4b610c4636600461682e565b612f19565b6040516104d29392919061759d565b348015610c6657600080fd5b50610512612fdb565b6000610c7a33611c67565b9050600b8181548110610c8957fe5b600091825260209091206001601690920201015460ff16610cc55760405162461bcd60e51b8152600401610cbc9061723d565b60405180910390fd5b6000610ccf6127db565b9050610cdc338383612fe1565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d175760405162461bcd60e51b8152600401610cbc90616cd1565b3361200014610d385760405162461bcd60e51b8152600401610cbc9061741c565b600b54610df657610d476163d0565b60015460005b81811015610df257600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794610dce936000805160206176678339815191529091019201906163ff565b506060820151610de49060038301906013616479565b505050806001019050610d4d565b5050505b610dfe6164a6565b6000610e3f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131cd92505050565b9150915080610e5b57610e526064613389565b92505050610f23565b815160009060ff16610e8057610e79836020015184604001516133ea565b9050610eef565b825160ff1660011415610eeb57826020015151600114610ec557600080516020617627833981519152604051610eb590617124565b60405180910390a1506067610ee6565b610e798360200151600081518110610ed957fe5b602002602001015161403e565b610eef565b5060655b63ffffffff8116610f145750506040805160008152602081019091529150610f239050565b610f1d81613389565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f5d5760405162461bcd60e51b8152600401610cbc9061746b565b6010544311610f7e5760405162461bcd60e51b8152600401610cbc90616e2d565b60005460ff16610fa05760405162461bcd60e51b8152600401610cbc90616cd1565b600f54610fb8576032600f55611002316011556112b8565b60006110023168056bc75e2d63100000811115610fe757610fe081606463ffffffff6141b516565b9150611030565b60115481111561102957610fe0606461101d600f54611011601154866141f790919063ffffffff16565b9063ffffffff61423916565b9063ffffffff6141b516565b50506112b8565b6040516309a99b4f60e41b815261100290639a99b4f09061105790309086906004016169af565b602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190616846565b611002316011559150816110be5750506112b8565b6000805b848110156110ec578585828181106110d657fe5b90506020020135820191508060010190506110c2565b50806110fa575050506112b8565b6000806000805b898110156112b0578489898381811061111657fe5b9050602002013588028161112657fe5b0493508a8a8281811061113557fe5b905060200201602081019061114a91906166e4565b6001600160a01b0381166000908152600460205260409020549093509150811561126657600060018084038154811061117f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111ec57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111df9190617594565b60405180910390a2611260565b6003546111ff908663ffffffff61427316565b6003908155810154611217908663ffffffff61427316565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611257908890617594565b60405180910390a25b506112a8565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161129f9190617594565b60405180910390a25b600101611101565b505050505050505b5050436010555050565b60015460009082106112d65750600061138c565b60006001600160a01b0316600183815481106112ee57fe5b60009182526020909120600490910201546001600160a01b0316148061131e5750600854158061131e5750600a54155b8061132d575060085460095410155b8061133e575061133c82611391565b155b8061136757506000600b838154811061135357fe5b906000526020600020906016020160000154115b8061137b575060016113776126d2565b5111155b156113885750600061138c565b5060015b919050565b60015460009082106113a55750600061138c565b600b5482106113e257600182815481106113bb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061138c565b600182815481106113ef57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561143c5750600b828154811061142357fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114635760405162461bcd60e51b8152600401610cbc9061753c565b600b54611521576114726163d0565b60015460005b8181101561151d57600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff19169115159190911790556040860151805187946114f9936000805160206176678339815191529091019201906163ff565b50606082015161150f9060038301906013616479565b505050806001019050611478565b5050505b6001600160a01b038116600090815260046020526040902054806115455750611598565b6001810390506000600b828154811061155a57fe5b600091825260209091206001601690920201015460ff16905061157d8383614298565b80156115865750805b15610cdc576009805460001901905550505b50565b60015460609081906000805b828110156115ee57600181815481106115bc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115e6576001909101905b6001016115a7565b5060608160405190808252806020026020018201604052801561161b578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561165457816020015b606081526020019060019003908161163f5790505b50600b54600094509091508414156117cf5760005b848110156117c9576001818154811061167e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117c157600181815481106116ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061170657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b50505050508285815181106117af57fe5b60209081029190910101526001909301925b600101611669565b5061186b565b60005b8481101561186957600181815481106117e757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611861576001818154811061181757fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061184257fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117d2565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c546060918291806118ac575060155b60606118b66126d2565b905060606118c38261464b565b9050828251116118da579094509250611873915050565b838383510310156118ec578282510393505b83156119225760c8430461190883838388880360008a8a6147b9565b6119208383838888038989038a8b8b8b5103016147b9565b505b60608360405190808252806020026020018201604052801561194e578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561198757816020015b60608152602001906001900390816119725790505b50905060005b85811015611a08578481815181106119a157fe5b60200260200101518382815181106119b557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119e157fe5b60200260200101518282815181106119f557fe5b602090810291909101015260010161198d565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b03811660009081526004602052604081205480611a5057600091505061138c565b60001901610f2381611391565b6001600160a01b03811660009081526004602052604081205480611a8557600091505061138c565b600180820381548110611a9457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60128181548110611ac557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b565780601f10611b2b57610100808354040283529160200191611b56565b820191906000526020600020905b815481529060010190602001808311611b3957829003601f168201915b505050505081565b60105481565b60018181548110611b7157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c155760405162461bcd60e51b8152600401610cbc9061741c565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c48939291906175dd565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c9d5760405162461bcd60e51b8152600401610cbc906173a4565b6000190192915050565b600b54611d6557611cb66163d0565b60015460005b81811015611d6157600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794611d3d936000805160206176678339815191529091019201906163ff565b506060820151611d539060038301906013616479565b505050806001019050611cbc565b5050505b600854611d725760036008555b600a54611d7f576002600a555b6000611d8a33611c67565b9050611d95816112c2565b611db15760405162461bcd60e51b8152600401610cbc906170e1565b6115983382614910565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016176876105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611e295760405162461bcd60e51b8152600401610cbc90616cd1565b3361100714611e4a5760405162461bcd60e51b8152600401610cbc906171aa565b611eb484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149a89050565b15611f515760208114611ed95760405162461bcd60e51b8152600401610cbc9061735e565b604080516020601f8401819004810282018101909252828152600091611f1791858580838501838280828437600092019190915250614a0192505050565b905060648110158015611f2d5750620186a08111155b611f495760405162461bcd60e51b8152600401610cbc90616f8a565b600255612670565b611fb184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149a89050565b1561204d5760208114611fd65760405162461bcd60e51b8152600401610cbc90616b57565b604080516020601f840181900481028201810190925282815260009161201491858580838501838280828437600092019190915250614a0192505050565b90506127108111156120385760405162461bcd60e51b8152600401610cbc90616e6f565b6006556007805460ff19166001179055612670565b6120b784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149a89050565b1561215157602081146120dc5760405162461bcd60e51b8152600401610cbc90616b8e565b604080516020601f840181900481028201810190925282815260009161211a91858580838501838280828437600092019190915250614a0192505050565b600c5490915080612129575060155b8082106121485760405162461bcd60e51b8152600401610cbc90616ee2565b50600855612670565b6121ba84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149a89050565b1561225357602081146121df5760405162461bcd60e51b8152600401610cbc90616c57565b604080516020601f840181900481028201810190925282815260009161221d91858580838501838280828437600092019190915250614a0192505050565b905060008111801561222f5750600a81105b61224b5760405162461bcd60e51b8152600401610cbc906174b8565b600a55612670565b6122c784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149a89050565b1561235657602081146122ec5760405162461bcd60e51b8152600401610cbc90616c0b565b604080516020601f840181900481028201810190925282815260009161232a91858580838501838280828437600092019190915250614a0192505050565b9050600d5481111561234e5760405162461bcd60e51b8152600401610cbc90617000565b600e55612670565b6123bf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149a89050565b1561244157602081146123e45760405162461bcd60e51b8152600401610cbc906171f8565b604080516020601f840181900481028201810190925282815260009161242291858580838501838280828437600092019190915250614a0192505050565b600d819055600e5490915081101561243b57600d54600e555b50612670565b6124a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149a89050565b1561255357602081146124ca5760405162461bcd60e51b8152600401610cbc90616c9c565b604080516020601f840181900481028201810190925282815260009161250891858580838501838280828437600092019190915250614a0192505050565b90506000811161252a5760405162461bcd60e51b8152600401610cbc90616d3f565b602981111561254b5760405162461bcd60e51b8152600401610cbc90616d87565b600c55612670565b6125bd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506149a89050565b1561265857602081146125e25760405162461bcd60e51b8152600401610cbc906172e1565b604080516020601f840181900481028201810190925282815260009161262091858580838501838280828437600092019190915250614a0192505050565b905060018110158015612634575060648111155b6126505760405162461bcd60e51b8152600401610cbc9061706f565b600f55612670565b60405162461bcd60e51b8152600401610cbc90617515565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516126a59493929190616b25565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612701576126ed81611391565b156126f9578160010191505b6001016126dc565b5060608160405190808252806020026020018201604052801561272e578160200160208202803683370190505b5090506000915060005b838110156127b55761274981611391565b156127ad576001818154811061275b57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061278657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612738565b50925050505b90565b601581565b61100281565b60138181548110611ac557fe5b603281565b60006127e56126d2565b519050600080600c54116127fa5760156127fe565b600c545b90508082111561280c578091505b8161281657600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561285a5760405162461bcd60e51b8152600401610cbc906172aa565b6128626164a6565b60006128886040518061062001604052806105ef81526020016176876105ef91396131cd565b91509150806128a95760405162461bcd60e51b8152600401610cbc906173db565b60005b8260200151518110156129ce576001836020015182815181106128cb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106129a157fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016128ac565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612af557612add85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a4557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b820191906000526020600020905b815481529060010190602001808311612ab657829003601f168201915b5050505050614a06565b15612aed5760019250505061143c565b6001016129f4565b5060125460005b81811015612b6657612b4d86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a4557fe5b15612b5e576001935050505061143c565b600101612afc565b50600095945050505050565b3361100114612b935760405162461bcd60e51b8152600401610cbc9061753c565b600b54612c5157612ba26163d0565b60015460005b81811015612c4d57600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794612c29936000805160206176678339815191529091019201906163ff565b506060820151612c3f9060038301906013616479565b505050806001019050612ba8565b5050505b6000612c5c82614a6a565b9050612c67816112c2565b15612c7657612c768282614910565b5050565b606581565b334114612c9e5760405162461bcd60e51b8152600401610cbc9061746b565b60005460ff16612cc05760405162461bcd60e51b8152600401610cbc90616cd1565b60003411612ce05760405162461bcd60e51b8152600401610cbc90616fd1565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612d1057506006545b600083118015612d205750600081115b15612dc1576000612d3d61271061101d868563ffffffff61423916565b90508015612dbf5760405161dead9082156108fc029083906000818181858888f19350505050158015612d74573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612da49190617594565b60405180910390a1612dbc848263ffffffff6141f716565b93505b505b8115612ebf576000600180840381548110612dd857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612e4557846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612e389190617594565b60405180910390a2612eb9565b600354612e58908563ffffffff61427316565b6003908155810154612e70908563ffffffff61427316565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612eb0908790617594565b60405180910390a25b50612f01565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612ef89190617594565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612f2657fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612fd15780601f10612fa657610100808354040283529160200191612fd1565b820191906000526020600020905b815481529060010190602001808311612fb457829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612ff2575081155b80612ffd5750600954155b1561300a57506000610f23565b60096000815460019003919050819055506000613055600a5461101d8561101d600b898154811061303757fe5b6000918252602090912060169091020154439063ffffffff6141f716565b90506000600b858154811061306657fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b1580156130cb57600080fd5b505afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613103919061685e565b915091506000935080831061317d5761311c8787614298565b506040516305bfb49960e41b815261100190635bfb499090613142908a9060040161699b565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b505050506001935061318f565b81831061318f5761318d87614a6a565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b6131d56164a6565b60006131df6164a6565b6131e76164ca565b6131f86131f386614c0d565b614c32565b90506000805b61320783614c7c565b1561337b578061322c5761322261321d84614c9d565b614ceb565b60ff168452613373565b806001141561336e57606061324861324385614c9d565b614d6b565b9050805160405190808252806020026020018201604052801561328557816020015b6132726164ea565b81526020019060019003908161326a5790505b50856020018190525080516040519080825280602002602001820160405280156132c357816020015b60608152602001906001900390816132ae5790505b50604086015260005b8151811015613363576132dd6164ea565b606060006132fd8585815181106132f057fe5b6020026020010151614e3c565b9250925092508061331d578860009a509a50505050505050505050613384565b828960200151858151811061332e57fe5b6020026020010181905250818960400151858151811061334a57fe5b60200260200101819052505050508060010190506132cc565b506001925050613373565b61337b565b6001016131fe565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816133a35790505090506133c98363ffffffff16614f56565b816000815181106133d657fe5b6020026020010181905250610f2381614f69565b60006029835111156134215760008051602061762783398151915260405161341190616de4565b60405180910390a150606661143c565b60005b83518110156134bf5760005b818110156134b65784818151811061344457fe5b6020026020010151600001516001600160a01b031685838151811061346557fe5b6020026020010151600001516001600160a01b031614156134ae5760008051602061762783398151915260405161349b90616f3f565b60405180910390a160669250505061143c565b600101613430565b50600101613424565b506060806134cd8585614ff3565b60015491935091506000908190815b818110156135525767016345785d8a0000600182815481106134fa57fe5b9060005260206000209060040201600301541061351c5783600101935061354a565b60006001828154811061352b57fe5b906000526020600020906004020160030154111561354a578260010192505b6001016134dc565b5060608360405190808252806020026020018201604052801561357f578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156135ae578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156135dd578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561360c578160200160208202803683370190505b509050600060608760405190808252806020026020018201604052801561363d578160200160208202803683370190505b50905060608860405190808252806020026020018201604052801561366c578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190616846565b905067016345785d8a00008111156137375760008051602061762783398151915260405161371990617269565b60405180910390a160689d505050505050505050505050505061143c565b60005b898110156139a85767016345785d8a00006001828154811061375857fe5b906000526020600020906004020160030154106138dd576001818154811061377c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106137ad57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106137e257fe5b906000526020600020906004020160030154816137fb57fe5b066001838154811061380957fe5b90600052602060002090600402016003015403905061383183826141f790919063ffffffff16565b898e8151811061383d57fe5b6020026020010181815250506001828154811061385657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061388757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106138b457fe5b60209081029190910101526138cf868263ffffffff61427316565b95508c6001019c50506139a0565b6000600182815481106138ec57fe5b90600052602060002090600402016003015411156139a0576001818154811061391157fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061394257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061396f57fe5b906000526020600020906004020160030154838c8151811061398d57fe5b6020026020010181815250508a6001019a505b60010161373a565b5060008415613c1e576002546040516303702b2960e51b815261100491636e0565209188916139e2918e918e918d91420190600401616a8d565b6020604051808303818588803b1580156139fb57600080fd5b505af193505050508015613a2c575060408051601f3d908101601f19168201909252613a2991810190616773565b60015b613ba3576040516000815260443d1015613a4857506000613ae3565b60046000803e60005160e01c6308c379a08114613a69576000915050613ae3565b60043d036004833e81513d60248201116001600160401b0382111715613a9457600092505050613ae3565b80830180516001600160401b03811115613ab5576000945050505050613ae3565b8060208301013d8601811115613ad357600095505050505050613ae3565b601f01601f191660405250925050505b80613aee5750613b30565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613b229190616b12565b60405180910390a250613b9e565b3d808015613b5a576040519150601f19603f3d011682016040523d82523d6000602084013e613b5f565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613b949190616b12565b60405180910390a2505b613c1e565b8015613be5577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613bd89190617594565b60405180910390a1613c1c565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613c1390616bd4565b60405180910390a25b505b8015613dd45760005b8751811015613dd2576000888281518110613c3e57fe5b60200260200101519050600060018281548110613c5757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613c8857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613d445760018281548110613cc957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613d1857fe5b906000526020600020906004020160030154604051613d379190617594565b60405180910390a2613dc8565b60018281548110613d5157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613da057fe5b906000526020600020906004020160030154604051613dbf9190617594565b60405180910390a25b5050600101613c27565b505b835115613f1e5760005b8451811015613f1c576000858281518110613df557fe5b60200260200101516001600160a01b03166108fc868481518110613e1557fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613eab57858281518110613e4b57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613e8957fe5b6020026020010151604051613e9e9190617594565b60405180910390a2613f13565b858281518110613eb757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613ef557fe5b6020026020010151604051613f0a9190617594565b60405180910390a25b50600101613dde565b505b5050505050505050505050506000471115613f9a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613f629190617594565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613f98573d6000803e3d6000fd5b505b60006003819055600555815115613fb557613fb5828261522c565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ff257600080fd5b505af1158015614006573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b031660009081526004602052604081205480158061408f575060018082038154811061406f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156140d55782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061138c565b60015460055460001982011180159061412b5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061138c565b60058054600190810190915580548190600019860190811061414957fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159e6565b6000610f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615a1d565b6000826142485750600061143c565b8282028284828161425557fe5b0414610f235760405162461bcd60e51b8152600401610cbc90617169565b600082820183811015610f235760405162461bcd60e51b8152600401610cbc90616d08565b600080600183815481106142a857fe5b906000526020600020906004020160030154905060006001808054905003905060016142d26126d2565b5111614307576000600185815481106142e757fe5b90600052602060002090600402016003018190555060009250505061143c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143409190617594565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561452d576001816001018154811061438157fe5b90600052602060002090600402016001828154811061439c57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061445d57fe5b9060005260206000209060160201600b828154811061447857fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546144cf93838601939082161561010002600019019091160461651f565b506144e260038281019084016013616594565b509050508060010160046000600184815481106144fb57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614363565b50600180548061453957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061458c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906145be60028301826165be565b6145cc600383016000616602565b5050905560008183816145db57fe5b049050801561463f5760015460005b8181101561463c57826001828154811061460057fe5b906000526020600020906004020160030154016001828154811061462057fe5b60009182526020909120600360049092020101556001016145ea565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561468a57816020015b60608152602001906001900390816146755790505b50600b5490915083146146a157925061138c915050565b60005b828110156147b057600b6001600460008985815181106146c057fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106146f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561478c5780601f106147615761010080835404028352916020019161478c565b820191906000526020600020905b81548152906001019060200180831161476f57829003601f168201915b505050505082828151811061479d57fe5b60209081029190910101526001016146a4565b50949350505050565b60005b8281101561490657600082878388016040516020016147dc92919061698d565b6040516020818303038152906040528051906020012060001c816147fc57fe5b069050808501828701146148fd576000898388018151811061481a57fe5b602002602001015190506060898489018151811061483457fe5b602002602001015190508a8388018151811061484c57fe5b60200260200101518b858a018151811061486257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061489157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106148bf57fe5b60200260200101518a858a01815181106148d557fe5b6020026020010181905250808a848901815181106148ef57fe5b602002602001018190525050505b506001016147bc565b5050505050505050565b600980546001908101909155600b80548390811061492a57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061496057fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016149bb9190616971565b60405160208183030381529060405280519060200120836040516020016149e29190616971565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a225760009250614a60565b600160208701838101602088015b600284838510011415614a5b578051835114614a4f5760009650600093505b60209283019201614a30565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614a935750600019905061138c565b600181039050600060018281548110614aa857fe5b9060005260206000209060040201600301549050600060018381548110614acb57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b24908590617594565b60405180910390a280614b3c5782935050505061138c565b6000818381614b4757fe5b0490508015614c035760005b84811015614ba5578160018281548110614b6957fe5b9060005260206000209060040201600301540160018281548110614b8957fe5b6000918252602090912060036004909202010155600101614b53565b50600180549085015b81811015614c00578260018281548110614bc457fe5b9060005260206000209060040201600301540160018281548110614be457fe5b6000918252602090912060036004909202010155600101614bae565b50505b5091949350505050565b614c15616611565b506040805180820190915281518152602082810190820152919050565b614c3a6164ca565b614c4382615a49565b614c4c57600080fd5b6000614c5b8360200151615a83565b60208085015160408051808201909152868152920190820152915050919050565b6000614c86616611565b505080518051602091820151919092015191011190565b614ca5616611565b614cae82614c7c565b614cb757600080fd5b60208201516000614cc782615ae6565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614d0057508151602110155b614d0957600080fd5b6000614d188360200151615a83565b90508083600001511015614d3e5760405162461bcd60e51b8152600401610cbc90617327565b8251602080850151830180519284900392918310156147b057506020919091036101000a90049392505050565b6060614d7682615a49565b614d7f57600080fd5b6000614d8a83615bc7565b9050606081604051908082528060200260200182016040528015614dc857816020015b614db5616611565b815260200190600190039081614dad5790505b5090506000614dda8560200151615a83565b60208601510190506000805b84811015614e3157614df783615ae6565b9150604051806040016040528083815260200184815250848281518110614e1a57fe5b602090810291909101015291810191600101614de6565b509195945050505050565b614e446164ea565b60606000614e506164ea565b6060614e5a6164ca565b614e6387614c32565b90506000805b614e7283614c7c565b15614f475780614e9d57614e8d614e8884614c9d565b615c23565b6001600160a01b03168552614f3f565b8060011415614ec557614eb2614e8884614c9d565b6001600160a01b03166020860152614f3f565b8060021415614eed57614eda614e8884614c9d565b6001600160a01b03166040860152614f3f565b8060031415614f1957614f0261321d84614c9d565b6001600160401b0316606086015260019150614f3f565b8060041415614f3a57614f33614f2e84614c9d565b615c3d565b9350614f3f565b614f47565b600101614e69565b50929791965091945092505050565b606061143c614f6483615cad565b615d93565b6060815160001415614f8a575060408051600081526020810190915261138c565b606082600081518110614f9957fe5b602002602001015190506000600190505b8351811015614fda57614fd082858381518110614fc357fe5b6020026020010151615de5565b9150600101614faa565b50610f23614fed825160c060ff16615e62565b82615de5565b6060806000808080806150046127db565b6001549091505b801561511257600181039250600b838154811061502457fe5b600091825260209091206001601690920201015460ff1661504457615109565b6001838154811061505157fe5b60009182526020909120600490910201546001600160a01b03169450615078858484612fe1565b935083158061508b575060018a51038610155b1561509557615109565b60005b8a5181101561510757856001600160a01b03168b82815181106150b757fe5b6020026020010151600001516001600160a01b031614156150ff5760018b82815181106150e057fe5b6020908102919091010151901515608090910152600190960195615107565b600101615098565b505b6000190161500b565b508489510360405190808252806020026020018201604052801561515057816020015b61513d6164ea565b8152602001906001900390816151355790505b5096508489510360405190808252806020026020018201604052801561518a57816020015b60608152602001906001900390816151755790505b5095506000915060005b895181101561521e578981815181106151a957fe5b602002602001015160800151615216578981815181106151c557fe5b60200260200101518884815181106151d957fe5b60200260200101819052508881815181106151f057fe5b602002602001015187848151811061520457fe5b60200260200101819052508260010192505b600101615194565b5050505050505b9250929050565b600154825160005b828110156153495760016152466164ea565b6001838154811061525357fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561531d578781815181106152e357fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615315576000925061531d565b6001016152cf565b50811561533f5780516001600160a01b03166000908152600460205260408120555b5050600101615234565b508082111561540857805b8281101561540657600180548061536757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806153ba57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906153ec60028301826165be565b6153fa600383016000616602565b50509055600101615354565b505b60008183106154175781615419565b825b905060005b81811015615788576154cb86828151811061543557fe5b60200260200101516001838154811061544a57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615f34565b61567f5780600101600460008884815181106154e357fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061551f57fe5b60200260200101516001828154811061553457fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106155ef57fe5b6020026020010151600b828154811061560457fe5b906000526020600020906016020160020190805190602001906156289291906163ff565b506000600b828154811061563857fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061566957fe5b6000918252602090912060169091020155615780565b61571085828151811061568e57fe5b6020026020010151600b83815481106156a357fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b61575b5784818151811061572057fe5b6020026020010151600b828154811061573557fe5b906000526020600020906016020160020190805190602001906157599291906163ff565b505b60006001828154811061576a57fe5b9060005260206000209060040201600301819055505b60010161541e565b5082821115615960576157996163d0565b835b8381101561595d578581815181106157af57fe5b6020026020010151826040018190525060018782815181106157cd57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020617647833981519152810191825585830151600080516020617c768339815191528201805491151560ff199092169190911790559285015180518694929361590393600080516020617667833981519152019201906163ff565b5060608201516159199060038301906013616479565b505050806001016004600089848151811061593057fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161579b565b50505b615968615fb5565b615970616197565b6000600981905560015493505b838110156159de576000600b828154811061599457fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106159c557fe5b600091825260209091206016909102015560010161597d565b505050505050565b60008183615a075760405162461bcd60e51b8152600401610cbc9190616b12565b506000838581615a1357fe5b0495945050505050565b60008184841115615a415760405162461bcd60e51b8152600401610cbc9190616b12565b505050900390565b8051600090615a5a5750600061138c565b6020820151805160001a9060c0821015615a795760009250505061138c565b5060019392505050565b8051600090811a6080811015615a9d57600091505061138c565b60b8811080615ab8575060c08110801590615ab8575060f881105b15615ac757600191505061138c565b60c0811015615adb5760b51901905061138c565b60f51901905061138c565b80516000908190811a6080811015615b015760019150615bc0565b60b8811015615b1657607e1981019150615bc0565b60c0811015615b6757600060b78203600186019550806020036101000a865104915060018101820193505080831015615b615760405162461bcd60e51b8152600401610cbc906170b6565b50615bc0565b60f8811015615b7c5760be1981019150615bc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615bbe5760405162461bcd60e51b8152600401610cbc906170b6565b505b5092915050565b8051600090615bd85750600061138c565b60008090506000615bec8460200151615a83565b602085015185519181019250015b80821015615c1a57615c0b82615ae6565b82019150826001019250615bfa565b50909392505050565b8051600090601514615c3457600080fd5b61143c82614ceb565b8051606090615c4b57600080fd5b6000615c5a8360200151615a83565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615c91576020820181803683370190505b50905060008160200190506147b0848760200151018285616385565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615cf157506018615d15565b6fffffffffffffffffffffffffffffffff198416615d1157506010615d15565b5060005b6020811015615d4b57818181518110615d2a57fe5b01602001516001600160f81b03191615615d4357615d4b565b600101615d15565b60008160200390506060816040519080825280601f01601f191660200182016040528015615d80576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615dc55750607f60f81b82600081518110615db357fe5b01602001516001600160f81b03191611155b15615dd157508061138c565b61143c615de38351608060ff16615e62565b835b6060806040519050835180825260208201818101602087015b81831015615e16578051835260209283019201615dfe565b50855184518101855292509050808201602086015b81831015615e43578051835260209283019201615e2b565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615e8c5760405162461bcd60e51b8152600401610cbc90616eba565b60408051600180825281830190925260609160208201818036833701905050905060378411615ee65782840160f81b81600081518110615ec857fe5b60200101906001600160f81b031916908160001a905350905061143c565b6060615ef185615cad565b90508381510160370160f81b82600081518110615f0a57fe5b60200101906001600160f81b031916908160001a905350615f2b8282615de5565b95945050505050565b805182516000916001600160a01b039182169116148015615f6e575081602001516001600160a01b031683602001516001600160a01b0316145b8015615f93575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f235750506060908101519101516001600160401b0390811691161490565b6012546013548082111561600057805b82811015615ffe576012805480615fd857fe5b600190038181906000526020600020016000615ff491906165be565b9055600101615fc5565b505b600081831061600f5781616011565b825b905060005b81811015616129576160ce6012828154811061602e57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156160bc5780601f10616091576101008083540402835291602001916160bc565b820191906000526020600020905b81548152906001019060200180831161609f57829003601f168201915b505050505060138381548110612a4557fe5b61612157601381815481106160df57fe5b90600052602060002001601282815481106160f657fe5b90600052602060002001908054600181600116156101000203166002900461611f92919061651f565b505b600101616016565b5082821115610cdc57825b82811015612f015760126013828154811061614b57fe5b600091825260208083208454600181810187559585529190932092909101805461618e94939092019290916002610100928216159290920260001901160461651f565b50600101616134565b601354600b54808211156161e257805b828110156161e05760138054806161ba57fe5b6001900381819060005260206000200160006161d691906165be565b90556001016161a7565b505b60008183106161f157816161f3565b825b905060005b81811015616312576162b06013828154811061621057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561629e5780601f106162735761010080835404028352916020019161629e565b820191906000526020600020905b81548152906001019060200180831161628157829003601f168201915b5050505050600b83815481106156a357fe5b61630a57600b81815481106162c157fe5b9060005260206000209060160201600201601382815481106162df57fe5b90600052602060002001908054600181600116156101000203166002900461630892919061651f565b505b6001016161f8565b5082821115610cdc57825b82811015612f01576013600b828154811061633457fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461637c9593909401939092600019908216156101000201160461651f565b5060010161631d565b8061638f57610cdc565b5b602081106163af578251825260209283019290910190601f1901616390565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016163fa61662b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061644057805160ff191683800117855561646d565b8280016001018555821561646d579182015b8281111561646d578251825591602001919060010190616452565b5061281692915061664a565b826013810192821561646d579160200282018281111561646d578251825591602001919060010190616452565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806164dd616611565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616558578054855561646d565b8280016001018555821561646d57600052602060002091601f016020900482015b8281111561646d578254825591600101919060010190616579565b826013810192821561646d579182018281111561646d578254825591600101919060010190616579565b50805460018160011615610100020316600290046000825580601f106165e45750611598565b601f016020900490600052602060002090810190611598919061664a565b5061159890601381019061664a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127bb91905b808211156128165760008155600101616650565b60008083601f840112616675578182fd5b5081356001600160401b0381111561668b578182fd5b602083019150836020808302850101111561522557600080fd5b60008083601f8401126166b6578182fd5b5081356001600160401b038111156166cc578182fd5b60208301915083602082850101111561522557600080fd5b6000602082840312156166f5578081fd5b81356001600160a01b0381168114610f23578182fd5b60008060008060408587031215616720578283fd5b84356001600160401b0380821115616736578485fd5b61674288838901616664565b9096509450602087013591508082111561675a578384fd5b5061676787828801616664565b95989497509550505050565b600060208284031215616784578081fd5b81518015158114610f23578182fd5b600080602083850312156167a5578182fd5b82356001600160401b038111156167ba578283fd5b6167c6858286016166a5565b90969095509350505050565b600080600080604085870312156167e7578384fd5b84356001600160401b03808211156167fd578586fd5b616809888389016166a5565b90965094506020870135915080821115616821578384fd5b50616767878288016166a5565b60006020828403121561683f578081fd5b5035919050565b600060208284031215616857578081fd5b5051919050565b60008060408385031215616870578182fd5b505080516020909101519092909150565b600080600060408486031215616895578283fd5b833560ff811681146168a5578384fd5b925060208401356001600160401b038111156168bf578283fd5b6168cb868287016166a5565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169105781516001600160a01b0316875295820195908201906001016168eb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261695d8160208601602086016175fa565b601f01601f19169290920160200192915050565b600082516169838184602087016175fa565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f2360208301846168d8565b600060408252616a3060408301856168d8565b602083820381850152818551808452828401915082838202850101838801865b83811015616a7e57601f19878403018552616a6c838351616945565b94860194925090850190600101616a50565b50909998505050505050505050565b600060808252616aa060808301876168d8565b828103602084810191909152865180835287820192820190845b81811015616ad657845183529383019391830191600101616aba565b50508481036040860152616aea81886168d8565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f236020830184616945565b600060408252616b3960408301868861691b565b8281036020840152616b4c81858761691b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615f2b6060830184616945565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615f2b60408301848661691b565b60005b838110156176155781810151838201526020016175fd565b83811115612f01575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa2646970667358221220f34958dbcda05e6d94770a38da790183bc12f970a53f415eb7a8e4ba99cbf89e64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/plato/types.go b/core/systemcontracts/plato/types.go new file mode 100644 index 0000000000..89eb51b390 --- /dev/null +++ b/core/systemcontracts/plato/types.go @@ -0,0 +1,19 @@ +package plato + +import _ "embed" + +// contract codes for Mainnet upgrade +var ( + //go:embed mainnet/ValidatorContract + MainnetValidatorContract string + //go:embed mainnet/SlashContract + MainnetSlashContract string +) + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/ValidatorContract + ChapelValidatorContract string + //go:embed chapel/SlashContract + ChapelSlashContract string +) diff --git a/core/systemcontracts/ramanujan/chapel/CrossChainContract b/core/systemcontracts/ramanujan/chapel/CrossChainContract new file mode 100644 index 0000000000..71fbb596d9 --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/CrossChainContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102485760003560e01c8063863fe4ab1161013b578063c81b1662116100b8578063e3b048051161007c578063e3b048051461072c578063f7a251d71461074c578063f9a2bbc7146107c4578063fc3e5908146107cc578063fd6a6879146107d457610248565b8063c81b1662146106dd578063d31f968d146106e5578063d76a867514610714578063dc927faf1461071c578063e1c7392a1461072457610248565b8063a78abc16116100ff578063a78abc16146105d3578063ab51bb96146105db578063ac431751146105e3578063b0355f5b146103ff578063c27cdcfb146106a157610248565b8063863fe4ab146105b35780638cc8f561146104b657806396713da9146105bb5780639dc09262146105c3578063a1a11bf5146105cb57610248565b8063493279b1116101c957806370fd5bad1161018d57806370fd5bad146104b657806374f079b8146104be57806375d47a0a146104c65780637942fd05146104ce57806384013b6a146104d657610248565b8063493279b11461045f5780634bf6c8821461047e57806351e80672146104865780636e47a51a1461048e5780636e47b482146104ae57610248565b8063308325f411610210578063308325f4146102cf5780633bdc47a6146102d75780633dffc387146103ff578063422f90501461040757806343756e5c1461043b57610248565b806305e682581461024d5780630bee7a671461026b57806314b3023b1461028c57806322556cdc146102a65780632ff32aea146102ae575b600080fd5b6102556107dc565b6040805160ff9092168252519081900360200190f35b6102736107e1565b6040805163ffffffff9092168252519081900360200190f35b6102946107e6565b60408051918252519081900360200190f35b6102946107ec565b6102b66107f1565b60408051600792830b90920b8252519081900360200190f35b6102946107fa565b61038a600480360360608110156102ed57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561031657600080fd5b82018360208201111561032857600080fd5b803590602001918460018302840111600160201b8311171561034957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610800945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610255610876565b6104276004803603602081101561041d57600080fd5b503560ff1661087b565b604080519115158252519081900360200190f35b610443610890565b604080516001600160a01b039092168252519081900360200190f35b610467610896565b6040805161ffff9092168252519081900360200190f35b61025561089b565b6104436108a0565b610443600480360360208110156104a457600080fd5b503560ff166108a6565b6104436108c1565b6102556108c7565b6102946108cc565b6104436108d2565b6102556108d8565b6105b1600480360360a08110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460018302840111600160201b8311171561053957600080fd5b919390929091602081019035600160201b81111561055657600080fd5b82018360208201111561056857600080fd5b803590602001918460018302840111600160201b8311171561058957600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166108dd565b005b610294611a8d565b610255611a95565b610443611a9a565b610443611aa0565b610427611aa6565b6102736107dc565b6105b1600480360360408110156105f957600080fd5b810190602081018135600160201b81111561061357600080fd5b82018360208201111561062557600080fd5b803590602001918460018302840111600160201b8311171561064657600080fd5b919390929091602081019035600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b509092509050611aaf565b6106c1600480360360208110156106b757600080fd5b503560ff16612051565b604080516001600160401b039092168252519081900360200190f35b61044361206c565b610427600480360360408110156106fb57600080fd5b5080356001600160a01b0316906020013560ff16612072565b61038a612092565b6104436120b1565b6105b16120b7565b6106c16004803603602081101561074257600080fd5b503560ff1661246e565b6105b16004803603606081101561076257600080fd5b60ff8235169190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460018302840111600160201b831117156107b957600080fd5b919350915035612489565b6104436125da565b6102556125e0565b6104436125e5565b600081565b606481565b60015481565b603281565b60045460070b81565b60025481565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015610838576020820181803683370190505b506021810186905260018101879052828152905060418101600061085b866125eb565b50905061086a818388516125f5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606081565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b60035481565b61100881565b600b81565b60005460ff16610930576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d602081101561099957600080fd5b50516109ec576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610a5c576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b5051610b385760405162461bcd60e51b8152600401808060200182810382526023815260200180612bcc6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610ba7576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60608c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805163cba510a960e01b81526001600160401b038f1660048201529051939450610cce93611003935063cba510a992506024808301926020929190829003018186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505160408051808201909152600381526269626360e81b6020820152610cc78c8c612636565b858561267d565b610d16576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038c16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b5051905088600080806060610da08861277a565b935093509350935083610e61578460ff168f6001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8a6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1a578181015183820152602001610e02565b50505050905090810190601f168015610e475780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050611a7f565b8460ff168f6001600160401b03167f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad4085604051808260ff1660ff16815260200191505060405180910390a360ff83166113ea5760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015610f32578181015183820152602001610f1a565b50505050905090810190601f168015610f5f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610f7f57600080fd5b505af192505050801561106357506040513d6000823e601f3d908101601f191682016040526020811015610fb257600080fd5b8101908080516040519392919084600160201b821115610fd157600080fd5b908301906020820185811115610fe657600080fd5b8251600160201b811182820188101715610fff57600080fd5b82525081516020918201929091019080838360005b8381101561102c578181015183820152602001611014565b50505050905090810190601f1680156110595780820380516001836020036101000a031916815260200191505b5060405250505060015b611375576040516000815260443d101561107f5750600061111a565b60046000803e60005160e01c6308c379a081146110a057600091505061111a565b60043d036004833e81513d60248201116001600160401b03821117156110cb5760009250505061111a565b80830180516001600160401b038111156110ec57600094505050505061111a565b8060208301013d860181111561110a5760009550505050505061111a565b601f01601f191660405250925050505b806111255750611237565b60ff871660009081526007602052604081205461115c916001600160401b039091169089906111579060029088610800565b61282a565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156111f75781810151838201526020016111df565b50505050905090810190601f1680156112245780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611370565b3d808015611261576040519150601f19603f3d011682016040523d82523d6000602084013e611266565b606091505b5060ff8716600090815260076020526040812054611299916001600160401b039091169089906111579060029088610800565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561133457818101518382015260200161131c565b50505050905090810190601f1680156113615780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6113e4565b8051156113e25760ff87166000908152600760205260408120546113ae916001600160401b039091169089906111579060019086610800565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506119b8565b60ff83166001141561168e5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114c157600080fd5b505af19250505080156114d2575060015b6113e4576040516000815260443d10156114ee57506000611589565b60046000803e60005160e01c6308c379a0811461150f576000915050611589565b60043d036004833e81513d60248201116001600160401b038211171561153a57600092505050611589565b80830180516001600160401b0381111561155b576000945050505050611589565b8060208301013d860181111561157957600095505050505050611589565b601f01601f191660405250925050505b8061159457506115f9565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156111f75781810151838201526020016111df565b3d808015611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561133457818101518382015260200161131c565b60ff8316600214156119b85760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b83811015611718578181015183820152602001611700565b50505050905090810190601f1680156117455780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561176557600080fd5b505af1925050508015611776575060015b6119b6576040516000815260443d10156117925750600061182d565b60046000803e60005160e01c6308c379a081146117b357600091505061182d565b60043d036004833e81513d60248201116001600160401b03821117156117de5760009250505061182d565b80830180516001600160401b038111156117ff57600094505050505061182d565b8060208301013d860181111561181d5760009550505050505061182d565b601f01601f191660405250925050505b8061183857506118e1565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118a1578181015183820152602001611889565b50505050905090810190601f1680156118ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506119b6565b3d80801561190b576040519150601f19603f3d011682016040523d82523d6000602084013e611910565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561197a578181015183820152602001611962565b50505050905090810190601f1680156119a75780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e69189913391879116806119ea575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b505050505050505050505b505050505050505050505050565b630100600081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611aef5760405162461bcd60e51b815260040180806020018281038252602e815260200180612b22602e913960400191505060405180910390fd5b611b5884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506129809050565b15611bf357604080516020601f8401819004810282018101909252828152600091611b9b91858580838501838280828437600092019190915250612a6792505050565b90506127108111158015611bb05750600a8110155b611beb5760405162461bcd60e51b8152600401808060200182810382526032815260200180612b9a6032913960400191505060405180910390fd5b600155611fbf565b611c5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506129809050565b15611de457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611cdf5760405162461bcd60e51b815260040180806020018281038252605a815260200180612ac8605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611cfd81612a6c565b611d4e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050611fbf565b611e5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506129809050565b15611f8257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050611ed45760405162461bcd60e51b815260040180806020018281038252604a815260200180612b50604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015611f78576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050611fbf565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff161561210f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff166124dc576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166125395760405162461bcd60e51b8152600401808060200182810382526031815260200180612a976031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261259e9284928a9261115792909189918c908c908190840183828082843760009201919091525061080092505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b60208110612615578251825260209283019290910190601f19016125f6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100600060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561268c57506000612771565b606082518451865160800101016040519080825280601f01601f1916602001820160405280156126c3576020820181803683370190505b50905060006126d182612a72565b6020808901518252019050866000806126e9896125eb565b80865260209095019490925090506127028285836125f5565b9283019261270f886125eb565b80865260209095019490925090506127288285836125f5565b9283018a81526020019261273b876125eb565b909250905061274b8285836125f5565b508351602001612759612a78565b60208183886065600019fa5051600114955050505050505b95945050505050565b600080600060606021855110156127aa575050604080516000808252602082019092529092508291508190612823565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156127f5576020820181803683370190505b5090506000612803826125eb565b509050612815858260218d51036125f5565b506001975091955093509150505b9193509193565b600254431115612869576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556128aa565b600380546001908101918290555410156128aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606085604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612940578181015183820152602001612928565b50505050905090810190601f16801561296d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106129b55780518252601f199092019160209182019101612996565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122033c2492ac02e70488d9ed3adb95888d7f5998dff786cf03d72be0cde759a14d064736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/chapel/GovHubContract b/core/systemcontracts/ramanujan/chapel/GovHubContract new file mode 100644 index 0000000000..3a045e268d --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/GovHubContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506004361061018e5760003560e01c8063831d65d1116100de578063ab51bb9611610097578063dc927faf11610071578063dc927faf14610486578063f9a2bbc71461048e578063fc3e590814610496578063fd6a68791461049e5761018e565b8063ab51bb96146103fc578063c81b166214610404578063c8509d811461040c5761018e565b8063831d65d11461034457806396713da9146103c05780639ab1a373146103c85780639dc09262146103d0578063a1a11bf5146103d8578063a78abc16146103e05761018e565b8063493279b11161014b5780636e47b482116101255780636e47b4821461032457806370fd5bad1461032c57806375d47a0a146103345780637942fd051461033c5761018e565b8063493279b1146102f55780634bf6c8821461031457806351e806721461031c5761018e565b80630bee7a67146101935780631182b875146101b45780633a21baae146102a35780633dffc387146102ab57806343756e5c146102c95780634900c4ea146102ed575b600080fd5b61019b6104a6565b6040805163ffffffff9092168252519081900360200190f35b61022e600480360360408110156101ca57600080fd5b60ff82351691908101906040810160208201356401000000008111156101ef57600080fd5b82018360208201111561020157600080fd5b8035906020019184600183028401116401000000008311171561022357600080fd5b5090925090506104ab565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b61059a565b6102b361059f565b6040805160ff9092168252519081900360200190f35b6102d16105a4565b604080516001600160a01b039092168252519081900360200190f35b6102b36105aa565b6102fd6105af565b6040805161ffff9092168252519081900360200190f35b6102b36105b4565b6102d16105b9565b6102d16105bf565b6102b36105c5565b6102d16105ca565b6102b36105d0565b6103be6004803603604081101561035a57600080fd5b60ff823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b5090925090506105d5565b005b6102b3610667565b61019b61066c565b6102d1610671565b6102d1610677565b6103e861067d565b604080519115158252519081900360200190f35b61019b6105aa565b6102d1610686565b6103be6004803603604081101561042257600080fd5b60ff823516919081019060408101602082013564010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b50909250905061068c565b6102d1610703565b6102d1610709565b6102b361070f565b6102d1610714565b606481565b606033612000146104ed5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6104f5611382565b600061053685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071a92505050565b91509150806105525761054960646107e0565b92505050610593565b600061055d8361084a565b905063ffffffff811661058457505060408051600081526020810190915291506105939050565b61058d816107e0565b93505050505b9392505050565b606681565b600181565b61100181565b600081565b606081565b600881565b61200081565b61100581565b600281565b61100881565b600b81565b33612000146106155760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61100281565b33612000146106cc5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806114166023913960400191505060405180910390fd5b61100381565b61100081565b600381565b61100481565b610722611382565b600061072c611382565b6107346113ac565b61074561074086610beb565b610c10565b90506000805b61075483610c5a565b156107d357806107765761076f61076a84610c7b565b610cc9565b84526107cb565b80600114156107955761078b61076a84610c7b565b60208501526107cb565b80600214156107c6576107af6107aa84610c7b565b610d42565b6001600160a01b03166040850152600191506107cb565b6107d3565b60010161074b565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816107fa5790505090506108208363ffffffff16610d62565b8160008151811061082d57fe5b602002602001018190525061084181610d75565b9150505b919050565b60006108598260400151610dff565b6108c557604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610845565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561093257818101518382015260200161091a565b50505050905090810190601f16801561095f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561099257818101518382015260200161097a565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156109e057600080fd5b505af19250505080156109f1575060015b610be3576040516000815260443d1015610a0d57506000610aaa565b60046000803e60005160e01c6308c379a08114610a2e576000915050610aaa565b60043d036004833e81513d602482011167ffffffffffffffff82111715610a5a57600092505050610aaa565b808301805167ffffffffffffffff811115610a7c576000945050505050610aaa565b8060208301013d8601811115610a9a57600095505050505050610aaa565b601f01601f191660405250925050505b80610ab55750610b58565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b14578181015183820152602001610afc565b50505050905090810190601f168015610b415780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610845565b3d808015610b82576040519150601f19603f3d011682016040523d82523d6000602084013e610b87565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610b14578181015183820152602001610afc565b506000919050565b610bf36113cc565b506040805180820190915281518152602082810190820152919050565b610c186113ac565b610c2182610e05565b610c2a57600080fd5b6000610c398360200151610e3f565b60208085015160408051808201909152868152920190820152915050919050565b6000610c646113cc565b505080518051602091820151919092015191011190565b610c836113cc565b610c8c82610c5a565b610c9557600080fd5b60208201516000610ca582610ea2565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610cd757600080fd5b6000610ce68360200151610e3f565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610d1d576020820181803683370190505b5090506000816020019050610d39848760200151018285610fd5565b50949350505050565b8051600090601514610d5357600080fd5b610d5c82611020565b92915050565b6060610d5c610d70836110d5565b6111bb565b6060815160001415610d965750604080516000815260208101909152610845565b606082600081518110610da557fe5b602002602001015190506000600190505b8351811015610de657610ddc82858381518110610dcf57fe5b602002602001015161120d565b9150600101610db6565b50610841610df9825160c060ff1661128a565b8261120d565b3b151590565b8051600090610e1657506000610845565b6020820151805160001a9060c0821015610e3557600092505050610845565b5060019392505050565b8051600090811a6080811015610e59576000915050610845565b60b8811080610e74575060c08110801590610e74575060f881105b15610e83576001915050610845565b60c0811015610e975760b519019050610845565b60f519019050610845565b80516000908190811a6080811015610ebd5760019150610fce565b60b8811015610ed257607e1981019150610fce565b60c0811015610f4c57600060b78203600186019550806020036101000a865104915060018101820193505080831015610f46576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50610fce565b60f8811015610f615760be1981019150610fce565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610fcc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80610fdf57610662565b5b60208110610fff578251825260209283019290910190601f1901610fe0565b915181516020939093036101000a6000190180199091169216919091179052565b80516000901580159061103557508151602110155b61103e57600080fd5b600061104d8360200151610e3f565b905080836000015110156110a8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610d3957506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166111195750601861113d565b6fffffffffffffffffffffffffffffffff1984166111395750601061113d565b5060005b60208110156111735781818151811061115257fe5b01602001516001600160f81b0319161561116b57611173565b60010161113d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156111a8576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156111ed5750607f60f81b826000815181106111db57fe5b01602001516001600160f81b03191611155b156111f9575080610845565b610d5c61120b8351608060ff1661128a565b835b6060806040519050835180825260208201818101602087015b8183101561123e578051835260209283019201611226565b50855184518101855292509050808201602086015b8183101561126b578051835260209283019201611253565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106112da576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116113345782840160f81b8160008151811061131657fe5b60200101906001600160f81b031916908160001a9053509050610d5c565b606061133f856110d5565b90508381510160370160f81b8260008151811061135857fe5b60200101906001600160f81b031916908160001a905350611379828261120d565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b60405180604001604052806113bf6113cc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a2646970667358221220ea2b2b402a564a222b3f3e7c0f671622652543c9c5f6cb6c7b8db265ae9ebe4564736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/chapel/LightClientContract b/core/systemcontracts/ramanujan/chapel/LightClientContract new file mode 100644 index 0000000000..a0cba2c48e --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/LightClientContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102115760003560e01c8063a78abc1611610125578063dda83148116100ad578063e405bbc31161007c578063e405bbc314610681578063ea54b2aa14610689578063f9a2bbc714610691578063fc3e590814610699578063fd6a6879146106a157610211565b8063dda8314814610609578063df5fe7041461062f578063e1c7392a14610655578063e2761af01461065d57610211565b8063c81b1662116100f4578063c81b166214610534578063cba510a91461053c578063d816987914610562578063da8d08f0146105db578063dc927faf1461060157610211565b8063a78abc1614610444578063ab51bb9614610460578063ac43175114610468578063adc879e91461052c57610211565b8063564b81ef116101a857806375d47a0a1161017757806375d47a0a1461041c5780637942fd051461042457806396713da91461042c5780639dc0926214610434578063a1a11bf51461043c57610211565b8063564b81ef146102ca5780635c5ae8db146103475780636e47b4821461040c57806370fd5bad1461041457610211565b806343756e5c116101e457806343756e5c14610277578063493279b11461029b5780634bf6c882146102ba57806351e80672146102c257610211565b80630bee7a67146102165780632657e9b61461023757806333f7798d146102515780633dffc38714610259575b600080fd5b61021e6106a9565b6040805163ffffffff9092168252519081900360200190f35b61023f6106ae565b60408051918252519081900360200190f35b61023f6106b9565b6102616106bf565b6040805160ff9092168252519081900360200190f35b61027f6106c4565b604080516001600160a01b039092168252519081900360200190f35b6102a36106ca565b6040805161ffff9092168252519081900360200190f35b6102616106cf565b61027f6106d4565b6102d26106da565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030c5781810151838201526020016102f4565b50505050905090810190601f1680156103395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61036d6004803603602081101561035d57600080fd5b50356001600160401b03166107e6565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ce5781810151838201526020016103b6565b50505050905090810190601f1680156103fb5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61027f6108a1565b6102616108a7565b61027f6108ac565b6102616108b2565b6102616108b7565b61027f6108bc565b61027f6108c2565b61044c6108c8565b604080519115158252519081900360200190f35b61021e6108d1565b61052a6004803603604081101561047e57600080fd5b81019060208101813564010000000081111561049957600080fd5b8201836020820111156104ab57600080fd5b803590602001918460018302840111640100000000831117156104cd57600080fd5b9193909290916020810190356401000000008111156104eb57600080fd5b8201836020820111156104fd57600080fd5b8035906020019184600183028401116401000000008311171561051f57600080fd5b5090925090506108d6565b005b61023f610b8f565b61027f610b95565b61023f6004803603602081101561055257600080fd5b50356001600160401b0316610b9b565b61044c6004803603604081101561057857600080fd5b81019060208101813564010000000081111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460018302840111640100000000831117156105c757600080fd5b9193509150356001600160401b0316610bba565b61027f600480360360208110156105f157600080fd5b50356001600160401b031661139b565b61027f6113b6565b61027f6004803603602081101561061f57600080fd5b50356001600160401b03166113bc565b61044c6004803603602081101561064557600080fd5b50356001600160401b03166113e0565b61052a611422565b6106656115c7565b604080516001600160401b039092168252519081900360200190f35b6106656115d6565b6102d26115ec565b61027f611609565b61026161160f565b61027f611614565b606481565b662386f26fc1000081565b60055481565b600181565b61100181565b606081565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561075057828160ff168151811061072457fe5b01602001516001600160f81b0319161561074357600190910190610748565b610750565b600101610709565b5060608160ff166040519080825280601f01601f191660200182016040528015610781576020820181803683370190505b50905060005b8260ff168160ff1610156107dd57838160ff16815181106107a457fe5b602001015160f81c60f81b828260ff16815181106107be57fe5b60200101906001600160f81b031916908160001a905350600101610787565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905084565b61100581565b600281565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661092d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461096d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac6602e913960400191505060405180910390fd5b6109e184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e676500000000006020820152915061161a9050565b15610ac05760208114610a255760405162461bcd60e51b815260040180806020018281038252602e815260200180611a65602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a639185858083850183828082843760009201919091525061170192505050565b9050600081118015610a7d5750670de0b6b3a76400008111155b610ab85760405162461bcd60e51b815260040180806020018281038252602f815260200180611af4602f913960400191505060405180910390fd5b600555610afd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d6020811015610c2757600080fd5b5051610c7a576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610cee576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b236026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610d56611863565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610e5957506003546001600160401b0390811690831610155b15610f3a5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b5050505050815250509050610e28565b6060810151516110315780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f810183900483028401830190945283835293955090929190830182828015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b505050506060830182905250516110315760405162461bcd60e51b8152600401808060200182810382526021815260200180611a446021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611070576020820181803683370190505b509050600061107e82611706565b905061108c8486838661170c565b6110c75760405162461bcd60e51b81526004018080602001828103825260238152602001806119416023913960400191505060405180910390fd5b6000838201915061110d8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177892505050565b9450905061111c818386611782565b8251602001935061112b611889565b6110008186866064600019fa61114057600080fd5b805194506000600160f81b8616156111cf5750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d60208110156111cc57600080fd5b50505b856001600160401b0316955060208201935060006111ef858884156117c3565b90985090506001600160401b03808216908c161461123e5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a936033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b93926112c59260038501929101906118a8565b50506003546001600160401b03600160401b9091048116908d161115905061130d576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b031615158061141c57506003546001600160401b038381169116145b92915050565b60005460ff161561147a576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061149f60405180610100016040528060e0815260200161196460e09139611778565b815160045590925090506114b1611863565b60006114bf848460006117c3565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff191694169390931783558086015191830191909155918401516002820155606084015180519496509294508593909261152b9260038501929101906118a8565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e0815260200161196460e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b6020831061164f5780518252601f199092019160209182019101611630565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106116bd5780518252601f19909201916020918201910161169e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b600084606001515182840103925060008061172a8760600151611778565b909250905061173a828683611782565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b602081106117a2578251825260209283019290910190601f1901611783565b915181516020939093036101000a6000190180199091169216919091179052565b6117cb611863565b60088401516028850151604890950180519095600092916117ea611863565b6020810183905260408101829052866118555760008060688a036040519080825280601f01601f19166020018201604052801561182e576020820181803683370190505b506060840181905261183f90611778565b909250905061185260208c018383611782565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118e957805160ff1916838001178555611916565b82800160010185558215611916579182015b828111156119165782518255916020019190600101906118fb565b50611922929150611926565b5090565b6107e391905b80821115611922576000815560010161192c56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e676563616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a26469706673582212205276b0300b4926074c5521abe49ba680eda1820c6f75c2779994658ed250924164736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/chapel/RelayerHubContract b/core/systemcontracts/ramanujan/chapel/RelayerHubContract new file mode 100644 index 0000000000..dae7f8baa2 --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/RelayerHubContract @@ -0,0 +1 @@ +6080604052600436106101c25760003560e01c806395468d26116100f7578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610529578063fb7cfdd71461053e578063fc3e590814610553578063fd6a687914610568576101c2565b8063c81b1662146104d5578063dc927faf146104ea578063e1c7392a146104ff578063e79a198f14610514576101c2565b8063a1a11bf5116100d1578063a1a11bf5146103c7578063a78abc16146103dc578063ab51bb96146103f1578063ac43175114610406576101c2565b806395468d261461038857806396713da91461039d5780639dc09262146103b2576101c2565b8063541d55481161016457806370fd5bad1161013e57806370fd5bad1461033457806375d47a0a146103495780637942fd051461035e5780637ae2308814610373576101c2565b8063541d5548146102b15780636a87d780146102f85780636e47b4821461031f576101c2565b806343756e5c116101a057806343756e5c1461022a578063493279b11461025b5780634bf6c8821461028757806351e806721461029c576101c2565b80630bee7a67146101c75780631aa3a008146101f55780633dffc387146101ff575b600080fd5b3480156101d357600080fd5b506101dc61057d565b6040805163ffffffff9092168252519081900360200190f35b6101fd610582565b005b34801561020b57600080fd5b5061021461077d565b6040805160ff9092168252519081900360200190f35b34801561023657600080fd5b5061023f610782565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b50610270610788565b6040805161ffff9092168252519081900360200190f35b34801561029357600080fd5b5061021461078d565b3480156102a857600080fd5b5061023f610792565b3480156102bd57600080fd5b506102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610798565b604080519115158252519081900360200190f35b34801561030457600080fd5b5061030d6107b6565b60408051918252519081900360200190f35b34801561032b57600080fd5b5061023f6107bc565b34801561034057600080fd5b506102146107c2565b34801561035557600080fd5b5061023f6107c7565b34801561036a57600080fd5b506102146107cd565b34801561037f57600080fd5b5061030d6107d2565b34801561039457600080fd5b5061030d6107df565b3480156103a957600080fd5b506102146107eb565b3480156103be57600080fd5b5061023f6107f0565b3480156103d357600080fd5b5061023f6107f6565b3480156103e857600080fd5b506102e46107fc565b3480156103fd57600080fd5b506101dc610805565b34801561041257600080fd5b506101fd6004803603604081101561042957600080fd5b81019060208101813564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91939092909160208101903564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b50909250905061080a565b3480156104e157600080fd5b5061023f610c2c565b3480156104f657600080fd5b5061023f610c32565b34801561050b57600080fd5b506101fd610c38565b34801561052057600080fd5b506101fd610cba565b34801561053557600080fd5b5061023f610e73565b34801561054a57600080fd5b5061030d610e79565b34801561055f57600080fd5b50610214610e7f565b34801561057457600080fd5b5061023f610e84565b606481565b3360009081526004602052604090205460ff16156105df576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610632576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61063b33610e8a565b156106775760405162461bcd60e51b815260040180806020018281038252602781526020018061109c6027913960400191505060405180910390fd5b3332146106c1576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b60015434146107015760405162461bcd60e51b81526004018080602001828103825260258152602001806110776025913960400191505060405180910390fd5b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004815290849020805460ff1916909217909155825191825291517fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae623157767959496929181900390910190a1565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661085d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461089d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110c3602e913960400191505060405180910390fd5b61090384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e909050565b15610a0657602081146109475760405162461bcd60e51b81526004018080602001828103825260228152602001806110f16022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161098591858580838501838280828437600092019190915250610f7792505050565b90506001811180156109a05750683635c9adc5dea000008111155b80156109ad575060025481115b6109fe576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b9a565b610a6184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e909050565b15610b5d5760208114610abb576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610af991858580838501838280828437600092019190915250610f7792505050565b9050600081118015610b0c575060015481105b610b55576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b9a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c90576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610d15576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d68576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d7061105c565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610db4919063ffffffff610f7c16565b6040518115909202916000818181858888f19350505050158015610ddc573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610e12573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610ec55780518252601f199092019160209182019101610ea6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f335780518252601f199092019160209182019101610f14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610fbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b9392505050565b600081848411156110545760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611019578181015183820152602001611001565b50505050905090810190601f1680156110465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe6465706f7369742076616c7565206973206e6f742065786163746c79207468652073616d65636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a264697066735822122011778451ed6d3e3757ce2e74acfc7fa17bf5d16f07168a6ce073d7c91e583c8c64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/chapel/RelayerIncentivizeContract b/core/systemcontracts/ramanujan/chapel/RelayerIncentivizeContract new file mode 100644 index 0000000000..0290d05a35 --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/RelayerIncentivizeContract @@ -0,0 +1 @@ +6080604052600436106102765760003560e01c80637e146cc51161014f578063af400681116100c1578063e75d72c71161007a578063e75d72c714610795578063e89a3020146107c8578063f9a2bbc7146107f2578063fc3e590814610807578063fd6a68791461081c578063fdd31fcd146108315761027d565b8063af400681146106ed578063bd4cc83014610717578063c81b166214610741578063dc927faf14610756578063dcae76ab1461076b578063e1c7392a146107805761027d565b8063a3c3c0ad11610113578063a3c3c0ad146105b3578063a78abc16146105c8578063a7c6a59d146105dd578063ab51bb96146105f2578063ac43175114610607578063ace9fcc2146106d85761027d565b80637e146cc51461052c578063930e1b091461054157806396713da9146105745780639dc0926214610589578063a1a11bf51461059e5761027d565b806343756e5c116101e85780636e47b482116101ac5780636e47b482146104645780636f93d2e61461047957806370fd5bad146104d857806374f2272d146104ed57806375d47a0a146105025780637942fd05146105175761027d565b806343756e5c146103e4578063493279b1146103f95780634bf6c8821461042557806351e806721461043a578063541333071461044f5761027d565b806312950c461161023a57806312950c46146103165780631b20087c1461032b5780631c643312146103405780633a975612146102825780633dffc3871461038657806340bb43c0146103b15761027d565b8063081e9d131461028257806308f2ec06146102a9578063093f2fc4146102be5780630bee7a67146102d357806310e06a76146103015761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610864565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610869565b3480156102ca57600080fd5b5061029761086e565b3480156102df57600080fd5b506102e8610873565b6040805163ffffffff9092168252519081900360200190f35b34801561030d57600080fd5b50610297610878565b34801561032257600080fd5b5061029761087e565b34801561033757600080fd5b50610297610884565b34801561034c57600080fd5b5061036a6004803603602081101561036357600080fd5b503561088a565b604080516001600160a01b039092168252519081900360200190f35b34801561039257600080fd5b5061039b610864565b6040805160ff9092168252519081900360200190f35b3480156103bd57600080fd5b50610297600480360360208110156103d457600080fd5b50356001600160a01b03166108b1565b3480156103f057600080fd5b5061036a6108c3565b34801561040557600080fd5b5061040e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561043157600080fd5b5061039b6108ce565b34801561044657600080fd5b5061036a6108d3565b34801561045b57600080fd5b50610297610873565b34801561047057600080fd5b5061036a6108d9565b34801561048557600080fd5b506104c46004803603608081101561049c57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108df565b604080519115158252519081900360200190f35b3480156104e457600080fd5b5061039b610cad565b3480156104f957600080fd5b50610297610cb2565b34801561050e57600080fd5b5061036a610cb8565b34801561052357600080fd5b5061039b610cbe565b34801561053857600080fd5b50610297610cc3565b34801561054d57600080fd5b506102976004803603602081101561056457600080fd5b50356001600160a01b0316610cc8565b34801561058057600080fd5b5061039b610cda565b34801561059557600080fd5b5061036a610cdf565b3480156105aa57600080fd5b5061036a610ce5565b3480156105bf57600080fd5b50610297610ceb565b3480156105d457600080fd5b506104c4610cf1565b3480156105e957600080fd5b50610297610cfa565b3480156105fe57600080fd5b506102e8610d00565b34801561061357600080fd5b506106d66004803603604081101561062a57600080fd5b81019060208101813564010000000081111561064557600080fd5b82018360208201111561065757600080fd5b8035906020019184600183028401116401000000008311171561067957600080fd5b91939092909160208101903564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b509092509050610d05565b005b3480156106e457600080fd5b50610297611354565b3480156106f957600080fd5b506102976004803603602081101561071057600080fd5b503561135a565b34801561072357600080fd5b506102976004803603602081101561073a57600080fd5b50356113b5565b34801561074d57600080fd5b5061036a6113ce565b34801561076257600080fd5b5061036a6113d4565b34801561077757600080fd5b506102976113da565b34801561078c57600080fd5b506106d66113e0565b3480156107a157600080fd5b506106d6600480360360208110156107b857600080fd5b50356001600160a01b03166114a9565b3480156107d457600080fd5b5061036a600480360360208110156107eb57600080fd5b5035611602565b3480156107fe57600080fd5b5061036a61160f565b34801561081357600080fd5b5061039b611615565b34801561082857600080fd5b5061036a61161a565b34801561083d57600080fd5b506102976004803603602081101561085457600080fd5b50356001600160a01b0316611620565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b6006818154811061089757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606081565b600881565b61200081565b61100581565b6000805460ff16610937576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f815260200180612164602f913960400191505060405180910390fd5b600082156109fc57604080516309a99b4f60e41b8152611005600482015260248101869052905161100291639a99b4f09160448083019260209291908290030181600087803b1580156109c957600080fd5b505af11580156109dd573d6000803e3d6000fd5b505050506040513d60208110156109f357600080fd5b50519050610a75565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b505190505b600c805460010190556000610a8982611632565b600954909150610a9f908263ffffffff61166116565b600955600a54610ac7908290610abb908563ffffffff61166116565b9063ffffffff6116c216565b600a556001600160a01b038716600090815260056020526040902054610b3357600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610bb157600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610ca057600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610c2b611704565b90506000610c376119e8565b6001600160a01b0389166000908152600d6020526040902054909150610c75908290610c69908563ffffffff61166116565b9063ffffffff61166116565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610d455760405162461bcd60e51b815260040180806020018281038252602e8152602001806120a9602e913960400191505060405180910390fd5b60005460ff16610d865760405162461bcd60e51b81526004018080602001828103825260218152602001806120d76021913960400191505060405180910390fd5b610dfa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611c669050565b15610ec75760208114610e3e5760405162461bcd60e51b81526004018080602001828103825260328152602001806121936032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610e7c91858580838501838280828437600092019190915250611d4d92505050565b9050600254811115610ebf5760405162461bcd60e51b8152600401808060200182810382526060815260200180611f826060913960600191505060405180910390fd5b6001556112c2565b610f2084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160608101909152602280825290925090506120876020830139611c66565b15610ff85760208114610f645760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610fa291858580838501838280828437600092019190915250611d4d92505050565b90508015801590610fb557506001548110155b610ff05760405162461bcd60e51b815260040180806020018281038252606c8152602001806120f8606c913960800191505060405180910390fd5b6002556112c2565b61106c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611c669050565b1561113957602081146110b05760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916110ee91858580838501838280828437600092019190915250611d4d92505050565b90506004548111156111315760405162461bcd60e51b8152600401808060200182810382526056815260200180611fe26056913960600191505060405180910390fd5b6003556112c2565b6111ad84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611c669050565b1561128557602081146111f15760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161122f91858580838501838280828437600092019190915250611d4d92505050565b9050801580159061124257506003548110155b61127d5760405162461bcd60e51b8152600401808060200182810382526061815260200180611f216061913960800191505060405180910390fd5b6004556112c2565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161136b5750806113b0565b81602810801561137c575060508211155b15611389575060286113b0565b60508211801561139a5750606e8211155b156113aa575060788190036113b0565b50600481045b919050565b6000602882116113c65750806113b0565b5060286113b0565b61100281565b61100381565b60095481565b60005460ff1615611438576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611486576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d602052604090205480611508576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506115b85760405161100290819084156108fc029085906000818181858888f19350505050158015611572573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506115ff565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b6008818154811061089757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600061165b60025461164f60015485611d5290919063ffffffff16565b9063ffffffff611dab16565b92915050565b6000828201838110156116bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ded565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561176057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611742575b5050505050905060608151604051908082528060200260200182016040528015611794578160200160208202803683370190505b50905060005b82518110156118215760008382815181106117b157fe5b6020026020010151905060006117eb60056000846001600160a01b03166001600160a01b03168152602001908152602001600020546113b5565b9050808484815181106117fa57fe5b6020908102919091010152611815868263ffffffff61166116565b9550505060010161179a565b50600061183f60045461164f60035488611d5290919063ffffffff16565b9050611851858263ffffffff6116c216565b94508460015b845181101561192857600061188c8761164f8a88868151811061187657fe5b6020026020010151611d5290919063ffffffff16565b90506118d981600d60008986815181106118a257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461166190919063ffffffff16565b600d60008885815181106118e957fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205561191d838263ffffffff6116c216565b925050600101611857565b5061193e81600d6000876000815181106118a257fe5b600d60008660008151811061194f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b84518110156119d057600560008683815181106119a257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611989565b506119dd60066000611ee9565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611a4457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a26575b5050505050905060608151604051908082528060200260200182016040528015611a78578160200160208202803683370190505b50905060005b8251811015611af7576000838281518110611a9557fe5b602002602001015190506000611acf60076000846001600160a01b03166001600160a01b031681526020019081526020016000205461135a565b905080848481518110611ade57fe5b6020908102919091010152949094019350600101611a7e565b506000611b1560045461164f60035488611d5290919063ffffffff16565b9050611b27858263ffffffff6116c216565b94508460015b8451811015611bb1576000611b4c8761164f8a88868151811061187657fe5b9050611b6281600d60008986815181106118a257fe5b600d6000888581518110611b7257fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611ba6838263ffffffff6116c216565b925050600101611b2d565b50611bc781600d6000876000815181106118a257fe5b600d600086600081518110611bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611c595760076000868381518110611c2b57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611c12565b506119dd60086000611ee9565b6000816040516020018082805190602001908083835b60208310611c9b5780518252601f199092019160209182019101611c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d095780518252601f199092019160209182019101611cea565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611d615750600061165b565b82820282848281611d6e57fe5b04146116bb5760405162461bcd60e51b81526004018080602001828103825260218152602001806120666021913960400191505060405180910390fd5b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b60008184841115611e7c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e41578181015183820152602001611e29565b50505050905090810190601f168015611e6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e41578181015183820152602001611e29565b506000838581611edf57fe5b0495945050505050565b50805460008255906000526020600020908101906115ff91906119e591905b80821115611f1c5760008155600101611f08565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a264697066735822122046aa8f3564133ae19cf0f29fe8a7ebdf2a5f74f0268c42431d82384fe137b2ed64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/chapel/SlashContract b/core/systemcontracts/ramanujan/chapel/SlashContract new file mode 100644 index 0000000000..40ec7911f9 --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/SlashContract @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50600436106102275760003560e01c8063831d65d111610130578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a146106d9578063f9a2bbc7146106e1578063fc3e5908146106e9578063fc4333cd146106f1578063fd6a6879146106f957610227565b8063c80d4b8f14610623578063c81b16621461062b578063c8509d8114610633578063c96be4cb146106ab578063dc927faf146106d157610227565b8063a1a11bf5116100ff578063a1a11bf514610531578063a78abc1614610539578063ab51bb9614610555578063ac0af6291461055d578063ac4317511461056557610227565b8063831d65d11461049f57806396713da9146105195780639bc8e4f2146105215780639dc092621461052957610227565b80634bf6c882116101b35780636e47b482116101825780636e47b4821461047757806370fd5bad1461047f57806375d47a0a146104875780637912a65d1461048f5780637942fd051461049757610227565b80634bf6c8821461045757806351e806721461045f578063567a372d1461046757806362b72cf51461046f57610227565b806337c8dab9116101fa57806337c8dab9146103b9578063389f4f71146103f85780633dffc3871461041257806343756e5c14610430578063493279b11461043857610227565b80630bee7a671461022c5780631182b8751461024d57806323bac5a21461033a57806335aa2e4414610380575b600080fd5b610234610701565b6040805163ffffffff9092168252519081900360200190f35b6102c56004803603604081101561026357600080fd5b60ff8235169190810190604081016020820135600160201b81111561028757600080fd5b82018360208201111561029957600080fd5b803590602001918460018302840111600160201b831117156102ba57600080fd5b509092509050610706565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ff5781810151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103606004803603602081101561035057600080fd5b50356001600160a01b03166107da565b604080519384526020840192909252151582820152519081900360600190f35b61039d6004803603602081101561039657600080fd5b50356107fd565b604080516001600160a01b039092168252519081900360200190f35b6103df600480360360208110156103cf57600080fd5b50356001600160a01b0316610824565b6040805192835260208301919091528051918290030190f35b61040061087b565b60408051918252519081900360200190f35b61041a610881565b6040805160ff9092168252519081900360200190f35b61039d610886565b61044061088c565b6040805161ffff9092168252519081900360200190f35b61041a610891565b61039d610896565b61040061089c565b6104006108a2565b61039d6108a8565b61041a6108ae565b61039d6108b3565b6104006108b9565b61041a6108be565b610517600480360360408110156104b557600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d957600080fd5b8201836020820111156104eb57600080fd5b803590602001918460018302840111600160201b8311171561050c57600080fd5b5090925090506108c3565b005b61041a610a1e565b610400610a23565b61039d610a2e565b61039d610a34565b610541610a3a565b604080519115158252519081900360200190f35b610234610a43565b610400610a48565b6105176004803603604081101561057b57600080fd5b810190602081018135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460018302840111600160201b831117156105c857600080fd5b919390929091602081019035600160201b8111156105e557600080fd5b8201836020820111156105f757600080fd5b803590602001918460018302840111600160201b8311171561061857600080fd5b509092509050610a4d565b610400610e3b565b61039d610e40565b6105176004803603604081101561064957600080fd5b60ff8235169190810190604081016020820135600160201b81111561066d57600080fd5b82018360208201111561067f57600080fd5b803590602001918460018302840111600160201b831117156106a057600080fd5b509092509050610e46565b610517600480360360208110156106c157600080fd5b50356001600160a01b0316610ef9565b61039d61131e565b610517611324565b61039d611395565b61041a61139b565b6105176113a0565b61039d61182b565b606481565b606033612000146107485760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff1661078d576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061080a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061082f612146565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606081565b600881565b61200081565b60045481565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b33612000146109035760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610948576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b610950612169565b600061099184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061183192505050565b9150915080156109db5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a17565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15b5050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610a92576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b3361100714610ad25760405162461bcd60e51b815260040180806020018281038252602e81526020018061220d602e913960400191505060405180910390fd5b610b3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506118b19050565b15610c165760208114610b815760405162461bcd60e51b81526004018080602001828103825260278152602001806121b66027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610bbf9185858083850183828082843760009201919091525061199992505050565b905060018110158015610bd3575060055481105b610c0e5760405162461bcd60e51b815260040180806020018281038252602581526020018061225d6025913960400191505060405180910390fd5b600455610da9565b610c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506118b19050565b15610d6c5760208114610cc05760405162461bcd60e51b815260040180806020018281038252602281526020018061223b6022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610cfe9185858083850183828082843760009201919091525061199992505050565b90506103e88111158015610d13575060045481115b610d64576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610da9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b3361200014610e865760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610ecb576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610f375760405162461bcd60e51b815260040180806020018281038252602d8152602001806122b1602d913960400191505060405180910390fd5b60005460ff16610f7c576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6003544311610fd2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a1561101c576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b611024612146565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061107f5760208101805160010190526110d8565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b4381526005546020820151816110ea57fe5b0661123c57600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6111718561199e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156111d15781810151838201526020016111b9565b50505050905090810190601f1680156111fe5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561121f57600080fd5b505af1158015611233573d6000803e3d6000fd5b505050506112b2565b60045481602001518161124b57fe5b066112b257604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505043600355565b61100381565b60005460ff161561137c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146113e05760405162461bcd60e51b81526004018080602001828103825260308152602001806121dd6030913960400191505060405180910390fd5b60005460ff16611425576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b60015461143157611829565b600154600090600019015b8082116117fd576000805b8284101561156057611457612146565b600260006001878154811061146857fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff16151590820152600554909150600490048160200151111561154a576004600554816114d557fe5b048160200151038160200181815250508060026000600188815481106114f757fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611554565b6001925050611560565b50600190930192611447565b8284116116f75761156f612146565b600260006001868154811061158057fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611668576004600554816115ed57fe5b0481602001510381602001818152505080600260006001878154811061160f57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506116f79050565b600260006001868154811061167957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806116bd57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836116ea57506116f7565b5060001990920191611560565b8180156117015750805b156117e057600260006001868154811061171757fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061175e57fe5b600091825260209091200154600180546001600160a01b03909216918690811061178457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117bd57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b826117ec5750506117fd565b50506001909101906000190161143c565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b611839612169565b6000611843612169565b61184b61217b565b61185c61185786611a70565b611a95565b90506000805b61186b83611adf565b156118a457806118975761188661188184611b00565b611b4e565b63ffffffff1684526001915061189c565b6118a4565b600101611862565b5091935090915050915091565b6000816040516020018082805190602001908083835b602083106118e65780518252601f1990920191602091820191016118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106119545780518252601f199092019160209182019101611935565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816119b95790505090506119e2836001600160a01b0316611c05565b816000815181106119ef57fe5b6020026020010181905250611a0343611c28565b81600181518110611a1057fe5b6020908102919091010152611a256060611c28565b81600281518110611a3257fe5b6020026020010181905250611a4642611c28565b81600381518110611a5357fe5b6020026020010181905250611a6781611c3b565b9150505b919050565b611a7861219b565b506040805180820190915281518152602082810190820152919050565b611a9d61217b565b611aa682611cc5565b611aaf57600080fd5b6000611abe8360200151611cff565b60208085015160408051808201909152868152920190820152915050919050565b6000611ae961219b565b505080518051602091820151919092015191011190565b611b0861219b565b611b1182611adf565b611b1a57600080fd5b60208201516000611b2a82611d62565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611b6357508151602110155b611b6c57600080fd5b6000611b7b8360200151611cff565b90508083600001511015611bd6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611bfc57826020036101000a820491505b50949350505050565b60408051600560a21b8318601482015260348101909152606090611a6781611e95565b6060611993611c3683611eeb565b611e95565b6060815160001415611c5c5750604080516000815260208101909152611a6b565b606082600081518110611c6b57fe5b602002602001015190506000600190505b8351811015611cac57611ca282858381518110611c9557fe5b6020026020010151611fd1565b9150600101611c7c565b50611a67611cbf825160c060ff1661204e565b82611fd1565b8051600090611cd657506000611a6b565b6020820151805160001a9060c0821015611cf557600092505050611a6b565b5060019392505050565b8051600090811a6080811015611d19576000915050611a6b565b60b8811080611d34575060c08110801590611d34575060f881105b15611d43576001915050611a6b565b60c0811015611d575760b519019050611a6b565b60f519019050611a6b565b80516000908190811a6080811015611d7d5760019150611e8e565b60b8811015611d9257607e1981019150611e8e565b60c0811015611e0c57600060b78203600186019550806020036101000a865104915060018101820193505080831015611e06576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611e8e565b60f8811015611e215760be1981019150611e8e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611e8c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b606081516001148015611ec75750607f60f81b82600081518110611eb557fe5b01602001516001600160f81b03191611155b15611ed3575080611a6b565b611993611ee58351608060ff1661204e565b83611fd1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f2f57506018611f53565b6fffffffffffffffffffffffffffffffff198416611f4f57506010611f53565b5060005b6020811015611f8957818181518110611f6857fe5b01602001516001600160f81b03191615611f8157611f89565b600101611f53565b60008160200390506060816040519080825280601f01601f191660200182016040528015611fbe576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612002578051835260209283019201611fea565b50855184518101855292509050808201602086015b8183101561202f578051835260209283019201612017565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061209e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116120f85782840160f81b816000815181106120da57fe5b60200101906001600160f81b031916908160001a9053509050611993565b606061210385611eeb565b90508381510160370160f81b8260008151811061211c57fe5b60200101906001600160f81b031916908160001a90535061213d8282611fd1565b95945050505050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061218e61219b565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a26469706673582212204ff575d7be356d691e7b7eae41716a4ccc366ec84f8235486e935261df61a18a64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/chapel/SystemRewardContract b/core/systemcontracts/ramanujan/chapel/SystemRewardContract new file mode 100644 index 0000000000..c91ef79f36 --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/SystemRewardContract @@ -0,0 +1 @@ +60806040526004361061014f5760003560e01c806396713da9116100b6578063c81b16621161006f578063c81b1662146103dc578063dc927faf146103f1578063f9a2bbc714610406578063fb5478b31461041b578063fc3e590814610430578063fd6a68791461044557610193565b806396713da91461033a5780639a99b4f01461034f5780639dc0926214610388578063a1a11bf51461039d578063a78abc16146103b2578063ab51bb96146103c757610193565b806351e806721161010857806351e806721461028a5780636d70f7ae1461029f5780636e47b482146102e657806370fd5bad146102fb57806375d47a0a146103105780637942fd051461032557610193565b80630bee7a67146101985780633a0b0eff146101c65780633dffc387146101ed57806343756e5c14610218578063493279b1146102495780634bf6c8821461027557610193565b366101935734156101915760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101a457600080fd5b506101ad61045a565b6040805163ffffffff9092168252519081900360200190f35b3480156101d257600080fd5b506101db61045f565b60408051918252519081900360200190f35b3480156101f957600080fd5b50610202610465565b6040805160ff9092168252519081900360200190f35b34801561022457600080fd5b5061022d61046a565b604080516001600160a01b039092168252519081900360200190f35b34801561025557600080fd5b5061025e610470565b6040805161ffff9092168252519081900360200190f35b34801561028157600080fd5b50610202610475565b34801561029657600080fd5b5061022d61047a565b3480156102ab57600080fd5b506102d2600480360360208110156102c257600080fd5b50356001600160a01b0316610480565b604080519115158252519081900360200190f35b3480156102f257600080fd5b5061022d61049e565b34801561030757600080fd5b506102026104a4565b34801561031c57600080fd5b5061022d6104a9565b34801561033157600080fd5b506102026104af565b34801561034657600080fd5b506102026104b4565b34801561035b57600080fd5b506101db6004803603604081101561037257600080fd5b506001600160a01b0381351690602001356104b9565b34801561039457600080fd5b5061022d610664565b3480156103a957600080fd5b5061022d61066a565b3480156103be57600080fd5b506102d2610670565b3480156103d357600080fd5b506101ad610679565b3480156103e857600080fd5b5061022d61067e565b3480156103fd57600080fd5b5061022d610684565b34801561041257600080fd5b5061022d61068a565b34801561042757600080fd5b506101db610690565b34801561043c57600080fd5b5061020261069c565b34801561045157600080fd5b5061022d6106a1565b606481565b60015481565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b61100881565b600b81565b600981565b6000805460ff1661053657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166105845760405162461bcd60e51b815260040180806020018281038252602b8152602001806106a8602b913960400191505060405180910390fd5b60004783106105935747610595565b825b9050670de0b6b3a76400008111156105b25750670de0b6b3a76400005b8015610633576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156105ee573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261065d565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b6110048156fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f64a2646970667358221220d0a7618a32d393c0757994fad066c9aaf7342a982498e0748019ec232f5dc86764736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/chapel/TokenHubContract b/core/systemcontracts/ramanujan/chapel/TokenHubContract new file mode 100644 index 0000000000..189653bfb7 --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/TokenHubContract @@ -0,0 +1 @@ +60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e5908146109c9578063fd6a687914610ce6578063ff9c0027146107c757610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063dc6f5e90116100d1578063dc6f5e90146109c9578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063a7c9f02d11610164578063ac4317511161013e578063ac43175114610a3a578063b770186114610b05578063b99328c514610b1a578063b9fd21e314610b5357610366565b8063a7c9f02d146109c9578063aa7415f5146109de578063ab51bb9614610a2557610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a5cd588b14610981578063a78abc16146109b457610366565b80635d499b1b1161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105b25780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b80635d499b1b14610671578063613684751461036b5780636e056520146106865780636e47b482146107b257806370fd5bad146107c757806371d30863146107dc57610366565b806343756e5c116102d75780634bf6c882116102b15780634bf6c8821461036b57806350432d321461061d57806351e806721461063257806359b927891461064757610366565b806343756e5c146105c757806343a368b9146105dc578063493279b1146105f157610366565b8063077b8f351461036b5780630bee7a67146103965780631182b875146103c4578063149d14d9146104be5780633d713223146104e55780633dffc387146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805160ff9092168252519081900360200190f35b3480156103a257600080fd5b506103ab610d00565b6040805163ffffffff9092168252519081900360200190f35b3480156103d057600080fd5b50610449600480360360408110156103e757600080fd5b60ff8235169190810190604081016020820135600160201b81111561040b57600080fd5b82018360208201111561041d57600080fd5b803590602001918460018302840111600160201b8311171561043e57600080fd5b509092509050610d05565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048357818101518382015260200161046b565b50505050905090810190601f1680156104b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ca57600080fd5b506104d3610e33565b60408051918252519081900360200190f35b3480156104f157600080fd5b506105966004803603602081101561050857600080fd5b810190602081018135600160201b81111561052257600080fd5b82018360208201111561053457600080fd5b803590602001918460018302840111600160201b8311171561055557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e39945050505050565b604080516001600160a01b039092168252519081900360200190f35b3480156105be57600080fd5b50610380610e5d565b3480156105d357600080fd5b50610596610e62565b3480156105e857600080fd5b506104d3610e68565b3480156105fd57600080fd5b50610606610e74565b6040805161ffff9092168252519081900360200190f35b34801561062957600080fd5b506104d3610e79565b34801561063e57600080fd5b50610596610e84565b34801561065357600080fd5b506105966004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104d3610ea5565b61079e6004803603608081101561069c57600080fd5b810190602081018135600160201b8111156106b657600080fd5b8201836020820111156106c857600080fd5b803590602001918460208302840111600160201b831117156106e957600080fd5b919390929091602081019035600160201b81111561070657600080fd5b82018360208201111561071857600080fd5b803590602001918460208302840111600160201b8311171561073957600080fd5b919390929091602081019035600160201b81111561075657600080fd5b82018360208201111561076857600080fd5b803590602001918460208302840111600160201b8311171561078957600080fd5b91935091503567ffffffffffffffff16610eae565b604080519115158252519081900360200190f35b3480156107be57600080fd5b50610596611383565b3480156107d357600080fd5b50610380611389565b3480156107e857600080fd5b506104d361138e565b3480156107fd57600080fd5b50610596611394565b34801561081257600080fd5b5061038061139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061038061156e565b34801561090057600080fd5b506104d3611573565b34801561091557600080fd5b506104d36004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b506105966116bd565b34801561096357600080fd5b506105966116c3565b34801561097857600080fd5b506103806116c9565b34801561098d57600080fd5b506104d3600480360360208110156109a457600080fd5b50356001600160a01b03166116ce565b3480156109c057600080fd5b5061079e6116e0565b3480156109d557600080fd5b506103806116e9565b61079e600480360360808110156109f457600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116ee565b348015610a3157600080fd5b506103ab6116c9565b348015610a4657600080fd5b5061036460048036036040811015610a5d57600080fd5b810190602081018135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b919390929091602081019035600160201b811115610ac757600080fd5b820183602082011115610ad957600080fd5b803590602001918460018302840111600160201b83111715610afa57600080fd5b509092509050611daf565b348015610b1157600080fd5b506104d361201e565b348015610b2657600080fd5b5061036460048036036040811015610b3d57600080fd5b50803590602001356001600160a01b0316612024565b348015610b5f57600080fd5b506104d361209a565b348015610b7457600080fd5b506104d360048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b506105966120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b50610596612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061038061223b565b348015610c8057600080fd5b50610380612240565b348015610c9557600080fd5b50610596612245565b348015610caa57600080fd5b506104d361224b565b348015610cbf57600080fd5b5061044960048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b50610596612378565b600881565b606481565b60005460609060ff16610d4d576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b3361200014610d8d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff841660021415610ddf57610dd883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e2c565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606081565b662386f26fc1000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b6000805460ff16610ef4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b868514610f325760405162461bcd60e51b815260040180806020018281038252603b815260200180614732603b913960400191505060405180910390fd5b868314610f705760405162461bcd60e51b815260040180806020018281038252603f815260200180614605603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fbc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156110005760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611033578160200160208202803683370190505b50905060005b8481101561110e576402540be4008b8b8381811061105357fe5b905060200201358161106157fe5b061561109e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6110c38b8b838181106110ad57fe5b90506020020135856124a290919063ffffffff16565b93506110ef6402540be4008c8c848181106110da57fe5b905060200201356124fc90919063ffffffff16565b8282815181106110fb57fe5b6020908102919091010152600101611039565b5060015461113390611126908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111715760405162461bcd60e51b81526004018080602001828103825260568152602001806147df6056913960600191505060405180910390fd5b611181348463ffffffff61259716565b915061118b61434e565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361124f846125d9565b611264876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c25781810151838201526020016112aa565b50505050905090810190601f1680156112ef5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b600281565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614468602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60026020526000908152604090205481565b60005460ff1681565b600381565b6000805460ff16611734576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156117805760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156117c45760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b600080806001600160a01b0388166118a3576001546117ea90879063ffffffff6124a216565b3410156118285760405162461bcd60e51b815260040180806020018281038252606181526020018061457f6061913960800191505060405180910390fd5b6402540be40086061561186c5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b61187c348763ffffffff61259716565b9050611893866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b46565b6001600160a01b0388166000908152600360205260409020549250826118fa5760405162461bcd60e51b815260040180806020018281038252603181526020018061454e6031913960400191505060405180910390fd5b60015434101561193b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806146a1603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061198657506008811180156119865750611984876007198301600a0a63ffffffff6128f016565b155b6119c15760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6119cb8782612932565b92506119d684612972565b15611a1e576305f5e100831015611a1e5760405162461bcd60e51b815260040180806020018281038252603a815260200180614497603a913960400191505060405180910390fd5b600881101580611a385750600881108015611a3857508683115b611a735760405162461bcd60e51b81526004018080602001828103825260258152602001806145e06025913960400191505060405180910390fd5b677ce66c50e2840000831115611aba5760405162461bcd60e51b81526004018080602001828103825260358152602001806145196035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b5051611b4457600080fd5b505b611b4e61434e565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bfc57fe5b602002602001018181525050878160600151600081518110611c1a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c4c57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c77846125d9565b611c8c866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cea578181015183820152602001611cd2565b50505050905090810190601f168015611d175780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611def5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146e0602e913960400191505060405180910390fd5b60208114611e44576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f4c576020820151670de0b6b3a76400008111801590611ef357506402540be4008106155b611f44576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61c35081565b33611008146120645760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b662386f26fc1000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b606061238861439a565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143cf565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e58565b50506040805160008152602081019091529150610e589050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146806021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143f6565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b815260040180806020018281038252602481526020018061470e6024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600860ff82161015612a0057600092505050610e58565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e58565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e58565b5060019392505050565b612a8061434e565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144d16024913960400191505060405180910390fd5b612ad36143f6565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613bc6565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e61439a565b6000612b8861439a565b612b9061442d565b612ba1612b9c86613bff565b613c24565b90506000805b612bb083613c6e565b15612ca85780612bd257612bcb612bc684613c8f565b613cdd565b8452612ca0565b8060011415612bff57612bec612be784613c8f565b613d94565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c8f565b6040850152612ca0565b8060031415612c4657612c33612be784613c8f565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c8f565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c8f565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e58565b8160400151471015612cfc57506003610e58565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e58565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e58565b8160a0015167ffffffffffffffff16421115612e0a57506001610e58565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e58565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e58565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e589050565b5060059150610e589050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2c81613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613dae565b613e94565b60408051600560a21b8318601482015260348101909152606090610e2c81613e94565b60608151600014156132315750604080516000815260208101909152610e58565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ee6565b9150600101613251565b50610e2c613294825160c060ff16613f63565b82613ee6565b6132a26143f6565b60006132ac6143f6565b6132b461442d565b6132c0612b9c86613bff565b90506000805b6132cf83613c6e565b15612ca857806132f5576132e5612be784613c8f565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c8f565b61405b565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cdd565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c8f565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d94565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c8f565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b61395361434e565b600061395d61434e565b61396561442d565b613971612b9c86613bff565b90506000805b61398083613c6e565b15613bb8578061399d57613996612bc684613c8f565b8452613bb0565b80600114156139c5576139b2612be784613c8f565b6001600160a01b03166020850152613bb0565b8060021415613a545760606139dc61330c85613c8f565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613bb0565b8060031415613ae9576060613a6b61330c85613c8f565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c8f565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415613bab57613b93612bc684613c8f565b67ffffffffffffffff1660a085015260019150613bb0565b613bb8565b600101613977565b509195600195509350505050565b60006008821115613be857612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613c0761444d565b506040805180820190915281518152602082810190820152919050565b613c2c61442d565b613c358261412c565b613c3e57600080fd5b6000613c4d836020015161415c565b60208085015160408051808201909152868152920190820152915050919050565b6000613c7861444d565b505080518051602091820151919092015191011190565b613c9761444d565b613ca082613c6e565b613ca957600080fd5b60208201516000613cb9826141bf565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cf257508151602110155b613cfb57600080fd5b6000613d0a836020015161415c565b90508083600001511015613d65576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d8b57826020036101000a820491505b50949350505050565b8051600090601514613da557600080fd5b6116b782613cdd565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613df257506018613e16565b6fffffffffffffffffffffffffffffffff198416613e1257506010613e16565b5060005b6020811015613e4c57818181518110613e2b57fe5b01602001516001600160f81b03191615613e4457613e4c565b600101613e16565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ec65750607f60f81b82600081518110613eb457fe5b01602001516001600160f81b03191611155b15613ed2575080610e58565b6116b7613ee48351608060ff16613f63565b835b6060806040519050835180825260208201818101602087015b81831015613f17578051835260209283019201613eff565b50855184518101855292509050808201602086015b81831015613f44578051835260209283019201613f2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613fb3576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161400d5782840160f81b81600081518110613fef57fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061401885613dae565b90508381510160370160f81b8260008151811061403157fe5b60200101906001600160f81b031916908160001a9053506140528282613ee6565b95945050505050565b60606140668261412c565b61406f57600080fd5b600061407a836142f2565b90506060816040519080825280602002602001820160405280156140b857816020015b6140a561444d565b81526020019060019003908161409d5790505b50905060006140ca856020015161415c565b60208601510190506000805b84811015614121576140e7836141bf565b915060405180604001604052808381526020018481525084828151811061410a57fe5b6020908102919091010152918101916001016140d6565b509195945050505050565b805160009061413d57506000610e58565b6020820151805160001a9060c0821015612a6e57600092505050610e58565b8051600090811a6080811015614176576000915050610e58565b60b8811080614191575060c08110801590614191575060f881105b156141a0576001915050610e58565b60c08110156141b45760b519019050610e58565b60f519019050610e58565b80516000908190811a60808110156141da57600191506142eb565b60b88110156141ef57607e19810191506142eb565b60c081101561426957600060b78203600186019550806020036101000a865104915060018101820193505080831015614263576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142eb565b60f881101561427e5760be19810191506142eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061430357506000610e58565b60008090506000614317846020015161415c565b602085015185519181019250015b8082101561434557614336826141bf565b60019093019290910190614325565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061444061444d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220560ad3b1f9184c6b58a836a4c111faf5fdf5dc0e93dc1c013cd41cea18c69cbb64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/chapel/TokenManagerContract b/core/systemcontracts/ramanujan/chapel/TokenManagerContract new file mode 100644 index 0000000000..6c6441af2e --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/TokenManagerContract @@ -0,0 +1 @@ +6080604052600436106102465760003560e01c806375d47a0a11610139578063ab51bb96116100b6578063dc6f5e901161007a578063dc6f5e90146108df578063dc927faf14610975578063f9a2bbc71461098a578063fc3e5908146108df578063fd6a68791461099f578063fe3a2af5146104fd57610246565b8063ab51bb96146108b5578063c81b1662146108ca578063c8509d81146107c5578063c8e704a4146108df578063d117a110146108f457610246565b806395b9ad26116100fd57806395b9ad261461084c57806396713da9146108615780639dc0926214610876578063a1a11bf51461088b578063a78abc16146108a057610246565b806375d47a0a146106e757806377d9dae8146106fc5780637942fd05146107b05780637d078e13146103c8578063831d65d1146107c557610246565b80634a688818116101c75780635f558f861161018b5780635f558f86146105515780636b3f1307146105665780636e47b4821461062e57806370fd5bad1461055157806372c4e0861461064357610246565b80634a688818146104fd5780634bc81c00146105125780634bf6c8821461024b57806351e80672146105275780635d499b1b1461053c57610246565b806323996b531161020e57806323996b53146103c85780633dffc387146103c857806343756e5c146103dd578063445fcefe1461040e578063493279b1146104d157610246565b8063077b8f351461024b5780630bee7a67146102765780630f212b1b146102a45780631182b875146102b95780631f91600b146103b3575b600080fd5b34801561025757600080fd5b506102606109b4565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b5061028b6109b9565b6040805163ffffffff9092168252519081900360200190f35b3480156102b057600080fd5b506102606109be565b3480156102c557600080fd5b5061033e600480360360408110156102dc57600080fd5b60ff8235169190810190604081016020820135600160201b81111561030057600080fd5b82018360208201111561031257600080fd5b803590602001918460018302840111600160201b8311171561033357600080fd5b5090925090506109c3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610378578181015183820152602001610360565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103bf57600080fd5b50610260610a4c565b3480156103d457600080fd5b50610260610a51565b3480156103e957600080fd5b506103f2610a56565b604080516001600160a01b039092168252519081900360200190f35b34801561041a57600080fd5b506104bf6004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a5c945050505050565b60408051918252519081900360200190f35b3480156104dd57600080fd5b506104e6610bbb565b6040805161ffff9092168252519081900360200190f35b34801561050957600080fd5b50610260610bc0565b34801561051e57600080fd5b50610260610bc5565b34801561053357600080fd5b506103f2610bca565b34801561054857600080fd5b506104bf610bd0565b34801561055d57600080fd5b50610260610bd9565b61061a6004803603604081101561057c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bde945050505050565b604080519115158252519081900360200190f35b34801561063a57600080fd5b506103f2611460565b61061a6004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460018302840111600160201b831117156106a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611466945050505050565b3480156106f357600080fd5b506103f26118b4565b61061a6004803603604081101561071257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118ba945050505050565b3480156107bc57600080fd5b50610260611dc1565b3480156107d157600080fd5b5061084a600480360360408110156107e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561080c57600080fd5b82018360208201111561081e57600080fd5b803590602001918460018302840111600160201b8311171561083f57600080fd5b509092509050611dc6565b005b34801561085857600080fd5b50610260611e79565b34801561086d57600080fd5b50610260611e7e565b34801561088257600080fd5b506103f2611e83565b34801561089757600080fd5b506103f2611e89565b3480156108ac57600080fd5b5061061a611e8f565b3480156108c157600080fd5b5061028b610bc0565b3480156108d657600080fd5b506103f2611e98565b3480156108eb57600080fd5b50610260611e9e565b34801561090057600080fd5b5061091e6004803603602081101561091757600080fd5b5035611ea3565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a083015267ffffffffffffffff90921660c082015290519081900360e00190f35b34801561098157600080fd5b506103f2611efb565b34801561099657600080fd5b506103f2611f01565b3480156109ab57600080fd5b506103f2611f07565b600881565b606481565b600681565b60603361200014610a055760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b610a4483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f0d92505050565b949350505050565b600481565b600181565b61100181565b6020810151600090610a6c613168565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a082015261010090910467ffffffffffffffff1660c082015290610af457600092505050610bb6565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505160808301516060840151919250600091610b9d9163ffffffff61219e16565b9050610baf818363ffffffff61219e16565b9450505050505b919050565b606081565b600081565b600581565b61200081565b6402540be40081565b600281565b600080610bea836121e7565b9050610bf4613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152610cba576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b6000610cd78260800151836060015161219e90919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b031614610d2d5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d6020811015610d9a57600080fd5b50516001600160a01b031614610de15760405162461bcd60e51b815260040180806020018281038252602e815260200180613272602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192508391610ee89184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50519063ffffffff6121ee16565b1015610f3b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d6020811015610fa757600080fd5b50519050808210801590610fc057506402540be4008206155b610ffb5760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b6000611007868b612248565b905063ffffffff8116611206576001600160a01b038a166323b872dd33611004611037898963ffffffff61219e16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111c55781810151838201526020016111ad565b50505050905090810190601f1680156111f25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a26112be565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561128257818101518382015260200161126a565b50505050905090810190601f1680156112af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556113186131a4565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611360573d6000803e3d6000fd5b5061200063f7a251d760016113748461269f565b611389886402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113e75781810151838201526020016113cf565b50505050905090810190601f1680156114145780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506001985050505050505050505b92915050565b61100581565b600080611472836121e7565b905061147c613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611542576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c0015167ffffffffffffffff16106115a4576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d602081101561161057600080fd5b5051905080821080159061162957506402540be4008206155b6116645760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556116be6131a4565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611701573d6000803e3d6000fd5b5061200063f7a251d760016117158461269f565b61172a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611788578181015183820152602001611770565b50505050905090810190601f1680156117b55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561186c578181015183820152602001611854565b50505050905090810190601f1680156118995780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806118c6836121e7565b90506118d0613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611996576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146119ea5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b50516001600160a01b031614611ab4576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703265206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b50519050808210801590611b3957506402540be4008206155b611b745760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611bce6131a4565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611c11573d6000803e3d6000fd5b5061200063f7a251d76001611c258461269f565b611c3a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c98578181015183820152602001611c80565b50505050905090810190601f168015611cc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d78578181015183820152602001611d60565b50505050905090810190601f168015611da55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b3361200014611e065760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b600781565b600981565b61100781565b61100681565b60005460ff1681565b61100281565b600381565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b0390931693919291811690610100900467ffffffffffffffff1687565b61100381565b61100081565b61100481565b6060611f17613168565b6000611f228461276b565b9150915080611f78576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff1661202c576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff00191661010067ffffffffffffffff90921691909102179055612183565b815160ff16600114156121365760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60208110156120af57600080fd5b505190506001600160a01b038116156121305760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050505b50612183565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b60006121e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bd565b9392505050565b6020015190565b6000828201838110156121e0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d60208110156122ae57600080fd5b5051604080516395d89b4160e01b815290519192506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561233357600080fd5b8101908080516040519392919084600160201b82111561235257600080fd5b90830190602082018581111561236757600080fd5b8251600160201b81118282018810171561238057600080fd5b82525081516020918201929091019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b5051608087015160608801519192506000916124759163ffffffff61219e16565b9050428760c0015167ffffffffffffffff16101561249b57506001935061145a92505050565b6124a9838860200151612954565b6124bb57506002935061145a92505050565b808211156124d157506003935061145a92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251357600080fd5b505afa158015612527573d6000803e3d6000fd5b505050506040513d602081101561253d57600080fd5b50511461255257506004935061145a92505050565b8660a0015160ff16841461256e57506005935061145a92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b1580156125b357600080fd5b505afa1580156125c7573d6000803e3d6000fd5b505050506040513d60208110156125dd57600080fd5b50516001600160a01b031614158061267f57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561265057600080fd5b505afa158015612664573d6000803e3d6000fd5b505050506040513d602081101561267a57600080fd5b505114155b1561269257506006935061145a92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816126b857505083519091506126e09063ffffffff16612a3c565b816000815181106126ed57fe5b6020026020010181905250612708836020015160001c612a3c565b8160018151811061271557fe5b60200260200101819052506121e081612a4f565b60006121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad9565b612773613168565b600061277d613168565b6127856131bb565b61279661279186612b3e565b612b63565b90506000805b6127a583612bad565b156128b057806127ca576127c06127bb84612bce565b612c1c565b60ff1684526128a8565b80600114156127e9576127df6127bb84612bce565b60208501526128a8565b8060021415612816576128036127fe84612bce565b612cd1565b6001600160a01b031660408501526128a8565b80600314156128355761282b6127bb84612bce565b60608501526128a8565b80600414156128545761284a6127bb84612bce565b60808501526128a8565b8060051415612876576128696127bb84612bce565b60ff1660a08501526128a8565b80600614156128a35761288b6127bb84612bce565b67ffffffffffffffff1660c0850152600191506128a8565b6128b0565b60010161279c565b5091935090915050915091565b6000818484111561294c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129115781810151838201526020016128f9565b50505050905090810190601f16801561293e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b815160009083906008108061296a575080516003115b1561297957600091505061145a565b604080516020808252818301909252606091602082018180368337019050509050836020820152808251815181106129ad57fe5b6020910101516001600160f81b031916602d60f81b146129d25760009250505061145a565b600160005b8351811015612a32578281815181106129ec57fe5b602001015160f81c60f81b6001600160f81b031916848281518110612a0d57fe5b01602001516001600160f81b03191614612a2a5760009150612a32565b6001016129d7565b5095945050505050565b606061145a612a4a83612ceb565b612dd1565b6060815160001415612a705750604080516000815260208101909152610bb6565b606082600081518110612a7f57fe5b602002602001015190506000600190505b8351811015612ac057612ab682858381518110612aa957fe5b6020026020010151612e23565b9150600101612a90565b506121e0612ad3825160c060ff16612ea0565b82612e23565b60008183612b285760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129115781810151838201526020016128f9565b506000838581612b3457fe5b0495945050505050565b612b466131db565b506040805180820190915281518152602082810190820152919050565b612b6b6131bb565b612b7482612f98565b612b7d57600080fd5b6000612b8c8360200151612fd2565b60208085015160408051808201909152868152920190820152915050919050565b6000612bb76131db565b505080518051602091820151919092015191011190565b612bd66131db565b612bdf82612bad565b612be857600080fd5b60208201516000612bf882613035565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612c3157508151602110155b612c3a57600080fd5b6000612c498360200151612fd2565b90508083600001511015612ca4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561219557506020919091036101000a90049392505050565b8051600090601514612ce257600080fd5b61145a82612c1c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612d2f57506018612d53565b6fffffffffffffffffffffffffffffffff198416612d4f57506010612d53565b5060005b6020811015612d8957818181518110612d6857fe5b01602001516001600160f81b03191615612d8157612d89565b600101612d53565b60008160200390506060816040519080825280601f01601f191660200182016040528015612dbe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015612e035750607f60f81b82600081518110612df157fe5b01602001516001600160f81b03191611155b15612e0f575080610bb6565b61145a612e218351608060ff16612ea0565b835b6060806040519050835180825260208201818101602087015b81831015612e54578051835260209283019201612e3c565b50855184518101855292509050808201602086015b81831015612e81578051835260209283019201612e69565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612ef0576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411612f4a5782840160f81b81600081518110612f2c57fe5b60200101906001600160f81b031916908160001a905350905061145a565b6060612f5585612ceb565b90508381510160370160f81b82600081518110612f6e57fe5b60200101906001600160f81b031916908160001a905350612f8f8282612e23565b95945050505050565b8051600090612fa957506000610bb6565b6020820151805160001a9060c0821015612fc857600092505050610bb6565b5060019392505050565b8051600090811a6080811015612fec576000915050610bb6565b60b8811080613007575060c08110801590613007575060f881105b15613016576001915050610bb6565b60c081101561302a5760b519019050610bb6565b60f519019050610bb6565b80516000908190811a60808110156130505760019150613161565b60b881101561306557607e1981019150613161565b60c08110156130df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156130d9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613161565b60f88110156130f45760be1981019150613161565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561315f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b60405180604001604052806131ce6131db565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe72656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e6420726571756573746f6e6c79206265703265206f776e65722063616e20617070726f766520746869732062696e642072657175657374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220f5905eb90e4a072fe66973705300bc7792e1c43c73c571a09629b9153e6b871864736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/chapel/ValidatorContract b/core/systemcontracts/ramanujan/chapel/ValidatorContract new file mode 100644 index 0000000000..4eb22216b7 --- /dev/null +++ b/core/systemcontracts/ramanujan/chapel/ValidatorContract @@ -0,0 +1 @@ +60806040526004361061027d5760003560e01c80639dc092621161014f578063c8509d81116100c1578063eb57e2021161007a578063eb57e20214610940578063eda5868c14610973578063f340fa0114610988578063f9a2bbc7146109ae578063fc3e5908146109c3578063fd6a6879146109d85761027d565b8063c8509d8114610609578063d86222d5146108d7578063daacdb66146108ec578063dc927faf14610901578063e086c7b114610916578063e1c7392a1461092b5761027d565b8063ab51bb9611610113578063ab51bb961461074a578063ac4317511461075f578063ad3c9da61461082a578063b7ab4db51461085d578063bf9f49951461041b578063c81b1662146108c25761027d565b80639dc09262146106cd578063a1a11bf5146106e2578063a5422d5c146106f7578063a78abc161461070c578063aaf5eb68146107355761027d565b80635667515a116101f35780637942fd05116101ac5780637942fd05146105df57806381650b62146105f4578063831d65d114610609578063853230aa1461068e57806386249882146106a357806396713da9146106b85761027d565b80635667515a146105005780635d77156c146105155780636969a25c1461052a5780636e47b482146105a057806370fd5bad146105b557806375d47a0a146105ca5761027d565b80633dffc387116102455780633dffc3871461041b57806343756e5c14610446578063493279b1146104775780634bf6c882146104a357806351e80672146104b8578063565c56b3146104cd5761027d565b80630bee7a67146102825780631182b875146102b05780631ff18069146103aa578063219f22d5146103d157806335409f7f146103e6575b600080fd5b34801561028e57600080fd5b506102976109ed565b6040805163ffffffff9092168252519081900360200190f35b3480156102bc57600080fd5b50610335600480360360408110156102d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460018302840111600160201b8311171561032a57600080fd5b5090925090506109f2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036f578181015183820152602001610357565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b657600080fd5b506103bf610bdf565b60408051918252519081900360200190f35b3480156103dd57600080fd5b50610297610be5565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b0316610bea565b005b34801561042757600080fd5b50610430610efe565b6040805160ff9092168252519081900360200190f35b34801561045257600080fd5b5061045b610f03565b604080516001600160a01b039092168252519081900360200190f35b34801561048357600080fd5b5061048c610f09565b6040805161ffff9092168252519081900360200190f35b3480156104af57600080fd5b50610430610f0e565b3480156104c457600080fd5b5061045b610f13565b3480156104d957600080fd5b506103bf600480360360208110156104f057600080fd5b50356001600160a01b0316610f19565b34801561050c57600080fd5b50610430610f6b565b34801561052157600080fd5b50610297610f70565b34801561053657600080fd5b506105546004803603602081101561054d57600080fd5b5035610f75565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156105ac57600080fd5b5061045b610fd9565b3480156105c157600080fd5b50610430610fdf565b3480156105d657600080fd5b5061045b610fe4565b3480156105eb57600080fd5b50610430610fea565b34801561060057600080fd5b50610297610fef565b34801561061557600080fd5b506104196004803603604081101561062c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b509092509050610ff4565b34801561069a57600080fd5b506103bf6110a7565b3480156106af57600080fd5b506103bf6110ad565b3480156106c457600080fd5b506104306110b3565b3480156106d957600080fd5b5061045b6110b8565b3480156106ee57600080fd5b5061045b6110be565b34801561070357600080fd5b506103356110c4565b34801561071857600080fd5b506107216110e3565b604080519115158252519081900360200190f35b34801561074157600080fd5b506103bf6110ec565b34801561075657600080fd5b50610297610f6b565b34801561076b57600080fd5b506104196004803603604081101561078257600080fd5b810190602081018135600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b919390929091602081019035600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460018302840111600160201b8311171561081f57600080fd5b5090925090506110f5565b34801561083657600080fd5b506103bf6004803603602081101561084d57600080fd5b50356001600160a01b031661139c565b34801561086957600080fd5b506108726113ae565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108ae578181015183820152602001610896565b505050509050019250505060405180910390f35b3480156108ce57600080fd5b5061045b6114d4565b3480156108e357600080fd5b506103bf6114da565b3480156108f857600080fd5b506103bf6114e6565b34801561090d57600080fd5b5061045b6114ec565b34801561092257600080fd5b506103bf6114f2565b34801561093757600080fd5b506104196114f7565b34801561094c57600080fd5b506104196004803603602081101561096357600080fd5b50356001600160a01b03166116fa565b34801561097f57600080fd5b506102976118c9565b6104196004803603602081101561099e57600080fd5b50356001600160a01b03166118ce565b3480156109ba57600080fd5b5061045b611b04565b3480156109cf57600080fd5b50610430611b0a565b3480156109e457600080fd5b5061045b611b0f565b606481565b60005460609060ff16610a48576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610a885760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b610a90613d69565b6000610ad185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1592505050565b9150915080610aed57610ae46064611c6e565b92505050610bd8565b815160009060ff16610b0d57610b068360200151611ccf565b9050610ba4565b825160ff1660011415610ba057826020015151600114610b7a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180613e6c6025913960400191505060405180910390a1506067610b9b565b610b068360200151600081518110610b8e57fe5b6020026020010151612ad5565b610ba4565b5060655b63ffffffff8116610bc95750506040805160008152602081019091529150610bd89050565b610bd281611c6e565b93505050505b9392505050565b60035481565b606881565b3361100114610c2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610c4e5750610efb565b600181039050600060018281548110610c6357fe5b60009182526020909120600360049092020101546001549091506000190180610cb257600060018481548110610c9557fe5b906000526020600020906004020160030181905550505050610efb565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610e3457600180546000198101908110610d2957fe5b906000526020600020906004020160018481548110610d4457fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610e0957fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610e3f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610e9257fe5b0490508015610ef65760015460005b81811015610ef3578260018281548110610eb757fe5b9060005260206000209060040201600301540160018281548110610ed757fe5b6000918252602090912060036004909202010155600101610ea1565b50505b505050505b50565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b03811660009081526004602052604081205480610f41576000915050610f66565b600180820381548110610f5057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b60018181548110610f8257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101b78152602001613f066101b7913981565b60005460ff1681565b6402540be40081565b60005460ff16611148576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146111885760405162461bcd60e51b815260040180806020018281038252602e815260200180613e91602e913960400191505060405180910390fd5b6111f284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612c4c9050565b156112cd57602081146112365760405162461bcd60e51b8152600401808060200182810382526026815260200180613ee06026913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161127491858580838501838280828437600092019190915250612d3492505050565b90506064811015801561128a5750620186a08111155b6112c55760405162461bcd60e51b8152600401808060200182810382526027815260200180613e456027913960400191505060405180910390fd5b60025561130a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b828110156113ff57600181815481106113cd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166113f7576001909101905b6001016113b8565b5060608160405190808252806020026020018201604052801561142c578160200160208202803683370190505b50600092509050815b838110156114cc576001818154811061144a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166114c4576001818154811061147a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106114a557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611435565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561154f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611557613d69565b600061157d604051806101e001604052806101b78152602001613f066101b79139611b15565b91509150806115bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806140bd6021913960400191505060405180910390fd5b60005b8260200151518110156116e2576001836020015182815181106115df57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106116b557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016115c0565b50506103e8600255506000805460ff19166001179055565b336110011461173a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061175e5750610efb565b60018103905060006001828154811061177357fe5b906000526020600020906004020160030154905060006001838154811061179657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a28061180557505050610efb565b600081838161181057fe5b0490508015610ef65760005b8481101561186e57816001828154811061183257fe5b906000526020600020906004020160030154016001828154811061185257fe5b600091825260209091206003600490920201015560010161181c565b50600180549085015b81811015610ef357826001828154811061188d57fe5b90600052602060002090600402016003015401600182815481106118ad57fe5b6000918252602090912060036004909202010155600101611877565b606581565b33411461190c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061410d602d913960400191505060405180910390fd5b60005460ff1661195f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b600034116119ac576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205434908015611abf5760006001808303815481106119de57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611a49576040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611ab9565b600354611a5c908463ffffffff612d3916565b6003908155810154611a74908463ffffffff612d3916565b60038201556040805184815290516001600160a01b038616917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611aff565b6040805183815290516001600160a01b038516917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b505050565b61100081565b600381565b61100481565b611b1d613d69565b6000611b27613d69565b611b2f613d81565b611b40611b3b86612d93565b612db8565b90506000805b611b4f83612e02565b15611c605780611b7457611b6a611b6584612e23565b612e71565b60ff168452611c58565b8060011415611c53576060611b90611b8b85612e23565b612f28565b90508051604051908082528060200260200182016040528015611bcd57816020015b611bba613da1565b815260200190600190039081611bb25790505b50602086015260005b8151811015611c4857611be7613da1565b6000611c05848481518110611bf857fe5b6020026020010151612ff9565b9150915080611c2257876000995099505050505050505050611c69565b8188602001518481518110611c3357fe5b60209081029190910101525050600101611bd6565b506001925050611c58565b611c60565b600101611b46565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611c88579050509050611cae8363ffffffff166130d6565b81600081518110611cbb57fe5b6020026020010181905250610bd8816130e9565b6000806060611cdd84613173565b9150915081611d8a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d45578181015183820152602001611d2d565b50505050905090810190601f168015611d725780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050610f66565b600080805b600154811015611e075767016345785d8a000060018281548110611daf57fe5b90600052602060002090600402016003015410611dd157600190920191611dff565b600060018281548110611de057fe5b9060005260206000209060040201600301541115611dff576001909101905b600101611d8f565b50606082604051908082528060200260200182016040528015611e34578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015611e63578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611e92578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015611ec1578160200160208202803683370190505b5090506000606086604051908082528060200260200182016040528015611ef2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015611f21578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6e57600080fd5b505afa158015611f82573d6000803e3d6000fd5b505050506040513d6020811015611f9857600080fd5b5051905067016345785d8a000081111561200d577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180613ebf6021913960400191505060405180910390a160689d5050505050505050505050505050610f66565b60005b6001548110156122805767016345785d8a00006001828154811061203057fe5b906000526020600020906004020160030154106121b6576001818154811061205457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061208557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106120ba57fe5b906000526020600020906004020160030154816120d357fe5b06600183815481106120e157fe5b906000526020600020906004020160030154039050612109838261325590919063ffffffff16565b8a8e8151811061211557fe5b6020026020010181815250506001828154811061212e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061215f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061218c57fe5b60209081029190910101526121a7878263ffffffff612d3916565b6001909d019c96506122789050565b6000600182815481106121c557fe5b906000526020600020906004020160030154111561227857600181815481106121ea57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061221b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061224857fe5b906000526020600020906004020160030154848c8151811061226657fe5b60209081029190910101526001909a01995b600101612010565b50600085156126be576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156123125781810151838201526020016122fa565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015612351578181015183820152602001612339565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015612390578181015183820152602001612378565b505050509050019750505050505050506020604051808303818588803b1580156123b957600080fd5b505af1935050505080156123df57506040513d60208110156123da57600080fd5b505160015b61261a576040516000815260443d10156123fb57506000612496565b60046000803e60005160e01c6308c379a0811461241c576000915050612496565b60043d036004833e81513d60248201116001600160401b038211171561244757600092505050612496565b80830180516001600160401b03811115612468576000945050505050612496565b8060208301013d860181111561248657600095505050505050612496565b601f01601f191660405250925050505b806124a15750612545565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125055781810151838201526020016124ed565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612615565b3d80801561256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125d95781810151838201526020016125c1565b50505050905090810190601f1680156126065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6126be565b8015612658576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16126bc565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b80156128745760005b88518110156128725760008982815181106126de57fe5b602002602001015190506000600182815481106126f757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061272857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156127e4576001828154811061276957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106127b857fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612868565b600182815481106127f157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061284057fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016126c7565b505b8451156129be5760005b85518110156129bc57600086828151811061289557fe5b60200260200101516001600160a01b03166108fc8784815181106128b557fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561294b578682815181106128eb57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d87848151811061292957fe5b60200260200101516040518082815260200191505060405180910390a26129b3565b86828151811061295757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d87848151811061299557fe5b60200260200101516040518082815260200191505060405180910390a25b5060010161287e565b505b4715612a27576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612a25573d6000803e3d6000fd5b505b60006003819055600555825115612a4157612a4183613297565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a7e57600080fd5b505af1158015612a92573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612b265750600180820381548110612b0657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612b6c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050610f66565b600154600554600019820111801590612bc25784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050610f66565b600580546001908101909155805481906000198601908110612be057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612c815780518252601f199092019160209182019101612c62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612cef5780518252601f199092019160209182019101612cd0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610bd8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612d9b613dd6565b506040805180820190915281518152602082810190820152919050565b612dc0613d81565b612dc98261375e565b612dd257600080fd5b6000612de18360200151613798565b60208085015160408051808201909152868152920190820152915050919050565b6000612e0c613dd6565b505080518051602091820151919092015191011190565b612e2b613dd6565b612e3482612e02565b612e3d57600080fd5b60208201516000612e4d826137fb565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612e8657508151602110155b612e8f57600080fd5b6000612e9e8360200151613798565b90508083600001511015612ef9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015612f1f57826020036101000a820491505b50949350505050565b6060612f338261375e565b612f3c57600080fd5b6000612f478361392e565b9050606081604051908082528060200260200182016040528015612f8557816020015b612f72613dd6565b815260200190600190039081612f6a5790505b5090506000612f978560200151613798565b60208601510190506000805b84811015612fee57612fb4836137fb565b9150604051806040016040528083815260200184815250848281518110612fd757fe5b602090810291909101015291810191600101612fa3565b509195945050505050565b613001613da1565b600061300b613da1565b613013613d81565b61301c85612db8565b90506000805b61302b83612e02565b15611c6057806130565761304661304184612e23565b61398a565b6001600160a01b031684526130ce565b806001141561307e5761306b61304184612e23565b6001600160a01b031660208501526130ce565b80600214156130a65761309361304184612e23565b6001600160a01b031660408501526130ce565b8060031415611c53576130bb611b6584612e23565b6001600160401b03166060850152600191505b600101613022565b6060612d2e6130e4836139a4565b613a8a565b606081516000141561310a5750604080516000815260208101909152610f66565b60608260008151811061311957fe5b602002602001015190506000600190505b835181101561315a576131508285838151811061314357fe5b6020026020010151613adc565b915060010161312a565b50610bd861316d825160c060ff16613b59565b82613adc565b600060606029835111156131a5576000604051806060016040528060298152602001613df16029913991509150611c69565b60005b835181101561323b5760005b81811015613232578481815181106131c857fe5b6020026020010151600001516001600160a01b03168583815181106131e957fe5b6020026020010151600001516001600160a01b0316141561322a5760006040518060600160405280602b8152602001613e1a602b9139935093505050611c69565b6001016131b4565b506001016131a8565b505060408051602081019091526000815260019150915091565b6000610bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c51565b600154815160005b828110156133b45760016132b1613da1565b600183815481106132be57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156133885786818151811061334e57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156133805760009250613388565b60010161333a565b5081156133aa5780516001600160a01b03166000908152600460205260408120555b505060010161329f565b508082111561342957805b828110156134275760018054806133d257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b03191690556003909101919091559155016133bf565b505b6000818310613438578161343a565b825b905060005b81811015613634576134ec85828151811061345657fe5b60200260200101516001838154811061346b57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613ce8565b61360757806001016004600087848151811061350457fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061354057fe5b60200260200101516001828154811061355557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561362c565b60006001828154811061361657fe5b9060005260206000209060040201600301819055505b60010161343f565b508282111561375857825b82811015610ef657600185828151811061365557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a0909201516003909301929092558751908401929088908590811061372b57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161363f565b50505050565b805160009061376f57506000610f66565b6020820151805160001a9060c082101561378e57600092505050610f66565b5060019392505050565b8051600090811a60808110156137b2576000915050610f66565b60b88110806137cd575060c081108015906137cd575060f881105b156137dc576001915050610f66565b60c08110156137f05760b519019050610f66565b60f519019050610f66565b80516000908190811a60808110156138165760019150613927565b60b881101561382b57607e1981019150613927565b60c08110156138a557600060b78203600186019550806020036101000a86510491506001810182019350508083101561389f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613927565b60f88110156138ba5760be1981019150613927565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613925576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061393f57506000610f66565b600080905060006139538460200151613798565b602085015185519181019250015b8082101561398157613972826137fb565b60019093019290910190613961565b50909392505050565b805160009060151461399b57600080fd5b612d2e82612e71565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166139e857506018613a0c565b6fffffffffffffffffffffffffffffffff198416613a0857506010613a0c565b5060005b6020811015613a4257818181518110613a2157fe5b01602001516001600160f81b03191615613a3a57613a42565b600101613a0c565b60008160200390506060816040519080825280601f01601f191660200182016040528015613a77576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613abc5750607f60f81b82600081518110613aaa57fe5b01602001516001600160f81b03191611155b15613ac8575080610f66565b612d2e613ada8351608060ff16613b59565b835b6060806040519050835180825260208201818101602087015b81831015613b0d578051835260209283019201613af5565b50855184518101855292509050808201602086015b81831015613b3a578051835260209283019201613b22565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613ba9576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613c035782840160f81b81600081518110613be557fe5b60200101906001600160f81b031916908160001a9053509050612d2e565b6060613c0e856139a4565b90508381510160370160f81b82600081518110613c2757fe5b60200101906001600160f81b031916908160001a905350613c488282613adc565b95945050505050565b60008184841115613ce05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ca5578181015183820152602001613c8d565b50505050905090810190601f168015613cd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613d22575081602001516001600160a01b031683602001516001600160a01b0316145b8015613d47575081604001516001600160a01b031683604001516001600160a01b0316145b8015610bd85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b6040518060400160405280613d94613dd6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d69746475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f901b480f901b0f846941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf9477f066f3fb515bb97015e4b4afddbcb25c94286b86048c27395000f84694b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794748c284f46ab87fd492326f1e2fe731d22ad2db386048c27395000f84694a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f940ce09b38374887cb564b7efa60be130d99ed5f9586048c27395000f84694980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b2709407eecf36cf0901fefe4bc505d6ba03c7480c7b5786048c27395000f8469435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194f57d36e129881a3a13a024fe8072507e5b2e70f886048c27395000f84694f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594ddfcaedf9bb451098c9917a45f02bd61342cca6686048c273950006661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212203ab4e2f538c9084d689a3e9fdfcee54d2149c820c48e01a03c7f65be805a8edf64736f6c63430006040033 \ No newline at end of file diff --git a/core/systemcontracts/ramanujan/types.go b/core/systemcontracts/ramanujan/types.go new file mode 100644 index 0000000000..d881716aa9 --- /dev/null +++ b/core/systemcontracts/ramanujan/types.go @@ -0,0 +1,27 @@ +package ramanujan + +import _ "embed" + +// contract codes for Chapel upgrade +var ( + //go:embed chapel/ValidatorContract + ChapelValidatorContract string + //go:embed chapel/SlashContract + ChapelSlashContract string + //go:embed chapel/SystemRewardContract + ChapelSystemRewardContract string + //go:embed chapel/LightClientContract + ChapelLightClientContract string + //go:embed chapel/TokenHubContract + ChapelTokenHubContract string + //go:embed chapel/RelayerIncentivizeContract + ChapelRelayerIncentivizeContract string + //go:embed chapel/RelayerHubContract + ChapelRelayerHubContract string + //go:embed chapel/GovHubContract + ChapelGovHubContract string + //go:embed chapel/TokenManagerContract + ChapelTokenManagerContract string + //go:embed chapel/CrossChainContract + ChapelCrossChainContract string +) diff --git a/core/systemcontracts/upgrade.go b/core/systemcontracts/upgrade.go index 409608bd9e..71ecc5b197 100644 --- a/core/systemcontracts/upgrade.go +++ b/core/systemcontracts/upgrade.go @@ -9,6 +9,20 @@ import ( "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/params" + + "github.com/ethereum/go-ethereum/core/systemcontracts/bruno" + "github.com/ethereum/go-ethereum/core/systemcontracts/euler" + "github.com/ethereum/go-ethereum/core/systemcontracts/feynman" + feynmanFix "github.com/ethereum/go-ethereum/core/systemcontracts/feynman_fix" + "github.com/ethereum/go-ethereum/core/systemcontracts/gibbs" + "github.com/ethereum/go-ethereum/core/systemcontracts/kepler" + "github.com/ethereum/go-ethereum/core/systemcontracts/luban" + "github.com/ethereum/go-ethereum/core/systemcontracts/mirror" + "github.com/ethereum/go-ethereum/core/systemcontracts/moran" + "github.com/ethereum/go-ethereum/core/systemcontracts/niels" + "github.com/ethereum/go-ethereum/core/systemcontracts/planck" + "github.com/ethereum/go-ethereum/core/systemcontracts/plato" + "github.com/ethereum/go-ethereum/core/systemcontracts/ramanujan" ) type UpgradeConfig struct { @@ -75,52 +89,52 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061027d5760003560e01c80639dc092621161014f578063c8509d81116100c1578063eb57e2021161007a578063eb57e20214610940578063eda5868c14610973578063f340fa0114610988578063f9a2bbc7146109ae578063fc3e5908146109c3578063fd6a6879146109d85761027d565b8063c8509d8114610609578063d86222d5146108d7578063daacdb66146108ec578063dc927faf14610901578063e086c7b114610916578063e1c7392a1461092b5761027d565b8063ab51bb9611610113578063ab51bb961461074a578063ac4317511461075f578063ad3c9da61461082a578063b7ab4db51461085d578063bf9f49951461041b578063c81b1662146108c25761027d565b80639dc09262146106cd578063a1a11bf5146106e2578063a5422d5c146106f7578063a78abc161461070c578063aaf5eb68146107355761027d565b80635667515a116101f35780637942fd05116101ac5780637942fd05146105df57806381650b62146105f4578063831d65d114610609578063853230aa1461068e57806386249882146106a357806396713da9146106b85761027d565b80635667515a146105005780635d77156c146105155780636969a25c1461052a5780636e47b482146105a057806370fd5bad146105b557806375d47a0a146105ca5761027d565b80633dffc387116102455780633dffc3871461041b57806343756e5c14610446578063493279b1146104775780634bf6c882146104a357806351e80672146104b8578063565c56b3146104cd5761027d565b80630bee7a67146102825780631182b875146102b05780631ff18069146103aa578063219f22d5146103d157806335409f7f146103e6575b600080fd5b34801561028e57600080fd5b506102976109ed565b6040805163ffffffff9092168252519081900360200190f35b3480156102bc57600080fd5b50610335600480360360408110156102d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460018302840111600160201b8311171561032a57600080fd5b5090925090506109f2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036f578181015183820152602001610357565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b657600080fd5b506103bf610bdf565b60408051918252519081900360200190f35b3480156103dd57600080fd5b50610297610be5565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b0316610bea565b005b34801561042757600080fd5b50610430610efe565b6040805160ff9092168252519081900360200190f35b34801561045257600080fd5b5061045b610f03565b604080516001600160a01b039092168252519081900360200190f35b34801561048357600080fd5b5061048c610f09565b6040805161ffff9092168252519081900360200190f35b3480156104af57600080fd5b50610430610f0e565b3480156104c457600080fd5b5061045b610f13565b3480156104d957600080fd5b506103bf600480360360208110156104f057600080fd5b50356001600160a01b0316610f19565b34801561050c57600080fd5b50610430610f6b565b34801561052157600080fd5b50610297610f70565b34801561053657600080fd5b506105546004803603602081101561054d57600080fd5b5035610f75565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156105ac57600080fd5b5061045b610fd9565b3480156105c157600080fd5b50610430610fdf565b3480156105d657600080fd5b5061045b610fe4565b3480156105eb57600080fd5b50610430610fea565b34801561060057600080fd5b50610297610fef565b34801561061557600080fd5b506104196004803603604081101561062c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b509092509050610ff4565b34801561069a57600080fd5b506103bf6110a7565b3480156106af57600080fd5b506103bf6110ad565b3480156106c457600080fd5b506104306110b3565b3480156106d957600080fd5b5061045b6110b8565b3480156106ee57600080fd5b5061045b6110be565b34801561070357600080fd5b506103356110c4565b34801561071857600080fd5b506107216110e3565b604080519115158252519081900360200190f35b34801561074157600080fd5b506103bf6110ec565b34801561075657600080fd5b50610297610f6b565b34801561076b57600080fd5b506104196004803603604081101561078257600080fd5b810190602081018135600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b919390929091602081019035600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460018302840111600160201b8311171561081f57600080fd5b5090925090506110f5565b34801561083657600080fd5b506103bf6004803603602081101561084d57600080fd5b50356001600160a01b031661139c565b34801561086957600080fd5b506108726113ae565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108ae578181015183820152602001610896565b505050509050019250505060405180910390f35b3480156108ce57600080fd5b5061045b6114d4565b3480156108e357600080fd5b506103bf6114da565b3480156108f857600080fd5b506103bf6114e6565b34801561090d57600080fd5b5061045b6114ec565b34801561092257600080fd5b506103bf6114f2565b34801561093757600080fd5b506104196114f7565b34801561094c57600080fd5b506104196004803603602081101561096357600080fd5b50356001600160a01b03166116fa565b34801561097f57600080fd5b506102976118c9565b6104196004803603602081101561099e57600080fd5b50356001600160a01b03166118ce565b3480156109ba57600080fd5b5061045b611b04565b3480156109cf57600080fd5b50610430611b0a565b3480156109e457600080fd5b5061045b611b0f565b606481565b60005460609060ff16610a48576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610a885760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b610a90613d69565b6000610ad185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1592505050565b9150915080610aed57610ae46064611c6e565b92505050610bd8565b815160009060ff16610b0d57610b068360200151611ccf565b9050610ba4565b825160ff1660011415610ba057826020015151600114610b7a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180613e6c6025913960400191505060405180910390a1506067610b9b565b610b068360200151600081518110610b8e57fe5b6020026020010151612ad5565b610ba4565b5060655b63ffffffff8116610bc95750506040805160008152602081019091529150610bd89050565b610bd281611c6e565b93505050505b9392505050565b60035481565b606881565b3361100114610c2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610c4e5750610efb565b600181039050600060018281548110610c6357fe5b60009182526020909120600360049092020101546001549091506000190180610cb257600060018481548110610c9557fe5b906000526020600020906004020160030181905550505050610efb565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610e3457600180546000198101908110610d2957fe5b906000526020600020906004020160018481548110610d4457fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610e0957fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610e3f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610e9257fe5b0490508015610ef65760015460005b81811015610ef3578260018281548110610eb757fe5b9060005260206000209060040201600301540160018281548110610ed757fe5b6000918252602090912060036004909202010155600101610ea1565b50505b505050505b50565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b03811660009081526004602052604081205480610f41576000915050610f66565b600180820381548110610f5057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b60018181548110610f8257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101b78152602001613f066101b7913981565b60005460ff1681565b6402540be40081565b60005460ff16611148576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146111885760405162461bcd60e51b815260040180806020018281038252602e815260200180613e91602e913960400191505060405180910390fd5b6111f284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612c4c9050565b156112cd57602081146112365760405162461bcd60e51b8152600401808060200182810382526026815260200180613ee06026913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161127491858580838501838280828437600092019190915250612d3492505050565b90506064811015801561128a5750620186a08111155b6112c55760405162461bcd60e51b8152600401808060200182810382526027815260200180613e456027913960400191505060405180910390fd5b60025561130a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b828110156113ff57600181815481106113cd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166113f7576001909101905b6001016113b8565b5060608160405190808252806020026020018201604052801561142c578160200160208202803683370190505b50600092509050815b838110156114cc576001818154811061144a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166114c4576001818154811061147a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106114a557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611435565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561154f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611557613d69565b600061157d604051806101e001604052806101b78152602001613f066101b79139611b15565b91509150806115bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806140bd6021913960400191505060405180910390fd5b60005b8260200151518110156116e2576001836020015182815181106115df57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106116b557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016115c0565b50506103e8600255506000805460ff19166001179055565b336110011461173a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061175e5750610efb565b60018103905060006001828154811061177357fe5b906000526020600020906004020160030154905060006001838154811061179657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a28061180557505050610efb565b600081838161181057fe5b0490508015610ef65760005b8481101561186e57816001828154811061183257fe5b906000526020600020906004020160030154016001828154811061185257fe5b600091825260209091206003600490920201015560010161181c565b50600180549085015b81811015610ef357826001828154811061188d57fe5b90600052602060002090600402016003015401600182815481106118ad57fe5b6000918252602090912060036004909202010155600101611877565b606581565b33411461190c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061410d602d913960400191505060405180910390fd5b60005460ff1661195f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b600034116119ac576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205434908015611abf5760006001808303815481106119de57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611a49576040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611ab9565b600354611a5c908463ffffffff612d3916565b6003908155810154611a74908463ffffffff612d3916565b60038201556040805184815290516001600160a01b038616917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611aff565b6040805183815290516001600160a01b038516917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b505050565b61100081565b600381565b61100481565b611b1d613d69565b6000611b27613d69565b611b2f613d81565b611b40611b3b86612d93565b612db8565b90506000805b611b4f83612e02565b15611c605780611b7457611b6a611b6584612e23565b612e71565b60ff168452611c58565b8060011415611c53576060611b90611b8b85612e23565b612f28565b90508051604051908082528060200260200182016040528015611bcd57816020015b611bba613da1565b815260200190600190039081611bb25790505b50602086015260005b8151811015611c4857611be7613da1565b6000611c05848481518110611bf857fe5b6020026020010151612ff9565b9150915080611c2257876000995099505050505050505050611c69565b8188602001518481518110611c3357fe5b60209081029190910101525050600101611bd6565b506001925050611c58565b611c60565b600101611b46565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611c88579050509050611cae8363ffffffff166130d6565b81600081518110611cbb57fe5b6020026020010181905250610bd8816130e9565b6000806060611cdd84613173565b9150915081611d8a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d45578181015183820152602001611d2d565b50505050905090810190601f168015611d725780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050610f66565b600080805b600154811015611e075767016345785d8a000060018281548110611daf57fe5b90600052602060002090600402016003015410611dd157600190920191611dff565b600060018281548110611de057fe5b9060005260206000209060040201600301541115611dff576001909101905b600101611d8f565b50606082604051908082528060200260200182016040528015611e34578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015611e63578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611e92578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015611ec1578160200160208202803683370190505b5090506000606086604051908082528060200260200182016040528015611ef2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015611f21578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6e57600080fd5b505afa158015611f82573d6000803e3d6000fd5b505050506040513d6020811015611f9857600080fd5b5051905067016345785d8a000081111561200d577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180613ebf6021913960400191505060405180910390a160689d5050505050505050505050505050610f66565b60005b6001548110156122805767016345785d8a00006001828154811061203057fe5b906000526020600020906004020160030154106121b6576001818154811061205457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061208557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106120ba57fe5b906000526020600020906004020160030154816120d357fe5b06600183815481106120e157fe5b906000526020600020906004020160030154039050612109838261325590919063ffffffff16565b8a8e8151811061211557fe5b6020026020010181815250506001828154811061212e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061215f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061218c57fe5b60209081029190910101526121a7878263ffffffff612d3916565b6001909d019c96506122789050565b6000600182815481106121c557fe5b906000526020600020906004020160030154111561227857600181815481106121ea57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061221b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061224857fe5b906000526020600020906004020160030154848c8151811061226657fe5b60209081029190910101526001909a01995b600101612010565b50600085156126be576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156123125781810151838201526020016122fa565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015612351578181015183820152602001612339565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015612390578181015183820152602001612378565b505050509050019750505050505050506020604051808303818588803b1580156123b957600080fd5b505af1935050505080156123df57506040513d60208110156123da57600080fd5b505160015b61261a576040516000815260443d10156123fb57506000612496565b60046000803e60005160e01c6308c379a0811461241c576000915050612496565b60043d036004833e81513d60248201116001600160401b038211171561244757600092505050612496565b80830180516001600160401b03811115612468576000945050505050612496565b8060208301013d860181111561248657600095505050505050612496565b601f01601f191660405250925050505b806124a15750612545565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125055781810151838201526020016124ed565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612615565b3d80801561256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125d95781810151838201526020016125c1565b50505050905090810190601f1680156126065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6126be565b8015612658576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16126bc565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b80156128745760005b88518110156128725760008982815181106126de57fe5b602002602001015190506000600182815481106126f757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061272857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156127e4576001828154811061276957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106127b857fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612868565b600182815481106127f157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061284057fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016126c7565b505b8451156129be5760005b85518110156129bc57600086828151811061289557fe5b60200260200101516001600160a01b03166108fc8784815181106128b557fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561294b578682815181106128eb57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d87848151811061292957fe5b60200260200101516040518082815260200191505060405180910390a26129b3565b86828151811061295757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d87848151811061299557fe5b60200260200101516040518082815260200191505060405180910390a25b5060010161287e565b505b4715612a27576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612a25573d6000803e3d6000fd5b505b60006003819055600555825115612a4157612a4183613297565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a7e57600080fd5b505af1158015612a92573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612b265750600180820381548110612b0657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612b6c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050610f66565b600154600554600019820111801590612bc25784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050610f66565b600580546001908101909155805481906000198601908110612be057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612c815780518252601f199092019160209182019101612c62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612cef5780518252601f199092019160209182019101612cd0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610bd8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612d9b613dd6565b506040805180820190915281518152602082810190820152919050565b612dc0613d81565b612dc98261375e565b612dd257600080fd5b6000612de18360200151613798565b60208085015160408051808201909152868152920190820152915050919050565b6000612e0c613dd6565b505080518051602091820151919092015191011190565b612e2b613dd6565b612e3482612e02565b612e3d57600080fd5b60208201516000612e4d826137fb565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612e8657508151602110155b612e8f57600080fd5b6000612e9e8360200151613798565b90508083600001511015612ef9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015612f1f57826020036101000a820491505b50949350505050565b6060612f338261375e565b612f3c57600080fd5b6000612f478361392e565b9050606081604051908082528060200260200182016040528015612f8557816020015b612f72613dd6565b815260200190600190039081612f6a5790505b5090506000612f978560200151613798565b60208601510190506000805b84811015612fee57612fb4836137fb565b9150604051806040016040528083815260200184815250848281518110612fd757fe5b602090810291909101015291810191600101612fa3565b509195945050505050565b613001613da1565b600061300b613da1565b613013613d81565b61301c85612db8565b90506000805b61302b83612e02565b15611c6057806130565761304661304184612e23565b61398a565b6001600160a01b031684526130ce565b806001141561307e5761306b61304184612e23565b6001600160a01b031660208501526130ce565b80600214156130a65761309361304184612e23565b6001600160a01b031660408501526130ce565b8060031415611c53576130bb611b6584612e23565b6001600160401b03166060850152600191505b600101613022565b6060612d2e6130e4836139a4565b613a8a565b606081516000141561310a5750604080516000815260208101909152610f66565b60608260008151811061311957fe5b602002602001015190506000600190505b835181101561315a576131508285838151811061314357fe5b6020026020010151613adc565b915060010161312a565b50610bd861316d825160c060ff16613b59565b82613adc565b600060606029835111156131a5576000604051806060016040528060298152602001613df16029913991509150611c69565b60005b835181101561323b5760005b81811015613232578481815181106131c857fe5b6020026020010151600001516001600160a01b03168583815181106131e957fe5b6020026020010151600001516001600160a01b0316141561322a5760006040518060600160405280602b8152602001613e1a602b9139935093505050611c69565b6001016131b4565b506001016131a8565b505060408051602081019091526000815260019150915091565b6000610bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c51565b600154815160005b828110156133b45760016132b1613da1565b600183815481106132be57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156133885786818151811061334e57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156133805760009250613388565b60010161333a565b5081156133aa5780516001600160a01b03166000908152600460205260408120555b505060010161329f565b508082111561342957805b828110156134275760018054806133d257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b03191690556003909101919091559155016133bf565b505b6000818310613438578161343a565b825b905060005b81811015613634576134ec85828151811061345657fe5b60200260200101516001838154811061346b57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613ce8565b61360757806001016004600087848151811061350457fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061354057fe5b60200260200101516001828154811061355557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561362c565b60006001828154811061361657fe5b9060005260206000209060040201600301819055505b60010161343f565b508282111561375857825b82811015610ef657600185828151811061365557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a0909201516003909301929092558751908401929088908590811061372b57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161363f565b50505050565b805160009061376f57506000610f66565b6020820151805160001a9060c082101561378e57600092505050610f66565b5060019392505050565b8051600090811a60808110156137b2576000915050610f66565b60b88110806137cd575060c081108015906137cd575060f881105b156137dc576001915050610f66565b60c08110156137f05760b519019050610f66565b60f519019050610f66565b80516000908190811a60808110156138165760019150613927565b60b881101561382b57607e1981019150613927565b60c08110156138a557600060b78203600186019550806020036101000a86510491506001810182019350508083101561389f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613927565b60f88110156138ba5760be1981019150613927565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613925576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061393f57506000610f66565b600080905060006139538460200151613798565b602085015185519181019250015b8082101561398157613972826137fb565b60019093019290910190613961565b50909392505050565b805160009060151461399b57600080fd5b612d2e82612e71565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166139e857506018613a0c565b6fffffffffffffffffffffffffffffffff198416613a0857506010613a0c565b5060005b6020811015613a4257818181518110613a2157fe5b01602001516001600160f81b03191615613a3a57613a42565b600101613a0c565b60008160200390506060816040519080825280601f01601f191660200182016040528015613a77576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613abc5750607f60f81b82600081518110613aaa57fe5b01602001516001600160f81b03191611155b15613ac8575080610f66565b612d2e613ada8351608060ff16613b59565b835b6060806040519050835180825260208201818101602087015b81831015613b0d578051835260209283019201613af5565b50855184518101855292509050808201602086015b81831015613b3a578051835260209283019201613b22565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613ba9576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613c035782840160f81b81600081518110613be557fe5b60200101906001600160f81b031916908160001a9053509050612d2e565b6060613c0e856139a4565b90508381510160370160f81b82600081518110613c2757fe5b60200101906001600160f81b031916908160001a905350613c488282613adc565b95945050505050565b60008184841115613ce05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ca5578181015183820152602001613c8d565b50505050905090810190601f168015613cd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613d22575081602001516001600160a01b031683602001516001600160a01b0316145b8015613d47575081604001516001600160a01b031683604001516001600160a01b0316145b8015610bd85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b6040518060400160405280613d94613dd6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d69746475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f901b480f901b0f846941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf9477f066f3fb515bb97015e4b4afddbcb25c94286b86048c27395000f84694b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794748c284f46ab87fd492326f1e2fe731d22ad2db386048c27395000f84694a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f940ce09b38374887cb564b7efa60be130d99ed5f9586048c27395000f84694980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b2709407eecf36cf0901fefe4bc505d6ba03c7480c7b5786048c27395000f8469435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194f57d36e129881a3a13a024fe8072507e5b2e70f886048c27395000f84694f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594ddfcaedf9bb451098c9917a45f02bd61342cca6686048c273950006661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212203ab4e2f538c9084d689a3e9fdfcee54d2149c820c48e01a03c7f65be805a8edf64736f6c63430006040033", + Code: ramanujan.ChapelValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063831d65d111610130578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a146106d9578063f9a2bbc7146106e1578063fc3e5908146106e9578063fc4333cd146106f1578063fd6a6879146106f957610227565b8063c80d4b8f14610623578063c81b16621461062b578063c8509d8114610633578063c96be4cb146106ab578063dc927faf146106d157610227565b8063a1a11bf5116100ff578063a1a11bf514610531578063a78abc1614610539578063ab51bb9614610555578063ac0af6291461055d578063ac4317511461056557610227565b8063831d65d11461049f57806396713da9146105195780639bc8e4f2146105215780639dc092621461052957610227565b80634bf6c882116101b35780636e47b482116101825780636e47b4821461047757806370fd5bad1461047f57806375d47a0a146104875780637912a65d1461048f5780637942fd051461049757610227565b80634bf6c8821461045757806351e806721461045f578063567a372d1461046757806362b72cf51461046f57610227565b806337c8dab9116101fa57806337c8dab9146103b9578063389f4f71146103f85780633dffc3871461041257806343756e5c14610430578063493279b11461043857610227565b80630bee7a671461022c5780631182b8751461024d57806323bac5a21461033a57806335aa2e4414610380575b600080fd5b610234610701565b6040805163ffffffff9092168252519081900360200190f35b6102c56004803603604081101561026357600080fd5b60ff8235169190810190604081016020820135600160201b81111561028757600080fd5b82018360208201111561029957600080fd5b803590602001918460018302840111600160201b831117156102ba57600080fd5b509092509050610706565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ff5781810151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103606004803603602081101561035057600080fd5b50356001600160a01b03166107da565b604080519384526020840192909252151582820152519081900360600190f35b61039d6004803603602081101561039657600080fd5b50356107fd565b604080516001600160a01b039092168252519081900360200190f35b6103df600480360360208110156103cf57600080fd5b50356001600160a01b0316610824565b6040805192835260208301919091528051918290030190f35b61040061087b565b60408051918252519081900360200190f35b61041a610881565b6040805160ff9092168252519081900360200190f35b61039d610886565b61044061088c565b6040805161ffff9092168252519081900360200190f35b61041a610891565b61039d610896565b61040061089c565b6104006108a2565b61039d6108a8565b61041a6108ae565b61039d6108b3565b6104006108b9565b61041a6108be565b610517600480360360408110156104b557600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d957600080fd5b8201836020820111156104eb57600080fd5b803590602001918460018302840111600160201b8311171561050c57600080fd5b5090925090506108c3565b005b61041a610a1e565b610400610a23565b61039d610a2e565b61039d610a34565b610541610a3a565b604080519115158252519081900360200190f35b610234610a43565b610400610a48565b6105176004803603604081101561057b57600080fd5b810190602081018135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460018302840111600160201b831117156105c857600080fd5b919390929091602081019035600160201b8111156105e557600080fd5b8201836020820111156105f757600080fd5b803590602001918460018302840111600160201b8311171561061857600080fd5b509092509050610a4d565b610400610e3b565b61039d610e40565b6105176004803603604081101561064957600080fd5b60ff8235169190810190604081016020820135600160201b81111561066d57600080fd5b82018360208201111561067f57600080fd5b803590602001918460018302840111600160201b831117156106a057600080fd5b509092509050610e46565b610517600480360360208110156106c157600080fd5b50356001600160a01b0316610ef9565b61039d61131e565b610517611324565b61039d611395565b61041a61139b565b6105176113a0565b61039d61182b565b606481565b606033612000146107485760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff1661078d576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061080a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061082f612146565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606081565b600881565b61200081565b60045481565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b33612000146109035760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610948576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b610950612169565b600061099184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061183192505050565b9150915080156109db5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a17565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15b5050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610a92576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b3361100714610ad25760405162461bcd60e51b815260040180806020018281038252602e81526020018061220d602e913960400191505060405180910390fd5b610b3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506118b19050565b15610c165760208114610b815760405162461bcd60e51b81526004018080602001828103825260278152602001806121b66027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610bbf9185858083850183828082843760009201919091525061199992505050565b905060018110158015610bd3575060055481105b610c0e5760405162461bcd60e51b815260040180806020018281038252602581526020018061225d6025913960400191505060405180910390fd5b600455610da9565b610c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506118b19050565b15610d6c5760208114610cc05760405162461bcd60e51b815260040180806020018281038252602281526020018061223b6022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610cfe9185858083850183828082843760009201919091525061199992505050565b90506103e88111158015610d13575060045481115b610d64576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610da9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b3361200014610e865760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610ecb576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610f375760405162461bcd60e51b815260040180806020018281038252602d8152602001806122b1602d913960400191505060405180910390fd5b60005460ff16610f7c576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6003544311610fd2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a1561101c576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b611024612146565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061107f5760208101805160010190526110d8565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b4381526005546020820151816110ea57fe5b0661123c57600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6111718561199e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156111d15781810151838201526020016111b9565b50505050905090810190601f1680156111fe5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561121f57600080fd5b505af1158015611233573d6000803e3d6000fd5b505050506112b2565b60045481602001518161124b57fe5b066112b257604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505043600355565b61100381565b60005460ff161561137c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146113e05760405162461bcd60e51b81526004018080602001828103825260308152602001806121dd6030913960400191505060405180910390fd5b60005460ff16611425576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b60015461143157611829565b600154600090600019015b8082116117fd576000805b8284101561156057611457612146565b600260006001878154811061146857fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff16151590820152600554909150600490048160200151111561154a576004600554816114d557fe5b048160200151038160200181815250508060026000600188815481106114f757fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611554565b6001925050611560565b50600190930192611447565b8284116116f75761156f612146565b600260006001868154811061158057fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611668576004600554816115ed57fe5b0481602001510381602001818152505080600260006001878154811061160f57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506116f79050565b600260006001868154811061167957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806116bd57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836116ea57506116f7565b5060001990920191611560565b8180156117015750805b156117e057600260006001868154811061171757fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061175e57fe5b600091825260209091200154600180546001600160a01b03909216918690811061178457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117bd57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b826117ec5750506117fd565b50506001909101906000190161143c565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b611839612169565b6000611843612169565b61184b61217b565b61185c61185786611a70565b611a95565b90506000805b61186b83611adf565b156118a457806118975761188661188184611b00565b611b4e565b63ffffffff1684526001915061189c565b6118a4565b600101611862565b5091935090915050915091565b6000816040516020018082805190602001908083835b602083106118e65780518252601f1990920191602091820191016118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106119545780518252601f199092019160209182019101611935565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816119b95790505090506119e2836001600160a01b0316611c05565b816000815181106119ef57fe5b6020026020010181905250611a0343611c28565b81600181518110611a1057fe5b6020908102919091010152611a256060611c28565b81600281518110611a3257fe5b6020026020010181905250611a4642611c28565b81600381518110611a5357fe5b6020026020010181905250611a6781611c3b565b9150505b919050565b611a7861219b565b506040805180820190915281518152602082810190820152919050565b611a9d61217b565b611aa682611cc5565b611aaf57600080fd5b6000611abe8360200151611cff565b60208085015160408051808201909152868152920190820152915050919050565b6000611ae961219b565b505080518051602091820151919092015191011190565b611b0861219b565b611b1182611adf565b611b1a57600080fd5b60208201516000611b2a82611d62565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611b6357508151602110155b611b6c57600080fd5b6000611b7b8360200151611cff565b90508083600001511015611bd6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611bfc57826020036101000a820491505b50949350505050565b60408051600560a21b8318601482015260348101909152606090611a6781611e95565b6060611993611c3683611eeb565b611e95565b6060815160001415611c5c5750604080516000815260208101909152611a6b565b606082600081518110611c6b57fe5b602002602001015190506000600190505b8351811015611cac57611ca282858381518110611c9557fe5b6020026020010151611fd1565b9150600101611c7c565b50611a67611cbf825160c060ff1661204e565b82611fd1565b8051600090611cd657506000611a6b565b6020820151805160001a9060c0821015611cf557600092505050611a6b565b5060019392505050565b8051600090811a6080811015611d19576000915050611a6b565b60b8811080611d34575060c08110801590611d34575060f881105b15611d43576001915050611a6b565b60c0811015611d575760b519019050611a6b565b60f519019050611a6b565b80516000908190811a6080811015611d7d5760019150611e8e565b60b8811015611d9257607e1981019150611e8e565b60c0811015611e0c57600060b78203600186019550806020036101000a865104915060018101820193505080831015611e06576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611e8e565b60f8811015611e215760be1981019150611e8e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611e8c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b606081516001148015611ec75750607f60f81b82600081518110611eb557fe5b01602001516001600160f81b03191611155b15611ed3575080611a6b565b611993611ee58351608060ff1661204e565b83611fd1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f2f57506018611f53565b6fffffffffffffffffffffffffffffffff198416611f4f57506010611f53565b5060005b6020811015611f8957818181518110611f6857fe5b01602001516001600160f81b03191615611f8157611f89565b600101611f53565b60008160200390506060816040519080825280601f01601f191660200182016040528015611fbe576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612002578051835260209283019201611fea565b50855184518101855292509050808201602086015b8183101561202f578051835260209283019201612017565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061209e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116120f85782840160f81b816000815181106120da57fe5b60200101906001600160f81b031916908160001a9053509050611993565b606061210385611eeb565b90508381510160370160f81b8260008151811061211c57fe5b60200101906001600160f81b031916908160001a90535061213d8282611fd1565b95945050505050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061218e61219b565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a26469706673582212204ff575d7be356d691e7b7eae41716a4ccc366ec84f8235486e935261df61a18a64736f6c63430006040033", + Code: ramanujan.ChapelSlashContract, }, { ContractAddr: common.HexToAddress(SystemRewardContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061014f5760003560e01c806396713da9116100b6578063c81b16621161006f578063c81b1662146103dc578063dc927faf146103f1578063f9a2bbc714610406578063fb5478b31461041b578063fc3e590814610430578063fd6a68791461044557610193565b806396713da91461033a5780639a99b4f01461034f5780639dc0926214610388578063a1a11bf51461039d578063a78abc16146103b2578063ab51bb96146103c757610193565b806351e806721161010857806351e806721461028a5780636d70f7ae1461029f5780636e47b482146102e657806370fd5bad146102fb57806375d47a0a146103105780637942fd051461032557610193565b80630bee7a67146101985780633a0b0eff146101c65780633dffc387146101ed57806343756e5c14610218578063493279b1146102495780634bf6c8821461027557610193565b366101935734156101915760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101a457600080fd5b506101ad61045a565b6040805163ffffffff9092168252519081900360200190f35b3480156101d257600080fd5b506101db61045f565b60408051918252519081900360200190f35b3480156101f957600080fd5b50610202610465565b6040805160ff9092168252519081900360200190f35b34801561022457600080fd5b5061022d61046a565b604080516001600160a01b039092168252519081900360200190f35b34801561025557600080fd5b5061025e610470565b6040805161ffff9092168252519081900360200190f35b34801561028157600080fd5b50610202610475565b34801561029657600080fd5b5061022d61047a565b3480156102ab57600080fd5b506102d2600480360360208110156102c257600080fd5b50356001600160a01b0316610480565b604080519115158252519081900360200190f35b3480156102f257600080fd5b5061022d61049e565b34801561030757600080fd5b506102026104a4565b34801561031c57600080fd5b5061022d6104a9565b34801561033157600080fd5b506102026104af565b34801561034657600080fd5b506102026104b4565b34801561035b57600080fd5b506101db6004803603604081101561037257600080fd5b506001600160a01b0381351690602001356104b9565b34801561039457600080fd5b5061022d610664565b3480156103a957600080fd5b5061022d61066a565b3480156103be57600080fd5b506102d2610670565b3480156103d357600080fd5b506101ad610679565b3480156103e857600080fd5b5061022d61067e565b3480156103fd57600080fd5b5061022d610684565b34801561041257600080fd5b5061022d61068a565b34801561042757600080fd5b506101db610690565b34801561043c57600080fd5b5061020261069c565b34801561045157600080fd5b5061022d6106a1565b606481565b60015481565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b61100881565b600b81565b600981565b6000805460ff1661053657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166105845760405162461bcd60e51b815260040180806020018281038252602b8152602001806106a8602b913960400191505060405180910390fd5b60004783106105935747610595565b825b9050670de0b6b3a76400008111156105b25750670de0b6b3a76400005b8015610633576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156105ee573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261065d565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b6110048156fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f64a2646970667358221220d0a7618a32d393c0757994fad066c9aaf7342a982498e0748019ec232f5dc86764736f6c63430006040033", + Code: ramanujan.ChapelSystemRewardContract, }, { ContractAddr: common.HexToAddress(LightClientContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102115760003560e01c8063a78abc1611610125578063dda83148116100ad578063e405bbc31161007c578063e405bbc314610681578063ea54b2aa14610689578063f9a2bbc714610691578063fc3e590814610699578063fd6a6879146106a157610211565b8063dda8314814610609578063df5fe7041461062f578063e1c7392a14610655578063e2761af01461065d57610211565b8063c81b1662116100f4578063c81b166214610534578063cba510a91461053c578063d816987914610562578063da8d08f0146105db578063dc927faf1461060157610211565b8063a78abc1614610444578063ab51bb9614610460578063ac43175114610468578063adc879e91461052c57610211565b8063564b81ef116101a857806375d47a0a1161017757806375d47a0a1461041c5780637942fd051461042457806396713da91461042c5780639dc0926214610434578063a1a11bf51461043c57610211565b8063564b81ef146102ca5780635c5ae8db146103475780636e47b4821461040c57806370fd5bad1461041457610211565b806343756e5c116101e457806343756e5c14610277578063493279b11461029b5780634bf6c882146102ba57806351e80672146102c257610211565b80630bee7a67146102165780632657e9b61461023757806333f7798d146102515780633dffc38714610259575b600080fd5b61021e6106a9565b6040805163ffffffff9092168252519081900360200190f35b61023f6106ae565b60408051918252519081900360200190f35b61023f6106b9565b6102616106bf565b6040805160ff9092168252519081900360200190f35b61027f6106c4565b604080516001600160a01b039092168252519081900360200190f35b6102a36106ca565b6040805161ffff9092168252519081900360200190f35b6102616106cf565b61027f6106d4565b6102d26106da565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030c5781810151838201526020016102f4565b50505050905090810190601f1680156103395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61036d6004803603602081101561035d57600080fd5b50356001600160401b03166107e6565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ce5781810151838201526020016103b6565b50505050905090810190601f1680156103fb5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61027f6108a1565b6102616108a7565b61027f6108ac565b6102616108b2565b6102616108b7565b61027f6108bc565b61027f6108c2565b61044c6108c8565b604080519115158252519081900360200190f35b61021e6108d1565b61052a6004803603604081101561047e57600080fd5b81019060208101813564010000000081111561049957600080fd5b8201836020820111156104ab57600080fd5b803590602001918460018302840111640100000000831117156104cd57600080fd5b9193909290916020810190356401000000008111156104eb57600080fd5b8201836020820111156104fd57600080fd5b8035906020019184600183028401116401000000008311171561051f57600080fd5b5090925090506108d6565b005b61023f610b8f565b61027f610b95565b61023f6004803603602081101561055257600080fd5b50356001600160401b0316610b9b565b61044c6004803603604081101561057857600080fd5b81019060208101813564010000000081111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460018302840111640100000000831117156105c757600080fd5b9193509150356001600160401b0316610bba565b61027f600480360360208110156105f157600080fd5b50356001600160401b031661139b565b61027f6113b6565b61027f6004803603602081101561061f57600080fd5b50356001600160401b03166113bc565b61044c6004803603602081101561064557600080fd5b50356001600160401b03166113e0565b61052a611422565b6106656115c7565b604080516001600160401b039092168252519081900360200190f35b6106656115d6565b6102d26115ec565b61027f611609565b61026161160f565b61027f611614565b606481565b662386f26fc1000081565b60055481565b600181565b61100181565b606081565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561075057828160ff168151811061072457fe5b01602001516001600160f81b0319161561074357600190910190610748565b610750565b600101610709565b5060608160ff166040519080825280601f01601f191660200182016040528015610781576020820181803683370190505b50905060005b8260ff168160ff1610156107dd57838160ff16815181106107a457fe5b602001015160f81c60f81b828260ff16815181106107be57fe5b60200101906001600160f81b031916908160001a905350600101610787565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905084565b61100581565b600281565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661092d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461096d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac6602e913960400191505060405180910390fd5b6109e184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e676500000000006020820152915061161a9050565b15610ac05760208114610a255760405162461bcd60e51b815260040180806020018281038252602e815260200180611a65602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a639185858083850183828082843760009201919091525061170192505050565b9050600081118015610a7d5750670de0b6b3a76400008111155b610ab85760405162461bcd60e51b815260040180806020018281038252602f815260200180611af4602f913960400191505060405180910390fd5b600555610afd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d6020811015610c2757600080fd5b5051610c7a576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610cee576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b236026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610d56611863565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610e5957506003546001600160401b0390811690831610155b15610f3a5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b5050505050815250509050610e28565b6060810151516110315780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f810183900483028401830190945283835293955090929190830182828015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b505050506060830182905250516110315760405162461bcd60e51b8152600401808060200182810382526021815260200180611a446021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611070576020820181803683370190505b509050600061107e82611706565b905061108c8486838661170c565b6110c75760405162461bcd60e51b81526004018080602001828103825260238152602001806119416023913960400191505060405180910390fd5b6000838201915061110d8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177892505050565b9450905061111c818386611782565b8251602001935061112b611889565b6110008186866064600019fa61114057600080fd5b805194506000600160f81b8616156111cf5750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d60208110156111cc57600080fd5b50505b856001600160401b0316955060208201935060006111ef858884156117c3565b90985090506001600160401b03808216908c161461123e5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a936033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b93926112c59260038501929101906118a8565b50506003546001600160401b03600160401b9091048116908d161115905061130d576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b031615158061141c57506003546001600160401b038381169116145b92915050565b60005460ff161561147a576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061149f60405180610100016040528060e0815260200161196460e09139611778565b815160045590925090506114b1611863565b60006114bf848460006117c3565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff191694169390931783558086015191830191909155918401516002820155606084015180519496509294508593909261152b9260038501929101906118a8565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e0815260200161196460e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b6020831061164f5780518252601f199092019160209182019101611630565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106116bd5780518252601f19909201916020918201910161169e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b600084606001515182840103925060008061172a8760600151611778565b909250905061173a828683611782565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b602081106117a2578251825260209283019290910190601f1901611783565b915181516020939093036101000a6000190180199091169216919091179052565b6117cb611863565b60088401516028850151604890950180519095600092916117ea611863565b6020810183905260408101829052866118555760008060688a036040519080825280601f01601f19166020018201604052801561182e576020820181803683370190505b506060840181905261183f90611778565b909250905061185260208c018383611782565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118e957805160ff1916838001178555611916565b82800160010185558215611916579182015b828111156119165782518255916020019190600101906118fb565b50611922929150611926565b5090565b6107e391905b80821115611922576000815560010161192c56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e676563616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a26469706673582212205276b0300b4926074c5521abe49ba680eda1820c6f75c2779994658ed250924164736f6c63430006040033", + Code: ramanujan.ChapelLightClientContract, }, { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e5908146109c9578063fd6a687914610ce6578063ff9c0027146107c757610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063dc6f5e90116100d1578063dc6f5e90146109c9578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063a7c9f02d11610164578063ac4317511161013e578063ac43175114610a3a578063b770186114610b05578063b99328c514610b1a578063b9fd21e314610b5357610366565b8063a7c9f02d146109c9578063aa7415f5146109de578063ab51bb9614610a2557610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a5cd588b14610981578063a78abc16146109b457610366565b80635d499b1b1161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105b25780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b80635d499b1b14610671578063613684751461036b5780636e056520146106865780636e47b482146107b257806370fd5bad146107c757806371d30863146107dc57610366565b806343756e5c116102d75780634bf6c882116102b15780634bf6c8821461036b57806350432d321461061d57806351e806721461063257806359b927891461064757610366565b806343756e5c146105c757806343a368b9146105dc578063493279b1146105f157610366565b8063077b8f351461036b5780630bee7a67146103965780631182b875146103c4578063149d14d9146104be5780633d713223146104e55780633dffc387146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805160ff9092168252519081900360200190f35b3480156103a257600080fd5b506103ab610d00565b6040805163ffffffff9092168252519081900360200190f35b3480156103d057600080fd5b50610449600480360360408110156103e757600080fd5b60ff8235169190810190604081016020820135600160201b81111561040b57600080fd5b82018360208201111561041d57600080fd5b803590602001918460018302840111600160201b8311171561043e57600080fd5b509092509050610d05565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048357818101518382015260200161046b565b50505050905090810190601f1680156104b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ca57600080fd5b506104d3610e33565b60408051918252519081900360200190f35b3480156104f157600080fd5b506105966004803603602081101561050857600080fd5b810190602081018135600160201b81111561052257600080fd5b82018360208201111561053457600080fd5b803590602001918460018302840111600160201b8311171561055557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e39945050505050565b604080516001600160a01b039092168252519081900360200190f35b3480156105be57600080fd5b50610380610e5d565b3480156105d357600080fd5b50610596610e62565b3480156105e857600080fd5b506104d3610e68565b3480156105fd57600080fd5b50610606610e74565b6040805161ffff9092168252519081900360200190f35b34801561062957600080fd5b506104d3610e79565b34801561063e57600080fd5b50610596610e84565b34801561065357600080fd5b506105966004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104d3610ea5565b61079e6004803603608081101561069c57600080fd5b810190602081018135600160201b8111156106b657600080fd5b8201836020820111156106c857600080fd5b803590602001918460208302840111600160201b831117156106e957600080fd5b919390929091602081019035600160201b81111561070657600080fd5b82018360208201111561071857600080fd5b803590602001918460208302840111600160201b8311171561073957600080fd5b919390929091602081019035600160201b81111561075657600080fd5b82018360208201111561076857600080fd5b803590602001918460208302840111600160201b8311171561078957600080fd5b91935091503567ffffffffffffffff16610eae565b604080519115158252519081900360200190f35b3480156107be57600080fd5b50610596611383565b3480156107d357600080fd5b50610380611389565b3480156107e857600080fd5b506104d361138e565b3480156107fd57600080fd5b50610596611394565b34801561081257600080fd5b5061038061139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061038061156e565b34801561090057600080fd5b506104d3611573565b34801561091557600080fd5b506104d36004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b506105966116bd565b34801561096357600080fd5b506105966116c3565b34801561097857600080fd5b506103806116c9565b34801561098d57600080fd5b506104d3600480360360208110156109a457600080fd5b50356001600160a01b03166116ce565b3480156109c057600080fd5b5061079e6116e0565b3480156109d557600080fd5b506103806116e9565b61079e600480360360808110156109f457600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116ee565b348015610a3157600080fd5b506103ab6116c9565b348015610a4657600080fd5b5061036460048036036040811015610a5d57600080fd5b810190602081018135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b919390929091602081019035600160201b811115610ac757600080fd5b820183602082011115610ad957600080fd5b803590602001918460018302840111600160201b83111715610afa57600080fd5b509092509050611daf565b348015610b1157600080fd5b506104d361201e565b348015610b2657600080fd5b5061036460048036036040811015610b3d57600080fd5b50803590602001356001600160a01b0316612024565b348015610b5f57600080fd5b506104d361209a565b348015610b7457600080fd5b506104d360048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b506105966120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b50610596612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061038061223b565b348015610c8057600080fd5b50610380612240565b348015610c9557600080fd5b50610596612245565b348015610caa57600080fd5b506104d361224b565b348015610cbf57600080fd5b5061044960048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b50610596612378565b600881565b606481565b60005460609060ff16610d4d576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b3361200014610d8d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff841660021415610ddf57610dd883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e2c565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606081565b662386f26fc1000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b6000805460ff16610ef4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b868514610f325760405162461bcd60e51b815260040180806020018281038252603b815260200180614732603b913960400191505060405180910390fd5b868314610f705760405162461bcd60e51b815260040180806020018281038252603f815260200180614605603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fbc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156110005760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611033578160200160208202803683370190505b50905060005b8481101561110e576402540be4008b8b8381811061105357fe5b905060200201358161106157fe5b061561109e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6110c38b8b838181106110ad57fe5b90506020020135856124a290919063ffffffff16565b93506110ef6402540be4008c8c848181106110da57fe5b905060200201356124fc90919063ffffffff16565b8282815181106110fb57fe5b6020908102919091010152600101611039565b5060015461113390611126908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111715760405162461bcd60e51b81526004018080602001828103825260568152602001806147df6056913960600191505060405180910390fd5b611181348463ffffffff61259716565b915061118b61434e565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361124f846125d9565b611264876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c25781810151838201526020016112aa565b50505050905090810190601f1680156112ef5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b600281565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614468602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60026020526000908152604090205481565b60005460ff1681565b600381565b6000805460ff16611734576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156117805760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156117c45760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b600080806001600160a01b0388166118a3576001546117ea90879063ffffffff6124a216565b3410156118285760405162461bcd60e51b815260040180806020018281038252606181526020018061457f6061913960800191505060405180910390fd5b6402540be40086061561186c5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b61187c348763ffffffff61259716565b9050611893866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b46565b6001600160a01b0388166000908152600360205260409020549250826118fa5760405162461bcd60e51b815260040180806020018281038252603181526020018061454e6031913960400191505060405180910390fd5b60015434101561193b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806146a1603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061198657506008811180156119865750611984876007198301600a0a63ffffffff6128f016565b155b6119c15760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6119cb8782612932565b92506119d684612972565b15611a1e576305f5e100831015611a1e5760405162461bcd60e51b815260040180806020018281038252603a815260200180614497603a913960400191505060405180910390fd5b600881101580611a385750600881108015611a3857508683115b611a735760405162461bcd60e51b81526004018080602001828103825260258152602001806145e06025913960400191505060405180910390fd5b677ce66c50e2840000831115611aba5760405162461bcd60e51b81526004018080602001828103825260358152602001806145196035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b5051611b4457600080fd5b505b611b4e61434e565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bfc57fe5b602002602001018181525050878160600151600081518110611c1a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c4c57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c77846125d9565b611c8c866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cea578181015183820152602001611cd2565b50505050905090810190601f168015611d175780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611def5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146e0602e913960400191505060405180910390fd5b60208114611e44576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f4c576020820151670de0b6b3a76400008111801590611ef357506402540be4008106155b611f44576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61c35081565b33611008146120645760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b662386f26fc1000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b606061238861439a565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143cf565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e58565b50506040805160008152602081019091529150610e589050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146806021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143f6565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b815260040180806020018281038252602481526020018061470e6024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600860ff82161015612a0057600092505050610e58565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e58565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e58565b5060019392505050565b612a8061434e565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144d16024913960400191505060405180910390fd5b612ad36143f6565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613bc6565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e61439a565b6000612b8861439a565b612b9061442d565b612ba1612b9c86613bff565b613c24565b90506000805b612bb083613c6e565b15612ca85780612bd257612bcb612bc684613c8f565b613cdd565b8452612ca0565b8060011415612bff57612bec612be784613c8f565b613d94565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c8f565b6040850152612ca0565b8060031415612c4657612c33612be784613c8f565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c8f565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c8f565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e58565b8160400151471015612cfc57506003610e58565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e58565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e58565b8160a0015167ffffffffffffffff16421115612e0a57506001610e58565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e58565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e58565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e589050565b5060059150610e589050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2c81613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613dae565b613e94565b60408051600560a21b8318601482015260348101909152606090610e2c81613e94565b60608151600014156132315750604080516000815260208101909152610e58565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ee6565b9150600101613251565b50610e2c613294825160c060ff16613f63565b82613ee6565b6132a26143f6565b60006132ac6143f6565b6132b461442d565b6132c0612b9c86613bff565b90506000805b6132cf83613c6e565b15612ca857806132f5576132e5612be784613c8f565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c8f565b61405b565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cdd565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c8f565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d94565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c8f565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b61395361434e565b600061395d61434e565b61396561442d565b613971612b9c86613bff565b90506000805b61398083613c6e565b15613bb8578061399d57613996612bc684613c8f565b8452613bb0565b80600114156139c5576139b2612be784613c8f565b6001600160a01b03166020850152613bb0565b8060021415613a545760606139dc61330c85613c8f565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613bb0565b8060031415613ae9576060613a6b61330c85613c8f565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c8f565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415613bab57613b93612bc684613c8f565b67ffffffffffffffff1660a085015260019150613bb0565b613bb8565b600101613977565b509195600195509350505050565b60006008821115613be857612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613c0761444d565b506040805180820190915281518152602082810190820152919050565b613c2c61442d565b613c358261412c565b613c3e57600080fd5b6000613c4d836020015161415c565b60208085015160408051808201909152868152920190820152915050919050565b6000613c7861444d565b505080518051602091820151919092015191011190565b613c9761444d565b613ca082613c6e565b613ca957600080fd5b60208201516000613cb9826141bf565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cf257508151602110155b613cfb57600080fd5b6000613d0a836020015161415c565b90508083600001511015613d65576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d8b57826020036101000a820491505b50949350505050565b8051600090601514613da557600080fd5b6116b782613cdd565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613df257506018613e16565b6fffffffffffffffffffffffffffffffff198416613e1257506010613e16565b5060005b6020811015613e4c57818181518110613e2b57fe5b01602001516001600160f81b03191615613e4457613e4c565b600101613e16565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ec65750607f60f81b82600081518110613eb457fe5b01602001516001600160f81b03191611155b15613ed2575080610e58565b6116b7613ee48351608060ff16613f63565b835b6060806040519050835180825260208201818101602087015b81831015613f17578051835260209283019201613eff565b50855184518101855292509050808201602086015b81831015613f44578051835260209283019201613f2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613fb3576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161400d5782840160f81b81600081518110613fef57fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061401885613dae565b90508381510160370160f81b8260008151811061403157fe5b60200101906001600160f81b031916908160001a9053506140528282613ee6565b95945050505050565b60606140668261412c565b61406f57600080fd5b600061407a836142f2565b90506060816040519080825280602002602001820160405280156140b857816020015b6140a561444d565b81526020019060019003908161409d5790505b50905060006140ca856020015161415c565b60208601510190506000805b84811015614121576140e7836141bf565b915060405180604001604052808381526020018481525084828151811061410a57fe5b6020908102919091010152918101916001016140d6565b509195945050505050565b805160009061413d57506000610e58565b6020820151805160001a9060c0821015612a6e57600092505050610e58565b8051600090811a6080811015614176576000915050610e58565b60b8811080614191575060c08110801590614191575060f881105b156141a0576001915050610e58565b60c08110156141b45760b519019050610e58565b60f519019050610e58565b80516000908190811a60808110156141da57600191506142eb565b60b88110156141ef57607e19810191506142eb565b60c081101561426957600060b78203600186019550806020036101000a865104915060018101820193505080831015614263576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142eb565b60f881101561427e5760be19810191506142eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061430357506000610e58565b60008090506000614317846020015161415c565b602085015185519181019250015b8082101561434557614336826141bf565b60019093019290910190614325565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061444061444d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220560ad3b1f9184c6b58a836a4c111faf5fdf5dc0e93dc1c013cd41cea18c69cbb64736f6c63430006040033", + Code: ramanujan.ChapelTokenHubContract, }, { ContractAddr: common.HexToAddress(RelayerIncentivizeContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106102765760003560e01c80637e146cc51161014f578063af400681116100c1578063e75d72c71161007a578063e75d72c714610795578063e89a3020146107c8578063f9a2bbc7146107f2578063fc3e590814610807578063fd6a68791461081c578063fdd31fcd146108315761027d565b8063af400681146106ed578063bd4cc83014610717578063c81b166214610741578063dc927faf14610756578063dcae76ab1461076b578063e1c7392a146107805761027d565b8063a3c3c0ad11610113578063a3c3c0ad146105b3578063a78abc16146105c8578063a7c6a59d146105dd578063ab51bb96146105f2578063ac43175114610607578063ace9fcc2146106d85761027d565b80637e146cc51461052c578063930e1b091461054157806396713da9146105745780639dc0926214610589578063a1a11bf51461059e5761027d565b806343756e5c116101e85780636e47b482116101ac5780636e47b482146104645780636f93d2e61461047957806370fd5bad146104d857806374f2272d146104ed57806375d47a0a146105025780637942fd05146105175761027d565b806343756e5c146103e4578063493279b1146103f95780634bf6c8821461042557806351e806721461043a578063541333071461044f5761027d565b806312950c461161023a57806312950c46146103165780631b20087c1461032b5780631c643312146103405780633a975612146102825780633dffc3871461038657806340bb43c0146103b15761027d565b8063081e9d131461028257806308f2ec06146102a9578063093f2fc4146102be5780630bee7a67146102d357806310e06a76146103015761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610864565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610869565b3480156102ca57600080fd5b5061029761086e565b3480156102df57600080fd5b506102e8610873565b6040805163ffffffff9092168252519081900360200190f35b34801561030d57600080fd5b50610297610878565b34801561032257600080fd5b5061029761087e565b34801561033757600080fd5b50610297610884565b34801561034c57600080fd5b5061036a6004803603602081101561036357600080fd5b503561088a565b604080516001600160a01b039092168252519081900360200190f35b34801561039257600080fd5b5061039b610864565b6040805160ff9092168252519081900360200190f35b3480156103bd57600080fd5b50610297600480360360208110156103d457600080fd5b50356001600160a01b03166108b1565b3480156103f057600080fd5b5061036a6108c3565b34801561040557600080fd5b5061040e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561043157600080fd5b5061039b6108ce565b34801561044657600080fd5b5061036a6108d3565b34801561045b57600080fd5b50610297610873565b34801561047057600080fd5b5061036a6108d9565b34801561048557600080fd5b506104c46004803603608081101561049c57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108df565b604080519115158252519081900360200190f35b3480156104e457600080fd5b5061039b610cad565b3480156104f957600080fd5b50610297610cb2565b34801561050e57600080fd5b5061036a610cb8565b34801561052357600080fd5b5061039b610cbe565b34801561053857600080fd5b50610297610cc3565b34801561054d57600080fd5b506102976004803603602081101561056457600080fd5b50356001600160a01b0316610cc8565b34801561058057600080fd5b5061039b610cda565b34801561059557600080fd5b5061036a610cdf565b3480156105aa57600080fd5b5061036a610ce5565b3480156105bf57600080fd5b50610297610ceb565b3480156105d457600080fd5b506104c4610cf1565b3480156105e957600080fd5b50610297610cfa565b3480156105fe57600080fd5b506102e8610d00565b34801561061357600080fd5b506106d66004803603604081101561062a57600080fd5b81019060208101813564010000000081111561064557600080fd5b82018360208201111561065757600080fd5b8035906020019184600183028401116401000000008311171561067957600080fd5b91939092909160208101903564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b509092509050610d05565b005b3480156106e457600080fd5b50610297611354565b3480156106f957600080fd5b506102976004803603602081101561071057600080fd5b503561135a565b34801561072357600080fd5b506102976004803603602081101561073a57600080fd5b50356113b5565b34801561074d57600080fd5b5061036a6113ce565b34801561076257600080fd5b5061036a6113d4565b34801561077757600080fd5b506102976113da565b34801561078c57600080fd5b506106d66113e0565b3480156107a157600080fd5b506106d6600480360360208110156107b857600080fd5b50356001600160a01b03166114a9565b3480156107d457600080fd5b5061036a600480360360208110156107eb57600080fd5b5035611602565b3480156107fe57600080fd5b5061036a61160f565b34801561081357600080fd5b5061039b611615565b34801561082857600080fd5b5061036a61161a565b34801561083d57600080fd5b506102976004803603602081101561085457600080fd5b50356001600160a01b0316611620565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b6006818154811061089757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606081565b600881565b61200081565b61100581565b6000805460ff16610937576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f815260200180612164602f913960400191505060405180910390fd5b600082156109fc57604080516309a99b4f60e41b8152611005600482015260248101869052905161100291639a99b4f09160448083019260209291908290030181600087803b1580156109c957600080fd5b505af11580156109dd573d6000803e3d6000fd5b505050506040513d60208110156109f357600080fd5b50519050610a75565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b505190505b600c805460010190556000610a8982611632565b600954909150610a9f908263ffffffff61166116565b600955600a54610ac7908290610abb908563ffffffff61166116565b9063ffffffff6116c216565b600a556001600160a01b038716600090815260056020526040902054610b3357600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610bb157600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610ca057600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610c2b611704565b90506000610c376119e8565b6001600160a01b0389166000908152600d6020526040902054909150610c75908290610c69908563ffffffff61166116565b9063ffffffff61166116565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610d455760405162461bcd60e51b815260040180806020018281038252602e8152602001806120a9602e913960400191505060405180910390fd5b60005460ff16610d865760405162461bcd60e51b81526004018080602001828103825260218152602001806120d76021913960400191505060405180910390fd5b610dfa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611c669050565b15610ec75760208114610e3e5760405162461bcd60e51b81526004018080602001828103825260328152602001806121936032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610e7c91858580838501838280828437600092019190915250611d4d92505050565b9050600254811115610ebf5760405162461bcd60e51b8152600401808060200182810382526060815260200180611f826060913960600191505060405180910390fd5b6001556112c2565b610f2084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160608101909152602280825290925090506120876020830139611c66565b15610ff85760208114610f645760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610fa291858580838501838280828437600092019190915250611d4d92505050565b90508015801590610fb557506001548110155b610ff05760405162461bcd60e51b815260040180806020018281038252606c8152602001806120f8606c913960800191505060405180910390fd5b6002556112c2565b61106c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611c669050565b1561113957602081146110b05760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916110ee91858580838501838280828437600092019190915250611d4d92505050565b90506004548111156111315760405162461bcd60e51b8152600401808060200182810382526056815260200180611fe26056913960600191505060405180910390fd5b6003556112c2565b6111ad84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611c669050565b1561128557602081146111f15760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161122f91858580838501838280828437600092019190915250611d4d92505050565b9050801580159061124257506003548110155b61127d5760405162461bcd60e51b8152600401808060200182810382526061815260200180611f216061913960800191505060405180910390fd5b6004556112c2565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161136b5750806113b0565b81602810801561137c575060508211155b15611389575060286113b0565b60508211801561139a5750606e8211155b156113aa575060788190036113b0565b50600481045b919050565b6000602882116113c65750806113b0565b5060286113b0565b61100281565b61100381565b60095481565b60005460ff1615611438576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611486576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d602052604090205480611508576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506115b85760405161100290819084156108fc029085906000818181858888f19350505050158015611572573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506115ff565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b6008818154811061089757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600061165b60025461164f60015485611d5290919063ffffffff16565b9063ffffffff611dab16565b92915050565b6000828201838110156116bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ded565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561176057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611742575b5050505050905060608151604051908082528060200260200182016040528015611794578160200160208202803683370190505b50905060005b82518110156118215760008382815181106117b157fe5b6020026020010151905060006117eb60056000846001600160a01b03166001600160a01b03168152602001908152602001600020546113b5565b9050808484815181106117fa57fe5b6020908102919091010152611815868263ffffffff61166116565b9550505060010161179a565b50600061183f60045461164f60035488611d5290919063ffffffff16565b9050611851858263ffffffff6116c216565b94508460015b845181101561192857600061188c8761164f8a88868151811061187657fe5b6020026020010151611d5290919063ffffffff16565b90506118d981600d60008986815181106118a257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461166190919063ffffffff16565b600d60008885815181106118e957fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205561191d838263ffffffff6116c216565b925050600101611857565b5061193e81600d6000876000815181106118a257fe5b600d60008660008151811061194f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b84518110156119d057600560008683815181106119a257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611989565b506119dd60066000611ee9565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611a4457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a26575b5050505050905060608151604051908082528060200260200182016040528015611a78578160200160208202803683370190505b50905060005b8251811015611af7576000838281518110611a9557fe5b602002602001015190506000611acf60076000846001600160a01b03166001600160a01b031681526020019081526020016000205461135a565b905080848481518110611ade57fe5b6020908102919091010152949094019350600101611a7e565b506000611b1560045461164f60035488611d5290919063ffffffff16565b9050611b27858263ffffffff6116c216565b94508460015b8451811015611bb1576000611b4c8761164f8a88868151811061187657fe5b9050611b6281600d60008986815181106118a257fe5b600d6000888581518110611b7257fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611ba6838263ffffffff6116c216565b925050600101611b2d565b50611bc781600d6000876000815181106118a257fe5b600d600086600081518110611bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611c595760076000868381518110611c2b57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611c12565b506119dd60086000611ee9565b6000816040516020018082805190602001908083835b60208310611c9b5780518252601f199092019160209182019101611c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d095780518252601f199092019160209182019101611cea565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611d615750600061165b565b82820282848281611d6e57fe5b04146116bb5760405162461bcd60e51b81526004018080602001828103825260218152602001806120666021913960400191505060405180910390fd5b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b60008184841115611e7c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e41578181015183820152602001611e29565b50505050905090810190601f168015611e6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e41578181015183820152602001611e29565b506000838581611edf57fe5b0495945050505050565b50805460008255906000526020600020908101906115ff91906119e591905b80821115611f1c5760008155600101611f08565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a264697066735822122046aa8f3564133ae19cf0f29fe8a7ebdf2a5f74f0268c42431d82384fe137b2ed64736f6c63430006040033", + Code: ramanujan.ChapelRelayerIncentivizeContract, }, { ContractAddr: common.HexToAddress(RelayerHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106101c25760003560e01c806395468d26116100f7578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610529578063fb7cfdd71461053e578063fc3e590814610553578063fd6a687914610568576101c2565b8063c81b1662146104d5578063dc927faf146104ea578063e1c7392a146104ff578063e79a198f14610514576101c2565b8063a1a11bf5116100d1578063a1a11bf5146103c7578063a78abc16146103dc578063ab51bb96146103f1578063ac43175114610406576101c2565b806395468d261461038857806396713da91461039d5780639dc09262146103b2576101c2565b8063541d55481161016457806370fd5bad1161013e57806370fd5bad1461033457806375d47a0a146103495780637942fd051461035e5780637ae2308814610373576101c2565b8063541d5548146102b15780636a87d780146102f85780636e47b4821461031f576101c2565b806343756e5c116101a057806343756e5c1461022a578063493279b11461025b5780634bf6c8821461028757806351e806721461029c576101c2565b80630bee7a67146101c75780631aa3a008146101f55780633dffc387146101ff575b600080fd5b3480156101d357600080fd5b506101dc61057d565b6040805163ffffffff9092168252519081900360200190f35b6101fd610582565b005b34801561020b57600080fd5b5061021461077d565b6040805160ff9092168252519081900360200190f35b34801561023657600080fd5b5061023f610782565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b50610270610788565b6040805161ffff9092168252519081900360200190f35b34801561029357600080fd5b5061021461078d565b3480156102a857600080fd5b5061023f610792565b3480156102bd57600080fd5b506102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610798565b604080519115158252519081900360200190f35b34801561030457600080fd5b5061030d6107b6565b60408051918252519081900360200190f35b34801561032b57600080fd5b5061023f6107bc565b34801561034057600080fd5b506102146107c2565b34801561035557600080fd5b5061023f6107c7565b34801561036a57600080fd5b506102146107cd565b34801561037f57600080fd5b5061030d6107d2565b34801561039457600080fd5b5061030d6107df565b3480156103a957600080fd5b506102146107eb565b3480156103be57600080fd5b5061023f6107f0565b3480156103d357600080fd5b5061023f6107f6565b3480156103e857600080fd5b506102e46107fc565b3480156103fd57600080fd5b506101dc610805565b34801561041257600080fd5b506101fd6004803603604081101561042957600080fd5b81019060208101813564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91939092909160208101903564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b50909250905061080a565b3480156104e157600080fd5b5061023f610c2c565b3480156104f657600080fd5b5061023f610c32565b34801561050b57600080fd5b506101fd610c38565b34801561052057600080fd5b506101fd610cba565b34801561053557600080fd5b5061023f610e73565b34801561054a57600080fd5b5061030d610e79565b34801561055f57600080fd5b50610214610e7f565b34801561057457600080fd5b5061023f610e84565b606481565b3360009081526004602052604090205460ff16156105df576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610632576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61063b33610e8a565b156106775760405162461bcd60e51b815260040180806020018281038252602781526020018061109c6027913960400191505060405180910390fd5b3332146106c1576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b60015434146107015760405162461bcd60e51b81526004018080602001828103825260258152602001806110776025913960400191505060405180910390fd5b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004815290849020805460ff1916909217909155825191825291517fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae623157767959496929181900390910190a1565b600181565b61100181565b606081565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661085d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461089d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110c3602e913960400191505060405180910390fd5b61090384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e909050565b15610a0657602081146109475760405162461bcd60e51b81526004018080602001828103825260228152602001806110f16022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161098591858580838501838280828437600092019190915250610f7792505050565b90506001811180156109a05750683635c9adc5dea000008111155b80156109ad575060025481115b6109fe576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b9a565b610a6184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e909050565b15610b5d5760208114610abb576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610af991858580838501838280828437600092019190915250610f7792505050565b9050600081118015610b0c575060015481105b610b55576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b9a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c90576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610d15576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d68576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d7061105c565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610db4919063ffffffff610f7c16565b6040518115909202916000818181858888f19350505050158015610ddc573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610e12573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610ec55780518252601f199092019160209182019101610ea6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f335780518252601f199092019160209182019101610f14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610fbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b9392505050565b600081848411156110545760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611019578181015183820152602001611001565b50505050905090810190601f1680156110465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe6465706f7369742076616c7565206973206e6f742065786163746c79207468652073616d65636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a264697066735822122011778451ed6d3e3757ce2e74acfc7fa17bf5d16f07168a6ce073d7c91e583c8c64736f6c63430006040033", + Code: ramanujan.ChapelRelayerHubContract, }, { ContractAddr: common.HexToAddress(GovHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b506004361061018e5760003560e01c8063831d65d1116100de578063ab51bb9611610097578063dc927faf11610071578063dc927faf14610486578063f9a2bbc71461048e578063fc3e590814610496578063fd6a68791461049e5761018e565b8063ab51bb96146103fc578063c81b166214610404578063c8509d811461040c5761018e565b8063831d65d11461034457806396713da9146103c05780639ab1a373146103c85780639dc09262146103d0578063a1a11bf5146103d8578063a78abc16146103e05761018e565b8063493279b11161014b5780636e47b482116101255780636e47b4821461032457806370fd5bad1461032c57806375d47a0a146103345780637942fd051461033c5761018e565b8063493279b1146102f55780634bf6c8821461031457806351e806721461031c5761018e565b80630bee7a67146101935780631182b875146101b45780633a21baae146102a35780633dffc387146102ab57806343756e5c146102c95780634900c4ea146102ed575b600080fd5b61019b6104a6565b6040805163ffffffff9092168252519081900360200190f35b61022e600480360360408110156101ca57600080fd5b60ff82351691908101906040810160208201356401000000008111156101ef57600080fd5b82018360208201111561020157600080fd5b8035906020019184600183028401116401000000008311171561022357600080fd5b5090925090506104ab565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b61059a565b6102b361059f565b6040805160ff9092168252519081900360200190f35b6102d16105a4565b604080516001600160a01b039092168252519081900360200190f35b6102b36105aa565b6102fd6105af565b6040805161ffff9092168252519081900360200190f35b6102b36105b4565b6102d16105b9565b6102d16105bf565b6102b36105c5565b6102d16105ca565b6102b36105d0565b6103be6004803603604081101561035a57600080fd5b60ff823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b5090925090506105d5565b005b6102b3610667565b61019b61066c565b6102d1610671565b6102d1610677565b6103e861067d565b604080519115158252519081900360200190f35b61019b6105aa565b6102d1610686565b6103be6004803603604081101561042257600080fd5b60ff823516919081019060408101602082013564010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b50909250905061068c565b6102d1610703565b6102d1610709565b6102b361070f565b6102d1610714565b606481565b606033612000146104ed5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6104f5611382565b600061053685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071a92505050565b91509150806105525761054960646107e0565b92505050610593565b600061055d8361084a565b905063ffffffff811661058457505060408051600081526020810190915291506105939050565b61058d816107e0565b93505050505b9392505050565b606681565b600181565b61100181565b600081565b606081565b600881565b61200081565b61100581565b600281565b61100881565b600b81565b33612000146106155760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61100281565b33612000146106cc5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806114166023913960400191505060405180910390fd5b61100381565b61100081565b600381565b61100481565b610722611382565b600061072c611382565b6107346113ac565b61074561074086610beb565b610c10565b90506000805b61075483610c5a565b156107d357806107765761076f61076a84610c7b565b610cc9565b84526107cb565b80600114156107955761078b61076a84610c7b565b60208501526107cb565b80600214156107c6576107af6107aa84610c7b565b610d42565b6001600160a01b03166040850152600191506107cb565b6107d3565b60010161074b565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816107fa5790505090506108208363ffffffff16610d62565b8160008151811061082d57fe5b602002602001018190525061084181610d75565b9150505b919050565b60006108598260400151610dff565b6108c557604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610845565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561093257818101518382015260200161091a565b50505050905090810190601f16801561095f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561099257818101518382015260200161097a565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156109e057600080fd5b505af19250505080156109f1575060015b610be3576040516000815260443d1015610a0d57506000610aaa565b60046000803e60005160e01c6308c379a08114610a2e576000915050610aaa565b60043d036004833e81513d602482011167ffffffffffffffff82111715610a5a57600092505050610aaa565b808301805167ffffffffffffffff811115610a7c576000945050505050610aaa565b8060208301013d8601811115610a9a57600095505050505050610aaa565b601f01601f191660405250925050505b80610ab55750610b58565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b14578181015183820152602001610afc565b50505050905090810190601f168015610b415780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610845565b3d808015610b82576040519150601f19603f3d011682016040523d82523d6000602084013e610b87565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610b14578181015183820152602001610afc565b506000919050565b610bf36113cc565b506040805180820190915281518152602082810190820152919050565b610c186113ac565b610c2182610e05565b610c2a57600080fd5b6000610c398360200151610e3f565b60208085015160408051808201909152868152920190820152915050919050565b6000610c646113cc565b505080518051602091820151919092015191011190565b610c836113cc565b610c8c82610c5a565b610c9557600080fd5b60208201516000610ca582610ea2565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610cd757600080fd5b6000610ce68360200151610e3f565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610d1d576020820181803683370190505b5090506000816020019050610d39848760200151018285610fd5565b50949350505050565b8051600090601514610d5357600080fd5b610d5c82611020565b92915050565b6060610d5c610d70836110d5565b6111bb565b6060815160001415610d965750604080516000815260208101909152610845565b606082600081518110610da557fe5b602002602001015190506000600190505b8351811015610de657610ddc82858381518110610dcf57fe5b602002602001015161120d565b9150600101610db6565b50610841610df9825160c060ff1661128a565b8261120d565b3b151590565b8051600090610e1657506000610845565b6020820151805160001a9060c0821015610e3557600092505050610845565b5060019392505050565b8051600090811a6080811015610e59576000915050610845565b60b8811080610e74575060c08110801590610e74575060f881105b15610e83576001915050610845565b60c0811015610e975760b519019050610845565b60f519019050610845565b80516000908190811a6080811015610ebd5760019150610fce565b60b8811015610ed257607e1981019150610fce565b60c0811015610f4c57600060b78203600186019550806020036101000a865104915060018101820193505080831015610f46576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50610fce565b60f8811015610f615760be1981019150610fce565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610fcc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80610fdf57610662565b5b60208110610fff578251825260209283019290910190601f1901610fe0565b915181516020939093036101000a6000190180199091169216919091179052565b80516000901580159061103557508151602110155b61103e57600080fd5b600061104d8360200151610e3f565b905080836000015110156110a8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610d3957506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166111195750601861113d565b6fffffffffffffffffffffffffffffffff1984166111395750601061113d565b5060005b60208110156111735781818151811061115257fe5b01602001516001600160f81b0319161561116b57611173565b60010161113d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156111a8576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156111ed5750607f60f81b826000815181106111db57fe5b01602001516001600160f81b03191611155b156111f9575080610845565b610d5c61120b8351608060ff1661128a565b835b6060806040519050835180825260208201818101602087015b8183101561123e578051835260209283019201611226565b50855184518101855292509050808201602086015b8183101561126b578051835260209283019201611253565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106112da576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116113345782840160f81b8160008151811061131657fe5b60200101906001600160f81b031916908160001a9053509050610d5c565b606061133f856110d5565b90508381510160370160f81b8260008151811061135857fe5b60200101906001600160f81b031916908160001a905350611379828261120d565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b60405180604001604052806113bf6113cc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a2646970667358221220ea2b2b402a564a222b3f3e7c0f671622652543c9c5f6cb6c7b8db265ae9ebe4564736f6c63430006040033", + Code: ramanujan.ChapelGovHubContract, }, { ContractAddr: common.HexToAddress(TokenManagerContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106102465760003560e01c806375d47a0a11610139578063ab51bb96116100b6578063dc6f5e901161007a578063dc6f5e90146108df578063dc927faf14610975578063f9a2bbc71461098a578063fc3e5908146108df578063fd6a68791461099f578063fe3a2af5146104fd57610246565b8063ab51bb96146108b5578063c81b1662146108ca578063c8509d81146107c5578063c8e704a4146108df578063d117a110146108f457610246565b806395b9ad26116100fd57806395b9ad261461084c57806396713da9146108615780639dc0926214610876578063a1a11bf51461088b578063a78abc16146108a057610246565b806375d47a0a146106e757806377d9dae8146106fc5780637942fd05146107b05780637d078e13146103c8578063831d65d1146107c557610246565b80634a688818116101c75780635f558f861161018b5780635f558f86146105515780636b3f1307146105665780636e47b4821461062e57806370fd5bad1461055157806372c4e0861461064357610246565b80634a688818146104fd5780634bc81c00146105125780634bf6c8821461024b57806351e80672146105275780635d499b1b1461053c57610246565b806323996b531161020e57806323996b53146103c85780633dffc387146103c857806343756e5c146103dd578063445fcefe1461040e578063493279b1146104d157610246565b8063077b8f351461024b5780630bee7a67146102765780630f212b1b146102a45780631182b875146102b95780631f91600b146103b3575b600080fd5b34801561025757600080fd5b506102606109b4565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b5061028b6109b9565b6040805163ffffffff9092168252519081900360200190f35b3480156102b057600080fd5b506102606109be565b3480156102c557600080fd5b5061033e600480360360408110156102dc57600080fd5b60ff8235169190810190604081016020820135600160201b81111561030057600080fd5b82018360208201111561031257600080fd5b803590602001918460018302840111600160201b8311171561033357600080fd5b5090925090506109c3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610378578181015183820152602001610360565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103bf57600080fd5b50610260610a4c565b3480156103d457600080fd5b50610260610a51565b3480156103e957600080fd5b506103f2610a56565b604080516001600160a01b039092168252519081900360200190f35b34801561041a57600080fd5b506104bf6004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a5c945050505050565b60408051918252519081900360200190f35b3480156104dd57600080fd5b506104e6610bbb565b6040805161ffff9092168252519081900360200190f35b34801561050957600080fd5b50610260610bc0565b34801561051e57600080fd5b50610260610bc5565b34801561053357600080fd5b506103f2610bca565b34801561054857600080fd5b506104bf610bd0565b34801561055d57600080fd5b50610260610bd9565b61061a6004803603604081101561057c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bde945050505050565b604080519115158252519081900360200190f35b34801561063a57600080fd5b506103f2611460565b61061a6004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460018302840111600160201b831117156106a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611466945050505050565b3480156106f357600080fd5b506103f26118b4565b61061a6004803603604081101561071257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118ba945050505050565b3480156107bc57600080fd5b50610260611dc1565b3480156107d157600080fd5b5061084a600480360360408110156107e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561080c57600080fd5b82018360208201111561081e57600080fd5b803590602001918460018302840111600160201b8311171561083f57600080fd5b509092509050611dc6565b005b34801561085857600080fd5b50610260611e79565b34801561086d57600080fd5b50610260611e7e565b34801561088257600080fd5b506103f2611e83565b34801561089757600080fd5b506103f2611e89565b3480156108ac57600080fd5b5061061a611e8f565b3480156108c157600080fd5b5061028b610bc0565b3480156108d657600080fd5b506103f2611e98565b3480156108eb57600080fd5b50610260611e9e565b34801561090057600080fd5b5061091e6004803603602081101561091757600080fd5b5035611ea3565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a083015267ffffffffffffffff90921660c082015290519081900360e00190f35b34801561098157600080fd5b506103f2611efb565b34801561099657600080fd5b506103f2611f01565b3480156109ab57600080fd5b506103f2611f07565b600881565b606481565b600681565b60603361200014610a055760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b610a4483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f0d92505050565b949350505050565b600481565b600181565b61100181565b6020810151600090610a6c613168565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a082015261010090910467ffffffffffffffff1660c082015290610af457600092505050610bb6565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505160808301516060840151919250600091610b9d9163ffffffff61219e16565b9050610baf818363ffffffff61219e16565b9450505050505b919050565b606081565b600081565b600581565b61200081565b6402540be40081565b600281565b600080610bea836121e7565b9050610bf4613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152610cba576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b6000610cd78260800151836060015161219e90919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b031614610d2d5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d6020811015610d9a57600080fd5b50516001600160a01b031614610de15760405162461bcd60e51b815260040180806020018281038252602e815260200180613272602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192508391610ee89184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50519063ffffffff6121ee16565b1015610f3b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d6020811015610fa757600080fd5b50519050808210801590610fc057506402540be4008206155b610ffb5760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b6000611007868b612248565b905063ffffffff8116611206576001600160a01b038a166323b872dd33611004611037898963ffffffff61219e16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111c55781810151838201526020016111ad565b50505050905090810190601f1680156111f25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a26112be565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561128257818101518382015260200161126a565b50505050905090810190601f1680156112af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556113186131a4565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611360573d6000803e3d6000fd5b5061200063f7a251d760016113748461269f565b611389886402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113e75781810151838201526020016113cf565b50505050905090810190601f1680156114145780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506001985050505050505050505b92915050565b61100581565b600080611472836121e7565b905061147c613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611542576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c0015167ffffffffffffffff16106115a4576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d602081101561161057600080fd5b5051905080821080159061162957506402540be4008206155b6116645760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556116be6131a4565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611701573d6000803e3d6000fd5b5061200063f7a251d760016117158461269f565b61172a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611788578181015183820152602001611770565b50505050905090810190601f1680156117b55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561186c578181015183820152602001611854565b50505050905090810190601f1680156118995780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806118c6836121e7565b90506118d0613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611996576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146119ea5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b50516001600160a01b031614611ab4576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703265206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b50519050808210801590611b3957506402540be4008206155b611b745760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611bce6131a4565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611c11573d6000803e3d6000fd5b5061200063f7a251d76001611c258461269f565b611c3a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c98578181015183820152602001611c80565b50505050905090810190601f168015611cc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d78578181015183820152602001611d60565b50505050905090810190601f168015611da55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b3361200014611e065760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b600781565b600981565b61100781565b61100681565b60005460ff1681565b61100281565b600381565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b0390931693919291811690610100900467ffffffffffffffff1687565b61100381565b61100081565b61100481565b6060611f17613168565b6000611f228461276b565b9150915080611f78576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff1661202c576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff00191661010067ffffffffffffffff90921691909102179055612183565b815160ff16600114156121365760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60208110156120af57600080fd5b505190506001600160a01b038116156121305760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050505b50612183565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b60006121e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bd565b9392505050565b6020015190565b6000828201838110156121e0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d60208110156122ae57600080fd5b5051604080516395d89b4160e01b815290519192506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561233357600080fd5b8101908080516040519392919084600160201b82111561235257600080fd5b90830190602082018581111561236757600080fd5b8251600160201b81118282018810171561238057600080fd5b82525081516020918201929091019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b5051608087015160608801519192506000916124759163ffffffff61219e16565b9050428760c0015167ffffffffffffffff16101561249b57506001935061145a92505050565b6124a9838860200151612954565b6124bb57506002935061145a92505050565b808211156124d157506003935061145a92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251357600080fd5b505afa158015612527573d6000803e3d6000fd5b505050506040513d602081101561253d57600080fd5b50511461255257506004935061145a92505050565b8660a0015160ff16841461256e57506005935061145a92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b1580156125b357600080fd5b505afa1580156125c7573d6000803e3d6000fd5b505050506040513d60208110156125dd57600080fd5b50516001600160a01b031614158061267f57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561265057600080fd5b505afa158015612664573d6000803e3d6000fd5b505050506040513d602081101561267a57600080fd5b505114155b1561269257506006935061145a92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816126b857505083519091506126e09063ffffffff16612a3c565b816000815181106126ed57fe5b6020026020010181905250612708836020015160001c612a3c565b8160018151811061271557fe5b60200260200101819052506121e081612a4f565b60006121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad9565b612773613168565b600061277d613168565b6127856131bb565b61279661279186612b3e565b612b63565b90506000805b6127a583612bad565b156128b057806127ca576127c06127bb84612bce565b612c1c565b60ff1684526128a8565b80600114156127e9576127df6127bb84612bce565b60208501526128a8565b8060021415612816576128036127fe84612bce565b612cd1565b6001600160a01b031660408501526128a8565b80600314156128355761282b6127bb84612bce565b60608501526128a8565b80600414156128545761284a6127bb84612bce565b60808501526128a8565b8060051415612876576128696127bb84612bce565b60ff1660a08501526128a8565b80600614156128a35761288b6127bb84612bce565b67ffffffffffffffff1660c0850152600191506128a8565b6128b0565b60010161279c565b5091935090915050915091565b6000818484111561294c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129115781810151838201526020016128f9565b50505050905090810190601f16801561293e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b815160009083906008108061296a575080516003115b1561297957600091505061145a565b604080516020808252818301909252606091602082018180368337019050509050836020820152808251815181106129ad57fe5b6020910101516001600160f81b031916602d60f81b146129d25760009250505061145a565b600160005b8351811015612a32578281815181106129ec57fe5b602001015160f81c60f81b6001600160f81b031916848281518110612a0d57fe5b01602001516001600160f81b03191614612a2a5760009150612a32565b6001016129d7565b5095945050505050565b606061145a612a4a83612ceb565b612dd1565b6060815160001415612a705750604080516000815260208101909152610bb6565b606082600081518110612a7f57fe5b602002602001015190506000600190505b8351811015612ac057612ab682858381518110612aa957fe5b6020026020010151612e23565b9150600101612a90565b506121e0612ad3825160c060ff16612ea0565b82612e23565b60008183612b285760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129115781810151838201526020016128f9565b506000838581612b3457fe5b0495945050505050565b612b466131db565b506040805180820190915281518152602082810190820152919050565b612b6b6131bb565b612b7482612f98565b612b7d57600080fd5b6000612b8c8360200151612fd2565b60208085015160408051808201909152868152920190820152915050919050565b6000612bb76131db565b505080518051602091820151919092015191011190565b612bd66131db565b612bdf82612bad565b612be857600080fd5b60208201516000612bf882613035565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612c3157508151602110155b612c3a57600080fd5b6000612c498360200151612fd2565b90508083600001511015612ca4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561219557506020919091036101000a90049392505050565b8051600090601514612ce257600080fd5b61145a82612c1c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612d2f57506018612d53565b6fffffffffffffffffffffffffffffffff198416612d4f57506010612d53565b5060005b6020811015612d8957818181518110612d6857fe5b01602001516001600160f81b03191615612d8157612d89565b600101612d53565b60008160200390506060816040519080825280601f01601f191660200182016040528015612dbe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015612e035750607f60f81b82600081518110612df157fe5b01602001516001600160f81b03191611155b15612e0f575080610bb6565b61145a612e218351608060ff16612ea0565b835b6060806040519050835180825260208201818101602087015b81831015612e54578051835260209283019201612e3c565b50855184518101855292509050808201602086015b81831015612e81578051835260209283019201612e69565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612ef0576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411612f4a5782840160f81b81600081518110612f2c57fe5b60200101906001600160f81b031916908160001a905350905061145a565b6060612f5585612ceb565b90508381510160370160f81b82600081518110612f6e57fe5b60200101906001600160f81b031916908160001a905350612f8f8282612e23565b95945050505050565b8051600090612fa957506000610bb6565b6020820151805160001a9060c0821015612fc857600092505050610bb6565b5060019392505050565b8051600090811a6080811015612fec576000915050610bb6565b60b8811080613007575060c08110801590613007575060f881105b15613016576001915050610bb6565b60c081101561302a5760b519019050610bb6565b60f519019050610bb6565b80516000908190811a60808110156130505760019150613161565b60b881101561306557607e1981019150613161565b60c08110156130df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156130d9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613161565b60f88110156130f45760be1981019150613161565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561315f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b60405180604001604052806131ce6131db565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe72656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e6420726571756573746f6e6c79206265703265206f776e65722063616e20617070726f766520746869732062696e642072657175657374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220f5905eb90e4a072fe66973705300bc7792e1c43c73c571a09629b9153e6b871864736f6c63430006040033", + Code: ramanujan.ChapelTokenManagerContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102485760003560e01c8063863fe4ab1161013b578063c81b1662116100b8578063e3b048051161007c578063e3b048051461072c578063f7a251d71461074c578063f9a2bbc7146107c4578063fc3e5908146107cc578063fd6a6879146107d457610248565b8063c81b1662146106dd578063d31f968d146106e5578063d76a867514610714578063dc927faf1461071c578063e1c7392a1461072457610248565b8063a78abc16116100ff578063a78abc16146105d3578063ab51bb96146105db578063ac431751146105e3578063b0355f5b146103ff578063c27cdcfb146106a157610248565b8063863fe4ab146105b35780638cc8f561146104b657806396713da9146105bb5780639dc09262146105c3578063a1a11bf5146105cb57610248565b8063493279b1116101c957806370fd5bad1161018d57806370fd5bad146104b657806374f079b8146104be57806375d47a0a146104c65780637942fd05146104ce57806384013b6a146104d657610248565b8063493279b11461045f5780634bf6c8821461047e57806351e80672146104865780636e47a51a1461048e5780636e47b482146104ae57610248565b8063308325f411610210578063308325f4146102cf5780633bdc47a6146102d75780633dffc387146103ff578063422f90501461040757806343756e5c1461043b57610248565b806305e682581461024d5780630bee7a671461026b57806314b3023b1461028c57806322556cdc146102a65780632ff32aea146102ae575b600080fd5b6102556107dc565b6040805160ff9092168252519081900360200190f35b6102736107e1565b6040805163ffffffff9092168252519081900360200190f35b6102946107e6565b60408051918252519081900360200190f35b6102946107ec565b6102b66107f1565b60408051600792830b90920b8252519081900360200190f35b6102946107fa565b61038a600480360360608110156102ed57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561031657600080fd5b82018360208201111561032857600080fd5b803590602001918460018302840111600160201b8311171561034957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610800945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610255610876565b6104276004803603602081101561041d57600080fd5b503560ff1661087b565b604080519115158252519081900360200190f35b610443610890565b604080516001600160a01b039092168252519081900360200190f35b610467610896565b6040805161ffff9092168252519081900360200190f35b61025561089b565b6104436108a0565b610443600480360360208110156104a457600080fd5b503560ff166108a6565b6104436108c1565b6102556108c7565b6102946108cc565b6104436108d2565b6102556108d8565b6105b1600480360360a08110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460018302840111600160201b8311171561053957600080fd5b919390929091602081019035600160201b81111561055657600080fd5b82018360208201111561056857600080fd5b803590602001918460018302840111600160201b8311171561058957600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166108dd565b005b610294611a8d565b610255611a95565b610443611a9a565b610443611aa0565b610427611aa6565b6102736107dc565b6105b1600480360360408110156105f957600080fd5b810190602081018135600160201b81111561061357600080fd5b82018360208201111561062557600080fd5b803590602001918460018302840111600160201b8311171561064657600080fd5b919390929091602081019035600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b509092509050611aaf565b6106c1600480360360208110156106b757600080fd5b503560ff16612051565b604080516001600160401b039092168252519081900360200190f35b61044361206c565b610427600480360360408110156106fb57600080fd5b5080356001600160a01b0316906020013560ff16612072565b61038a612092565b6104436120b1565b6105b16120b7565b6106c16004803603602081101561074257600080fd5b503560ff1661246e565b6105b16004803603606081101561076257600080fd5b60ff8235169190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460018302840111600160201b831117156107b957600080fd5b919350915035612489565b6104436125da565b6102556125e0565b6104436125e5565b600081565b606481565b60015481565b603281565b60045460070b81565b60025481565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015610838576020820181803683370190505b506021810186905260018101879052828152905060418101600061085b866125eb565b50905061086a818388516125f5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606081565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b60035481565b61100881565b600b81565b60005460ff16610930576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d602081101561099957600080fd5b50516109ec576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610a5c576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b5051610b385760405162461bcd60e51b8152600401808060200182810382526023815260200180612bcc6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610ba7576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60608c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805163cba510a960e01b81526001600160401b038f1660048201529051939450610cce93611003935063cba510a992506024808301926020929190829003018186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505160408051808201909152600381526269626360e81b6020820152610cc78c8c612636565b858561267d565b610d16576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038c16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b5051905088600080806060610da08861277a565b935093509350935083610e61578460ff168f6001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8a6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1a578181015183820152602001610e02565b50505050905090810190601f168015610e475780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050611a7f565b8460ff168f6001600160401b03167f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad4085604051808260ff1660ff16815260200191505060405180910390a360ff83166113ea5760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015610f32578181015183820152602001610f1a565b50505050905090810190601f168015610f5f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610f7f57600080fd5b505af192505050801561106357506040513d6000823e601f3d908101601f191682016040526020811015610fb257600080fd5b8101908080516040519392919084600160201b821115610fd157600080fd5b908301906020820185811115610fe657600080fd5b8251600160201b811182820188101715610fff57600080fd5b82525081516020918201929091019080838360005b8381101561102c578181015183820152602001611014565b50505050905090810190601f1680156110595780820380516001836020036101000a031916815260200191505b5060405250505060015b611375576040516000815260443d101561107f5750600061111a565b60046000803e60005160e01c6308c379a081146110a057600091505061111a565b60043d036004833e81513d60248201116001600160401b03821117156110cb5760009250505061111a565b80830180516001600160401b038111156110ec57600094505050505061111a565b8060208301013d860181111561110a5760009550505050505061111a565b601f01601f191660405250925050505b806111255750611237565b60ff871660009081526007602052604081205461115c916001600160401b039091169089906111579060029088610800565b61282a565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156111f75781810151838201526020016111df565b50505050905090810190601f1680156112245780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611370565b3d808015611261576040519150601f19603f3d011682016040523d82523d6000602084013e611266565b606091505b5060ff8716600090815260076020526040812054611299916001600160401b039091169089906111579060029088610800565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561133457818101518382015260200161131c565b50505050905090810190601f1680156113615780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6113e4565b8051156113e25760ff87166000908152600760205260408120546113ae916001600160401b039091169089906111579060019086610800565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506119b8565b60ff83166001141561168e5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114c157600080fd5b505af19250505080156114d2575060015b6113e4576040516000815260443d10156114ee57506000611589565b60046000803e60005160e01c6308c379a0811461150f576000915050611589565b60043d036004833e81513d60248201116001600160401b038211171561153a57600092505050611589565b80830180516001600160401b0381111561155b576000945050505050611589565b8060208301013d860181111561157957600095505050505050611589565b601f01601f191660405250925050505b8061159457506115f9565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156111f75781810151838201526020016111df565b3d808015611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561133457818101518382015260200161131c565b60ff8316600214156119b85760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b83811015611718578181015183820152602001611700565b50505050905090810190601f1680156117455780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561176557600080fd5b505af1925050508015611776575060015b6119b6576040516000815260443d10156117925750600061182d565b60046000803e60005160e01c6308c379a081146117b357600091505061182d565b60043d036004833e81513d60248201116001600160401b03821117156117de5760009250505061182d565b80830180516001600160401b038111156117ff57600094505050505061182d565b8060208301013d860181111561181d5760009550505050505061182d565b601f01601f191660405250925050505b8061183857506118e1565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118a1578181015183820152602001611889565b50505050905090810190601f1680156118ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506119b6565b3d80801561190b576040519150601f19603f3d011682016040523d82523d6000602084013e611910565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561197a578181015183820152602001611962565b50505050905090810190601f1680156119a75780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e69189913391879116806119ea575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b505050505050505050505b505050505050505050505050565b630100600081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611aef5760405162461bcd60e51b815260040180806020018281038252602e815260200180612b22602e913960400191505060405180910390fd5b611b5884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506129809050565b15611bf357604080516020601f8401819004810282018101909252828152600091611b9b91858580838501838280828437600092019190915250612a6792505050565b90506127108111158015611bb05750600a8110155b611beb5760405162461bcd60e51b8152600401808060200182810382526032815260200180612b9a6032913960400191505060405180910390fd5b600155611fbf565b611c5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506129809050565b15611de457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611cdf5760405162461bcd60e51b815260040180806020018281038252605a815260200180612ac8605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611cfd81612a6c565b611d4e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050611fbf565b611e5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506129809050565b15611f8257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050611ed45760405162461bcd60e51b815260040180806020018281038252604a815260200180612b50604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015611f78576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050611fbf565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff161561210f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff166124dc576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166125395760405162461bcd60e51b8152600401808060200182810382526031815260200180612a976031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261259e9284928a9261115792909189918c908c908190840183828082843760009201919091525061080092505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b60208110612615578251825260209283019290910190601f19016125f6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100600060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561268c57506000612771565b606082518451865160800101016040519080825280601f01601f1916602001820160405280156126c3576020820181803683370190505b50905060006126d182612a72565b6020808901518252019050866000806126e9896125eb565b80865260209095019490925090506127028285836125f5565b9283019261270f886125eb565b80865260209095019490925090506127288285836125f5565b9283018a81526020019261273b876125eb565b909250905061274b8285836125f5565b508351602001612759612a78565b60208183886065600019fa5051600114955050505050505b95945050505050565b600080600060606021855110156127aa575050604080516000808252602082019092529092508291508190612823565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156127f5576020820181803683370190505b5090506000612803826125eb565b509050612815858260218d51036125f5565b506001975091955093509150505b9193509193565b600254431115612869576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556128aa565b600380546001908101918290555410156128aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606085604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612940578181015183820152602001612928565b50505050905090810190601f16801561296d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106129b55780518252601f199092019160209182019101612996565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122033c2492ac02e70488d9ed3adb95888d7f5998dff786cf03d72be0cde759a14d064736f6c63430006040033", + Code: ramanujan.ChapelCrossChainContract, }, }, } @@ -131,52 +145,52 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061027d5760003560e01c80639dc092621161014f578063c8509d81116100c1578063eb57e2021161007a578063eb57e20214610940578063eda5868c14610973578063f340fa0114610988578063f9a2bbc7146109ae578063fc3e5908146109c3578063fd6a6879146109d85761027d565b8063c8509d8114610609578063d86222d5146108d7578063daacdb66146108ec578063dc927faf14610901578063e086c7b114610916578063e1c7392a1461092b5761027d565b8063ab51bb9611610113578063ab51bb961461074a578063ac4317511461075f578063ad3c9da61461082a578063b7ab4db51461085d578063bf9f49951461041b578063c81b1662146108c25761027d565b80639dc09262146106cd578063a1a11bf5146106e2578063a5422d5c146106f7578063a78abc161461070c578063aaf5eb68146107355761027d565b80635667515a116101f35780637942fd05116101ac5780637942fd05146105df57806381650b62146105f4578063831d65d114610609578063853230aa1461068e57806386249882146106a357806396713da9146106b85761027d565b80635667515a146105005780635d77156c146105155780636969a25c1461052a5780636e47b482146105a057806370fd5bad146105b557806375d47a0a146105ca5761027d565b80633dffc387116102455780633dffc3871461041b57806343756e5c14610446578063493279b1146104775780634bf6c882146104a357806351e80672146104b8578063565c56b3146104cd5761027d565b80630bee7a67146102825780631182b875146102b05780631ff18069146103aa578063219f22d5146103d157806335409f7f146103e6575b600080fd5b34801561028e57600080fd5b506102976109ed565b6040805163ffffffff9092168252519081900360200190f35b3480156102bc57600080fd5b50610335600480360360408110156102d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102f757600080fd5b82018360208201111561030957600080fd5b803590602001918460018302840111600160201b8311171561032a57600080fd5b5090925090506109f2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036f578181015183820152602001610357565b50505050905090810190601f16801561039c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b657600080fd5b506103bf610bdf565b60408051918252519081900360200190f35b3480156103dd57600080fd5b50610297610be5565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b0316610bea565b005b34801561042757600080fd5b50610430610efe565b6040805160ff9092168252519081900360200190f35b34801561045257600080fd5b5061045b610f03565b604080516001600160a01b039092168252519081900360200190f35b34801561048357600080fd5b5061048c610f09565b6040805161ffff9092168252519081900360200190f35b3480156104af57600080fd5b50610430610f0e565b3480156104c457600080fd5b5061045b610f13565b3480156104d957600080fd5b506103bf600480360360208110156104f057600080fd5b50356001600160a01b0316610f19565b34801561050c57600080fd5b50610430610f6b565b34801561052157600080fd5b50610297610f70565b34801561053657600080fd5b506105546004803603602081101561054d57600080fd5b5035610f75565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156105ac57600080fd5b5061045b610fd9565b3480156105c157600080fd5b50610430610fdf565b3480156105d657600080fd5b5061045b610fe4565b3480156105eb57600080fd5b50610430610fea565b34801561060057600080fd5b50610297610fef565b34801561061557600080fd5b506104196004803603604081101561062c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b509092509050610ff4565b34801561069a57600080fd5b506103bf6110a7565b3480156106af57600080fd5b506103bf6110ad565b3480156106c457600080fd5b506104306110b3565b3480156106d957600080fd5b5061045b6110b8565b3480156106ee57600080fd5b5061045b6110be565b34801561070357600080fd5b506103356110c4565b34801561071857600080fd5b506107216110e3565b604080519115158252519081900360200190f35b34801561074157600080fd5b506103bf6110ec565b34801561075657600080fd5b50610297610f6b565b34801561076b57600080fd5b506104196004803603604081101561078257600080fd5b810190602081018135600160201b81111561079c57600080fd5b8201836020820111156107ae57600080fd5b803590602001918460018302840111600160201b831117156107cf57600080fd5b919390929091602081019035600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460018302840111600160201b8311171561081f57600080fd5b5090925090506110f5565b34801561083657600080fd5b506103bf6004803603602081101561084d57600080fd5b50356001600160a01b031661139c565b34801561086957600080fd5b506108726113ae565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108ae578181015183820152602001610896565b505050509050019250505060405180910390f35b3480156108ce57600080fd5b5061045b6114d4565b3480156108e357600080fd5b506103bf6114da565b3480156108f857600080fd5b506103bf6114e6565b34801561090d57600080fd5b5061045b6114ec565b34801561092257600080fd5b506103bf6114f2565b34801561093757600080fd5b506104196114f7565b34801561094c57600080fd5b506104196004803603602081101561096357600080fd5b50356001600160a01b03166116fa565b34801561097f57600080fd5b506102976118c9565b6104196004803603602081101561099e57600080fd5b50356001600160a01b03166118ce565b3480156109ba57600080fd5b5061045b611b04565b3480156109cf57600080fd5b50610430611b0a565b3480156109e457600080fd5b5061045b611b0f565b606481565b60005460609060ff16610a48576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610a885760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b610a90613d69565b6000610ad185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b1592505050565b9150915080610aed57610ae46064611c6e565b92505050610bd8565b815160009060ff16610b0d57610b068360200151611ccf565b9050610ba4565b825160ff1660011415610ba057826020015151600114610b7a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180613e6c6025913960400191505060405180910390a1506067610b9b565b610b068360200151600081518110610b8e57fe5b6020026020010151612ad5565b610ba4565b5060655b63ffffffff8116610bc95750506040805160008152602081019091529150610bd89050565b610bd281611c6e565b93505050505b9392505050565b60035481565b606881565b3361100114610c2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610c4e5750610efb565b600181039050600060018281548110610c6357fe5b60009182526020909120600360049092020101546001549091506000190180610cb257600060018481548110610c9557fe5b906000526020600020906004020160030181905550505050610efb565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610e3457600180546000198101908110610d2957fe5b906000526020600020906004020160018481548110610d4457fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610e0957fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610e3f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610e9257fe5b0490508015610ef65760015460005b81811015610ef3578260018281548110610eb757fe5b9060005260206000209060040201600301540160018281548110610ed757fe5b6000918252602090912060036004909202010155600101610ea1565b50505b505050505b50565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b03811660009081526004602052604081205480610f41576000915050610f66565b600180820381548110610f5057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b60018181548110610f8257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b600b81565b606681565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806140de602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6103e881565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101b78152602001613f066101b7913981565b60005460ff1681565b6402540be40081565b60005460ff16611148576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146111885760405162461bcd60e51b815260040180806020018281038252602e815260200180613e91602e913960400191505060405180910390fd5b6111f284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612c4c9050565b156112cd57602081146112365760405162461bcd60e51b8152600401808060200182810382526026815260200180613ee06026913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161127491858580838501838280828437600092019190915250612d3492505050565b90506064811015801561128a5750620186a08111155b6112c55760405162461bcd60e51b8152600401808060200182810382526027815260200180613e456027913960400191505060405180910390fd5b60025561130a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b828110156113ff57600181815481106113cd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166113f7576001909101905b6001016113b8565b5060608160405190808252806020026020018201604052801561142c578160200160208202803683370190505b50600092509050815b838110156114cc576001818154811061144a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166114c4576001818154811061147a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106114a557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611435565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561154f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611557613d69565b600061157d604051806101e001604052806101b78152602001613f066101b79139611b15565b91509150806115bd5760405162461bcd60e51b81526004018080602001828103825260218152602001806140bd6021913960400191505060405180910390fd5b60005b8260200151518110156116e2576001836020015182815181106115df57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106116b557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016115c0565b50506103e8600255506000805460ff19166001179055565b336110011461173a5760405162461bcd60e51b815260040180806020018281038252602981526020018061413a6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061175e5750610efb565b60018103905060006001828154811061177357fe5b906000526020600020906004020160030154905060006001838154811061179657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a28061180557505050610efb565b600081838161181057fe5b0490508015610ef65760005b8481101561186e57816001828154811061183257fe5b906000526020600020906004020160030154016001828154811061185257fe5b600091825260209091206003600490920201015560010161181c565b50600180549085015b81811015610ef357826001828154811061188d57fe5b90600052602060002090600402016003015401600182815481106118ad57fe5b6000918252602090912060036004909202010155600101611877565b606581565b33411461190c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061410d602d913960400191505060405180910390fd5b60005460ff1661195f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b600034116119ac576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b03811660009081526004602052604090205434908015611abf5760006001808303815481106119de57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611a49576040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611ab9565b600354611a5c908463ffffffff612d3916565b6003908155810154611a74908463ffffffff612d3916565b60038201556040805184815290516001600160a01b038616917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611aff565b6040805183815290516001600160a01b038516917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b505050565b61100081565b600381565b61100481565b611b1d613d69565b6000611b27613d69565b611b2f613d81565b611b40611b3b86612d93565b612db8565b90506000805b611b4f83612e02565b15611c605780611b7457611b6a611b6584612e23565b612e71565b60ff168452611c58565b8060011415611c53576060611b90611b8b85612e23565b612f28565b90508051604051908082528060200260200182016040528015611bcd57816020015b611bba613da1565b815260200190600190039081611bb25790505b50602086015260005b8151811015611c4857611be7613da1565b6000611c05848481518110611bf857fe5b6020026020010151612ff9565b9150915080611c2257876000995099505050505050505050611c69565b8188602001518481518110611c3357fe5b60209081029190910101525050600101611bd6565b506001925050611c58565b611c60565b600101611b46565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611c88579050509050611cae8363ffffffff166130d6565b81600081518110611cbb57fe5b6020026020010181905250610bd8816130e9565b6000806060611cdd84613173565b9150915081611d8a577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d45578181015183820152602001611d2d565b50505050905090810190601f168015611d725780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050610f66565b600080805b600154811015611e075767016345785d8a000060018281548110611daf57fe5b90600052602060002090600402016003015410611dd157600190920191611dff565b600060018281548110611de057fe5b9060005260206000209060040201600301541115611dff576001909101905b600101611d8f565b50606082604051908082528060200260200182016040528015611e34578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015611e63578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015611e92578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015611ec1578160200160208202803683370190505b5090506000606086604051908082528060200260200182016040528015611ef2578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015611f21578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f6e57600080fd5b505afa158015611f82573d6000803e3d6000fd5b505050506040513d6020811015611f9857600080fd5b5051905067016345785d8a000081111561200d577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180613ebf6021913960400191505060405180910390a160689d5050505050505050505050505050610f66565b60005b6001548110156122805767016345785d8a00006001828154811061203057fe5b906000526020600020906004020160030154106121b6576001818154811061205457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061208557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106120ba57fe5b906000526020600020906004020160030154816120d357fe5b06600183815481106120e157fe5b906000526020600020906004020160030154039050612109838261325590919063ffffffff16565b8a8e8151811061211557fe5b6020026020010181815250506001828154811061212e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061215f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061218c57fe5b60209081029190910101526121a7878263ffffffff612d3916565b6001909d019c96506122789050565b6000600182815481106121c557fe5b906000526020600020906004020160030154111561227857600181815481106121ea57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061221b57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061224857fe5b906000526020600020906004020160030154848c8151811061226657fe5b60209081029190910101526001909a01995b600101612010565b50600085156126be576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156123125781810151838201526020016122fa565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015612351578181015183820152602001612339565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015612390578181015183820152602001612378565b505050509050019750505050505050506020604051808303818588803b1580156123b957600080fd5b505af1935050505080156123df57506040513d60208110156123da57600080fd5b505160015b61261a576040516000815260443d10156123fb57506000612496565b60046000803e60005160e01c6308c379a0811461241c576000915050612496565b60043d036004833e81513d60248201116001600160401b038211171561244757600092505050612496565b80830180516001600160401b03811115612468576000945050505050612496565b8060208301013d860181111561248657600095505050505050612496565b601f01601f191660405250925050505b806124a15750612545565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125055781810151838201526020016124ed565b50505050905090810190601f1680156125325780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612615565b3d80801561256f576040519150601f19603f3d011682016040523d82523d6000602084013e612574565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156125d95781810151838201526020016125c1565b50505050905090810190601f1680156126065780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6126be565b8015612658576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16126bc565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b80156128745760005b88518110156128725760008982815181106126de57fe5b602002602001015190506000600182815481106126f757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc918590811061272857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156127e4576001828154811061276957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d91859081106127b857fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612868565b600182815481106127f157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d918590811061284057fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016126c7565b505b8451156129be5760005b85518110156129bc57600086828151811061289557fe5b60200260200101516001600160a01b03166108fc8784815181106128b557fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561294b578682815181106128eb57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d87848151811061292957fe5b60200260200101516040518082815260200191505060405180910390a26129b3565b86828151811061295757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d87848151811061299557fe5b60200260200101516040518082815260200191505060405180910390a25b5060010161287e565b505b4715612a27576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612a25573d6000803e3d6000fd5b505b60006003819055600555825115612a4157612a4183613297565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a7e57600080fd5b505af1158015612a92573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612b265750600180820381548110612b0657fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612b6c5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050610f66565b600154600554600019820111801590612bc25784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050610f66565b600580546001908101909155805481906000198601908110612be057fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612c815780518252601f199092019160209182019101612c62565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612cef5780518252601f199092019160209182019101612cd0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b600082820183811015610bd8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b612d9b613dd6565b506040805180820190915281518152602082810190820152919050565b612dc0613d81565b612dc98261375e565b612dd257600080fd5b6000612de18360200151613798565b60208085015160408051808201909152868152920190820152915050919050565b6000612e0c613dd6565b505080518051602091820151919092015191011190565b612e2b613dd6565b612e3482612e02565b612e3d57600080fd5b60208201516000612e4d826137fb565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612e8657508151602110155b612e8f57600080fd5b6000612e9e8360200151613798565b90508083600001511015612ef9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015612f1f57826020036101000a820491505b50949350505050565b6060612f338261375e565b612f3c57600080fd5b6000612f478361392e565b9050606081604051908082528060200260200182016040528015612f8557816020015b612f72613dd6565b815260200190600190039081612f6a5790505b5090506000612f978560200151613798565b60208601510190506000805b84811015612fee57612fb4836137fb565b9150604051806040016040528083815260200184815250848281518110612fd757fe5b602090810291909101015291810191600101612fa3565b509195945050505050565b613001613da1565b600061300b613da1565b613013613d81565b61301c85612db8565b90506000805b61302b83612e02565b15611c6057806130565761304661304184612e23565b61398a565b6001600160a01b031684526130ce565b806001141561307e5761306b61304184612e23565b6001600160a01b031660208501526130ce565b80600214156130a65761309361304184612e23565b6001600160a01b031660408501526130ce565b8060031415611c53576130bb611b6584612e23565b6001600160401b03166060850152600191505b600101613022565b6060612d2e6130e4836139a4565b613a8a565b606081516000141561310a5750604080516000815260208101909152610f66565b60608260008151811061311957fe5b602002602001015190506000600190505b835181101561315a576131508285838151811061314357fe5b6020026020010151613adc565b915060010161312a565b50610bd861316d825160c060ff16613b59565b82613adc565b600060606029835111156131a5576000604051806060016040528060298152602001613df16029913991509150611c69565b60005b835181101561323b5760005b81811015613232578481815181106131c857fe5b6020026020010151600001516001600160a01b03168583815181106131e957fe5b6020026020010151600001516001600160a01b0316141561322a5760006040518060600160405280602b8152602001613e1a602b9139935093505050611c69565b6001016131b4565b506001016131a8565b505060408051602081019091526000815260019150915091565b6000610bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c51565b600154815160005b828110156133b45760016132b1613da1565b600183815481106132be57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156133885786818151811061334e57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156133805760009250613388565b60010161333a565b5081156133aa5780516001600160a01b03166000908152600460205260408120555b505060010161329f565b508082111561342957805b828110156134275760018054806133d257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b03191690556003909101919091559155016133bf565b505b6000818310613438578161343a565b825b905060005b81811015613634576134ec85828151811061345657fe5b60200260200101516001838154811061346b57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152613ce8565b61360757806001016004600087848151811061350457fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061354057fe5b60200260200101516001828154811061355557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561362c565b60006001828154811061361657fe5b9060005260206000209060040201600301819055505b60010161343f565b508282111561375857825b82811015610ef657600185828151811061365557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a0909201516003909301929092558751908401929088908590811061372b57fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161363f565b50505050565b805160009061376f57506000610f66565b6020820151805160001a9060c082101561378e57600092505050610f66565b5060019392505050565b8051600090811a60808110156137b2576000915050610f66565b60b88110806137cd575060c081108015906137cd575060f881105b156137dc576001915050610f66565b60c08110156137f05760b519019050610f66565b60f519019050610f66565b80516000908190811a60808110156138165760019150613927565b60b881101561382b57607e1981019150613927565b60c08110156138a557600060b78203600186019550806020036101000a86510491506001810182019350508083101561389f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613927565b60f88110156138ba5760be1981019150613927565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613925576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061393f57506000610f66565b600080905060006139538460200151613798565b602085015185519181019250015b8082101561398157613972826137fb565b60019093019290910190613961565b50909392505050565b805160009060151461399b57600080fd5b612d2e82612e71565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166139e857506018613a0c565b6fffffffffffffffffffffffffffffffff198416613a0857506010613a0c565b5060005b6020811015613a4257818181518110613a2157fe5b01602001516001600160f81b03191615613a3a57613a42565b600101613a0c565b60008160200390506060816040519080825280601f01601f191660200182016040528015613a77576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613abc5750607f60f81b82600081518110613aaa57fe5b01602001516001600160f81b03191611155b15613ac8575080610f66565b612d2e613ada8351608060ff16613b59565b835b6060806040519050835180825260208201818101602087015b81831015613b0d578051835260209283019201613af5565b50855184518101855292509050808201602086015b81831015613b3a578051835260209283019201613b22565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613ba9576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613c035782840160f81b81600081518110613be557fe5b60200101906001600160f81b031916908160001a9053509050612d2e565b6060613c0e856139a4565b90508381510160370160f81b82600081518110613c2757fe5b60200101906001600160f81b031916908160001a905350613c488282613adc565b95945050505050565b60008184841115613ce05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ca5578181015183820152602001613c8d565b50505050905090810190601f168015613cd25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b805182516000916001600160a01b039182169116148015613d22575081602001516001600160a01b031683602001516001600160a01b0316145b8015613d47575081604001516001600160a01b031683604001516001600160a01b0316145b8015610bd85750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b6040518060400160405280613d94613dd6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d69746475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d61746368f901b480f901b0f846941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf9477f066f3fb515bb97015e4b4afddbcb25c94286b86048c27395000f84694b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794748c284f46ab87fd492326f1e2fe731d22ad2db386048c27395000f84694a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f940ce09b38374887cb564b7efa60be130d99ed5f9586048c27395000f84694980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b2709407eecf36cf0901fefe4bc505d6ba03c7480c7b5786048c27395000f8469435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194f57d36e129881a3a13a024fe8072507e5b2e70f886048c27395000f84694f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594ddfcaedf9bb451098c9917a45f02bd61342cca6686048c273950006661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220ccbabefa423adb1cc63a2da2811a349dd54007c9dc3bd490ac200572c4e8eb1064736f6c63430006040033", + Code: niels.ChapelValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063831d65d111610130578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a146106d9578063f9a2bbc7146106e1578063fc3e5908146106e9578063fc4333cd146106f1578063fd6a6879146106f957610227565b8063c80d4b8f14610623578063c81b16621461062b578063c8509d8114610633578063c96be4cb146106ab578063dc927faf146106d157610227565b8063a1a11bf5116100ff578063a1a11bf514610531578063a78abc1614610539578063ab51bb9614610555578063ac0af6291461055d578063ac4317511461056557610227565b8063831d65d11461049f57806396713da9146105195780639bc8e4f2146105215780639dc092621461052957610227565b80634bf6c882116101b35780636e47b482116101825780636e47b4821461047757806370fd5bad1461047f57806375d47a0a146104875780637912a65d1461048f5780637942fd051461049757610227565b80634bf6c8821461045757806351e806721461045f578063567a372d1461046757806362b72cf51461046f57610227565b806337c8dab9116101fa57806337c8dab9146103b9578063389f4f71146103f85780633dffc3871461041257806343756e5c14610430578063493279b11461043857610227565b80630bee7a671461022c5780631182b8751461024d57806323bac5a21461033a57806335aa2e4414610380575b600080fd5b610234610701565b6040805163ffffffff9092168252519081900360200190f35b6102c56004803603604081101561026357600080fd5b60ff8235169190810190604081016020820135600160201b81111561028757600080fd5b82018360208201111561029957600080fd5b803590602001918460018302840111600160201b831117156102ba57600080fd5b509092509050610706565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ff5781810151838201526020016102e7565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103606004803603602081101561035057600080fd5b50356001600160a01b03166107da565b604080519384526020840192909252151582820152519081900360600190f35b61039d6004803603602081101561039657600080fd5b50356107fd565b604080516001600160a01b039092168252519081900360200190f35b6103df600480360360208110156103cf57600080fd5b50356001600160a01b0316610824565b6040805192835260208301919091528051918290030190f35b61040061087b565b60408051918252519081900360200190f35b61041a610881565b6040805160ff9092168252519081900360200190f35b61039d610886565b61044061088c565b6040805161ffff9092168252519081900360200190f35b61041a610891565b61039d610896565b61040061089c565b6104006108a2565b61039d6108a8565b61041a6108ae565b61039d6108b3565b6104006108b9565b61041a6108be565b610517600480360360408110156104b557600080fd5b60ff8235169190810190604081016020820135600160201b8111156104d957600080fd5b8201836020820111156104eb57600080fd5b803590602001918460018302840111600160201b8311171561050c57600080fd5b5090925090506108c3565b005b61041a610a1e565b610400610a23565b61039d610a2e565b61039d610a34565b610541610a3a565b604080519115158252519081900360200190f35b610234610a43565b610400610a48565b6105176004803603604081101561057b57600080fd5b810190602081018135600160201b81111561059557600080fd5b8201836020820111156105a757600080fd5b803590602001918460018302840111600160201b831117156105c857600080fd5b919390929091602081019035600160201b8111156105e557600080fd5b8201836020820111156105f757600080fd5b803590602001918460018302840111600160201b8311171561061857600080fd5b509092509050610a4d565b610400610e3b565b61039d610e40565b6105176004803603604081101561064957600080fd5b60ff8235169190810190604081016020820135600160201b81111561066d57600080fd5b82018360208201111561067f57600080fd5b803590602001918460018302840111600160201b831117156106a057600080fd5b509092509050610e46565b610517600480360360208110156106c157600080fd5b50356001600160a01b0316610ef9565b61039d61131e565b610517611324565b61039d611395565b61041a61139b565b6105176113a0565b61039d61182b565b606481565b606033612000146107485760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff1661078d576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061080a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061082f612146565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b33612000146109035760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610948576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b610950612169565b600061099184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061183192505050565b9150915080156109db5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a17565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15b5050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610a92576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b3361100714610ad25760405162461bcd60e51b815260040180806020018281038252602e81526020018061220d602e913960400191505060405180910390fd5b610b3d84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506118b19050565b15610c165760208114610b815760405162461bcd60e51b81526004018080602001828103825260278152602001806121b66027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610bbf9185858083850183828082843760009201919091525061199992505050565b905060018110158015610bd3575060055481105b610c0e5760405162461bcd60e51b815260040180806020018281038252602581526020018061225d6025913960400191505060405180910390fd5b600455610da9565b610c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506118b19050565b15610d6c5760208114610cc05760405162461bcd60e51b815260040180806020018281038252602281526020018061223b6022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610cfe9185858083850183828082843760009201919091525061199992505050565b90506103e88111158015610d13575060045481115b610d64576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610da9565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b3361200014610e865760405162461bcd60e51b815260040180806020018281038252602f815260200180612282602f913960400191505060405180910390fd5b60005460ff16610ecb576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610f375760405162461bcd60e51b815260040180806020018281038252602d8152602001806122b1602d913960400191505060405180910390fd5b60005460ff16610f7c576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b6003544311610fd2576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a1561101c576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b611024612146565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061107f5760208101805160010190526110d8565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b4381526005546020820151816110ea57fe5b0661123c57600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561113d57600080fd5b505af1158015611151573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6111718561199e565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156111d15781810151838201526020016111b9565b50505050905090810190601f1680156111fe5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561121f57600080fd5b505af1158015611233573d6000803e3d6000fd5b505050506112b2565b60045481602001518161124b57fe5b066112b257604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b15801561129957600080fd5b505af11580156112ad573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505043600355565b61100381565b60005460ff161561137c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146113e05760405162461bcd60e51b81526004018080602001828103825260308152602001806121dd6030913960400191505060405180910390fd5b60005460ff16611425576040805162461bcd60e51b815260206004820152601960248201526000805160206122de833981519152604482015290519081900360640190fd5b60015461143157611829565b600154600090600019015b8082116117fd576000805b8284101561156057611457612146565b600260006001878154811061146857fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff16151590820152600554909150600490048160200151111561154a576004600554816114d557fe5b048160200151038160200181815250508060026000600188815481106114f757fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611554565b6001925050611560565b50600190930192611447565b8284116116f75761156f612146565b600260006001868154811061158057fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611668576004600554816115ed57fe5b0481602001510381602001818152505080600260006001878154811061160f57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506116f79050565b600260006001868154811061167957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806116bd57fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836116ea57506116f7565b5060001990920191611560565b8180156117015750805b156117e057600260006001868154811061171757fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061175e57fe5b600091825260209091200154600180546001600160a01b03909216918690811061178457fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117bd57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b826117ec5750506117fd565b50506001909101906000190161143c565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b611839612169565b6000611843612169565b61184b61217b565b61185c61185786611a70565b611a95565b90506000805b61186b83611adf565b156118a457806118975761188661188184611b00565b611b4e565b63ffffffff1684526001915061189c565b6118a4565b600101611862565b5091935090915050915091565b6000816040516020018082805190602001908083835b602083106118e65780518252601f1990920191602091820191016118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106119545780518252601f199092019160209182019101611935565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816119b95790505090506119e2836001600160a01b0316611c05565b816000815181106119ef57fe5b6020026020010181905250611a0343611c28565b81600181518110611a1057fe5b6020908102919091010152611a256061611c28565b81600281518110611a3257fe5b6020026020010181905250611a4642611c28565b81600381518110611a5357fe5b6020026020010181905250611a6781611c3b565b9150505b919050565b611a7861219b565b506040805180820190915281518152602082810190820152919050565b611a9d61217b565b611aa682611cc5565b611aaf57600080fd5b6000611abe8360200151611cff565b60208085015160408051808201909152868152920190820152915050919050565b6000611ae961219b565b505080518051602091820151919092015191011190565b611b0861219b565b611b1182611adf565b611b1a57600080fd5b60208201516000611b2a82611d62565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611b6357508151602110155b611b6c57600080fd5b6000611b7b8360200151611cff565b90508083600001511015611bd6576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611bfc57826020036101000a820491505b50949350505050565b60408051600560a21b8318601482015260348101909152606090611a6781611e95565b6060611993611c3683611eeb565b611e95565b6060815160001415611c5c5750604080516000815260208101909152611a6b565b606082600081518110611c6b57fe5b602002602001015190506000600190505b8351811015611cac57611ca282858381518110611c9557fe5b6020026020010151611fd1565b9150600101611c7c565b50611a67611cbf825160c060ff1661204e565b82611fd1565b8051600090611cd657506000611a6b565b6020820151805160001a9060c0821015611cf557600092505050611a6b565b5060019392505050565b8051600090811a6080811015611d19576000915050611a6b565b60b8811080611d34575060c08110801590611d34575060f881105b15611d43576001915050611a6b565b60c0811015611d575760b519019050611a6b565b60f519019050611a6b565b80516000908190811a6080811015611d7d5760019150611e8e565b60b8811015611d9257607e1981019150611e8e565b60c0811015611e0c57600060b78203600186019550806020036101000a865104915060018101820193505080831015611e06576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611e8e565b60f8811015611e215760be1981019150611e8e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611e8c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b606081516001148015611ec75750607f60f81b82600081518110611eb557fe5b01602001516001600160f81b03191611155b15611ed3575080611a6b565b611993611ee58351608060ff1661204e565b83611fd1565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f2f57506018611f53565b6fffffffffffffffffffffffffffffffff198416611f4f57506010611f53565b5060005b6020811015611f8957818181518110611f6857fe5b01602001516001600160f81b03191615611f8157611f89565b600101611f53565b60008160200390506060816040519080825280601f01601f191660200182016040528015611fbe576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015612002578051835260209283019201611fea565b50855184518101855292509050808201602086015b8183101561202f578051835260209283019201612017565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061209e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116120f85782840160f81b816000815181106120da57fe5b60200101906001600160f81b031916908160001a9053509050611993565b606061210385611eeb565b90508381510160370160f81b8260008151811061211c57fe5b60200101906001600160f81b031916908160001a90535061213d8282611fd1565b95945050505050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061218e61219b565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220928e8ab9d0213bb25ef35f991d92a3bba9ae0b32c8a4041abe55fcb03c7709dd64736f6c63430006040033", + Code: niels.ChapelSlashContract, }, { ContractAddr: common.HexToAddress(SystemRewardContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061014f5760003560e01c806396713da9116100b6578063c81b16621161006f578063c81b1662146103dc578063dc927faf146103f1578063f9a2bbc714610406578063fb5478b31461041b578063fc3e590814610430578063fd6a68791461044557610193565b806396713da91461033a5780639a99b4f01461034f5780639dc0926214610388578063a1a11bf51461039d578063a78abc16146103b2578063ab51bb96146103c757610193565b806351e806721161010857806351e806721461028a5780636d70f7ae1461029f5780636e47b482146102e657806370fd5bad146102fb57806375d47a0a146103105780637942fd051461032557610193565b80630bee7a67146101985780633a0b0eff146101c65780633dffc387146101ed57806343756e5c14610218578063493279b1146102495780634bf6c8821461027557610193565b366101935734156101915760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101a457600080fd5b506101ad61045a565b6040805163ffffffff9092168252519081900360200190f35b3480156101d257600080fd5b506101db61045f565b60408051918252519081900360200190f35b3480156101f957600080fd5b50610202610465565b6040805160ff9092168252519081900360200190f35b34801561022457600080fd5b5061022d61046a565b604080516001600160a01b039092168252519081900360200190f35b34801561025557600080fd5b5061025e610470565b6040805161ffff9092168252519081900360200190f35b34801561028157600080fd5b50610202610475565b34801561029657600080fd5b5061022d61047a565b3480156102ab57600080fd5b506102d2600480360360208110156102c257600080fd5b50356001600160a01b0316610480565b604080519115158252519081900360200190f35b3480156102f257600080fd5b5061022d61049e565b34801561030757600080fd5b506102026104a4565b34801561031c57600080fd5b5061022d6104a9565b34801561033157600080fd5b506102026104af565b34801561034657600080fd5b506102026104b4565b34801561035b57600080fd5b506101db6004803603604081101561037257600080fd5b506001600160a01b0381351690602001356104b9565b34801561039457600080fd5b5061022d610664565b3480156103a957600080fd5b5061022d61066a565b3480156103be57600080fd5b506102d2610670565b3480156103d357600080fd5b506101ad610679565b3480156103e857600080fd5b5061022d61067e565b3480156103fd57600080fd5b5061022d610684565b34801561041257600080fd5b5061022d61068a565b34801561042757600080fd5b506101db610690565b34801561043c57600080fd5b5061020261069c565b34801561045157600080fd5b5061022d6106a1565b606481565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b61100881565b600b81565b600981565b6000805460ff1661053657600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166105845760405162461bcd60e51b815260040180806020018281038252602b8152602001806106a8602b913960400191505060405180910390fd5b60004783106105935747610595565b825b9050670de0b6b3a76400008111156105b25750670de0b6b3a76400005b8015610633576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156105ee573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261065d565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b6110048156fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f64a2646970667358221220276887b515b756cf3ef5b38df18fd3a11174ee7fd973bdd337fc09d6b0e42f3b64736f6c63430006040033", + Code: niels.ChapelSystemRewardContract, }, { ContractAddr: common.HexToAddress(LightClientContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102115760003560e01c8063a78abc1611610125578063dda83148116100ad578063e405bbc31161007c578063e405bbc314610681578063ea54b2aa14610689578063f9a2bbc714610691578063fc3e590814610699578063fd6a6879146106a157610211565b8063dda8314814610609578063df5fe7041461062f578063e1c7392a14610655578063e2761af01461065d57610211565b8063c81b1662116100f4578063c81b166214610534578063cba510a91461053c578063d816987914610562578063da8d08f0146105db578063dc927faf1461060157610211565b8063a78abc1614610444578063ab51bb9614610460578063ac43175114610468578063adc879e91461052c57610211565b8063564b81ef116101a857806375d47a0a1161017757806375d47a0a1461041c5780637942fd051461042457806396713da91461042c5780639dc0926214610434578063a1a11bf51461043c57610211565b8063564b81ef146102ca5780635c5ae8db146103475780636e47b4821461040c57806370fd5bad1461041457610211565b806343756e5c116101e457806343756e5c14610277578063493279b11461029b5780634bf6c882146102ba57806351e80672146102c257610211565b80630bee7a67146102165780632657e9b61461023757806333f7798d146102515780633dffc38714610259575b600080fd5b61021e6106a9565b6040805163ffffffff9092168252519081900360200190f35b61023f6106ae565b60408051918252519081900360200190f35b61023f6106b9565b6102616106bf565b6040805160ff9092168252519081900360200190f35b61027f6106c4565b604080516001600160a01b039092168252519081900360200190f35b6102a36106ca565b6040805161ffff9092168252519081900360200190f35b6102616106cf565b61027f6106d4565b6102d26106da565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030c5781810151838201526020016102f4565b50505050905090810190601f1680156103395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61036d6004803603602081101561035d57600080fd5b50356001600160401b03166107e6565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ce5781810151838201526020016103b6565b50505050905090810190601f1680156103fb5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61027f6108a1565b6102616108a7565b61027f6108ac565b6102616108b2565b6102616108b7565b61027f6108bc565b61027f6108c2565b61044c6108c8565b604080519115158252519081900360200190f35b61021e6108d1565b61052a6004803603604081101561047e57600080fd5b81019060208101813564010000000081111561049957600080fd5b8201836020820111156104ab57600080fd5b803590602001918460018302840111640100000000831117156104cd57600080fd5b9193909290916020810190356401000000008111156104eb57600080fd5b8201836020820111156104fd57600080fd5b8035906020019184600183028401116401000000008311171561051f57600080fd5b5090925090506108d6565b005b61023f610b8f565b61027f610b95565b61023f6004803603602081101561055257600080fd5b50356001600160401b0316610b9b565b61044c6004803603604081101561057857600080fd5b81019060208101813564010000000081111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460018302840111640100000000831117156105c757600080fd5b9193509150356001600160401b0316610bba565b61027f600480360360208110156105f157600080fd5b50356001600160401b031661139b565b61027f6113b6565b61027f6004803603602081101561061f57600080fd5b50356001600160401b03166113bc565b61044c6004803603602081101561064557600080fd5b50356001600160401b03166113e0565b61052a611422565b6106656115c7565b604080516001600160401b039092168252519081900360200190f35b6106656115d6565b6102d26115ec565b61027f611609565b61026161160f565b61027f611614565b606481565b662386f26fc1000081565b60055481565b600181565b61100181565b606181565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561075057828160ff168151811061072457fe5b01602001516001600160f81b0319161561074357600190910190610748565b610750565b600101610709565b5060608160ff166040519080825280601f01601f191660200182016040528015610781576020820181803683370190505b50905060005b8260ff168160ff1610156107dd57838160ff16815181106107a457fe5b602001015160f81c60f81b828260ff16815181106107be57fe5b60200101906001600160f81b031916908160001a905350600101610787565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b5050505050905084565b61100581565b600281565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661092d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461096d5760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac6602e913960400191505060405180910390fd5b6109e184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e676500000000006020820152915061161a9050565b15610ac05760208114610a255760405162461bcd60e51b815260040180806020018281038252602e815260200180611a65602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a639185858083850183828082843760009201919091525061170192505050565b9050600081118015610a7d5750670de0b6b3a76400008111155b610ab85760405162461bcd60e51b815260040180806020018281038252602f815260200180611af4602f913960400191505060405180910390fd5b600555610afd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d6020811015610c2757600080fd5b5051610c7a576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610cee576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610d3b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b236026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610d56611863565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610e5957506003546001600160401b0390811690831610155b15610f3a5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610f2a5780601f10610eff57610100808354040283529160200191610f2a565b820191906000526020600020905b815481529060010190602001808311610f0d57829003601f168201915b5050505050815250509050610e28565b6060810151516110315780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f810183900483028401830190945283835293955090929190830182828015610fe95780601f10610fbe57610100808354040283529160200191610fe9565b820191906000526020600020905b815481529060010190602001808311610fcc57829003601f168201915b505050506060830182905250516110315760405162461bcd60e51b8152600401808060200182810382526021815260200180611a446021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611070576020820181803683370190505b509050600061107e82611706565b905061108c8486838661170c565b6110c75760405162461bcd60e51b81526004018080602001828103825260238152602001806119416023913960400191505060405180910390fd5b6000838201915061110d8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061177892505050565b9450905061111c818386611782565b8251602001935061112b611889565b6110008186866064600019fa61114057600080fd5b805194506000600160f81b8616156111cf5750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d60208110156111cc57600080fd5b50505b856001600160401b0316955060208201935060006111ef858884156117c3565b90985090506001600160401b03808216908c161461123e5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a936033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b93926112c59260038501929101906118a8565b50506003546001600160401b03600160401b9091048116908d161115905061130d576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b031615158061141c57506003546001600160401b038381169116145b92915050565b60005460ff161561147a576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061149f60405180610100016040528060e0815260200161196460e09139611778565b815160045590925090506114b1611863565b60006114bf848460006117c3565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff191694169390931783558086015191830191909155918401516002820155606084015180519496509294508593909261152b9260038501929101906118a8565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e0815260200161196460e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b6020831061164f5780518252601f199092019160209182019101611630565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106116bd5780518252601f19909201916020918201910161169e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b600084606001515182840103925060008061172a8760600151611778565b909250905061173a828683611782565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b602081106117a2578251825260209283019290910190601f1901611783565b915181516020939093036101000a6000190180199091169216919091179052565b6117cb611863565b60088401516028850151604890950180519095600092916117ea611863565b6020810183905260408101829052866118555760008060688a036040519080825280601f01601f19166020018201604052801561182e576020820181803683370190505b506060840181905261183f90611778565b909250905061185260208c018383611782565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106118e957805160ff1916838001178555611916565b82800160010185558215611916579182015b828111156119165782518255916020019190600101906118fb565b50611922929150611926565b5090565b6107e391905b80821115611922576000815560010161192c56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e676563616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a2646970667358221220137a8776113e727049f523a5f1486edaec611d89ff3d19f099dfe799b6b5e66f64736f6c63430006040033", + Code: niels.ChapelLightClientContract, }, { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e5908146109c9578063fd6a687914610ce6578063ff9c0027146107c757610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063dc6f5e90116100d1578063dc6f5e90146109c9578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063a7c9f02d11610164578063ac4317511161013e578063ac43175114610a3a578063b770186114610b05578063b99328c514610b1a578063b9fd21e314610b5357610366565b8063a7c9f02d146109c9578063aa7415f5146109de578063ab51bb9614610a2557610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a5cd588b14610981578063a78abc16146109b457610366565b80635d499b1b1161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105b25780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b80635d499b1b14610671578063613684751461036b5780636e056520146106865780636e47b482146107b257806370fd5bad146107c757806371d30863146107dc57610366565b806343756e5c116102d75780634bf6c882116102b15780634bf6c8821461036b57806350432d321461061d57806351e806721461063257806359b927891461064757610366565b806343756e5c146105c757806343a368b9146105dc578063493279b1146105f157610366565b8063077b8f351461036b5780630bee7a67146103965780631182b875146103c4578063149d14d9146104be5780633d713223146104e55780633dffc387146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805160ff9092168252519081900360200190f35b3480156103a257600080fd5b506103ab610d00565b6040805163ffffffff9092168252519081900360200190f35b3480156103d057600080fd5b50610449600480360360408110156103e757600080fd5b60ff8235169190810190604081016020820135600160201b81111561040b57600080fd5b82018360208201111561041d57600080fd5b803590602001918460018302840111600160201b8311171561043e57600080fd5b509092509050610d05565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561048357818101518382015260200161046b565b50505050905090810190601f1680156104b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ca57600080fd5b506104d3610e33565b60408051918252519081900360200190f35b3480156104f157600080fd5b506105966004803603602081101561050857600080fd5b810190602081018135600160201b81111561052257600080fd5b82018360208201111561053457600080fd5b803590602001918460018302840111600160201b8311171561055557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e39945050505050565b604080516001600160a01b039092168252519081900360200190f35b3480156105be57600080fd5b50610380610e5d565b3480156105d357600080fd5b50610596610e62565b3480156105e857600080fd5b506104d3610e68565b3480156105fd57600080fd5b50610606610e74565b6040805161ffff9092168252519081900360200190f35b34801561062957600080fd5b506104d3610e79565b34801561063e57600080fd5b50610596610e84565b34801561065357600080fd5b506105966004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104d3610ea5565b61079e6004803603608081101561069c57600080fd5b810190602081018135600160201b8111156106b657600080fd5b8201836020820111156106c857600080fd5b803590602001918460208302840111600160201b831117156106e957600080fd5b919390929091602081019035600160201b81111561070657600080fd5b82018360208201111561071857600080fd5b803590602001918460208302840111600160201b8311171561073957600080fd5b919390929091602081019035600160201b81111561075657600080fd5b82018360208201111561076857600080fd5b803590602001918460208302840111600160201b8311171561078957600080fd5b91935091503567ffffffffffffffff16610eae565b604080519115158252519081900360200190f35b3480156107be57600080fd5b50610596611383565b3480156107d357600080fd5b50610380611389565b3480156107e857600080fd5b506104d361138e565b3480156107fd57600080fd5b50610596611394565b34801561081257600080fd5b5061038061139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061038061156e565b34801561090057600080fd5b506104d3611573565b34801561091557600080fd5b506104d36004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b506105966116bd565b34801561096357600080fd5b506105966116c3565b34801561097857600080fd5b506103806116c9565b34801561098d57600080fd5b506104d3600480360360208110156109a457600080fd5b50356001600160a01b03166116ce565b3480156109c057600080fd5b5061079e6116e0565b3480156109d557600080fd5b506103806116e9565b61079e600480360360808110156109f457600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116ee565b348015610a3157600080fd5b506103ab6116c9565b348015610a4657600080fd5b5061036460048036036040811015610a5d57600080fd5b810190602081018135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b919390929091602081019035600160201b811115610ac757600080fd5b820183602082011115610ad957600080fd5b803590602001918460018302840111600160201b83111715610afa57600080fd5b509092509050611daf565b348015610b1157600080fd5b506104d361201e565b348015610b2657600080fd5b5061036460048036036040811015610b3d57600080fd5b50803590602001356001600160a01b0316612024565b348015610b5f57600080fd5b506104d361209a565b348015610b7457600080fd5b506104d360048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b506105966120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b50610596612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061038061223b565b348015610c8057600080fd5b50610380612240565b348015610c9557600080fd5b50610596612245565b348015610caa57600080fd5b506104d361224b565b348015610cbf57600080fd5b5061044960048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b50610596612378565b600881565b606481565b60005460609060ff16610d4d576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b3361200014610d8d5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff841660021415610ddf57610dd883838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e2c565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b662386f26fc1000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b6000805460ff16610ef4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b868514610f325760405162461bcd60e51b815260040180806020018281038252603b815260200180614732603b913960400191505060405180910390fd5b868314610f705760405162461bcd60e51b815260040180806020018281038252603f815260200180614605603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fbc5760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156110005760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611033578160200160208202803683370190505b50905060005b8481101561110e576402540be4008b8b8381811061105357fe5b905060200201358161106157fe5b061561109e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6110c38b8b838181106110ad57fe5b90506020020135856124a290919063ffffffff16565b93506110ef6402540be4008c8c848181106110da57fe5b905060200201356124fc90919063ffffffff16565b8282815181106110fb57fe5b6020908102919091010152600101611039565b5060015461113390611126908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111715760405162461bcd60e51b81526004018080602001828103825260568152602001806147df6056913960600191505060405180910390fd5b611181348463ffffffff61259716565b915061118b61434e565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d7600361124f846125d9565b611264876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c25781810151838201526020016112aa565b50505050905090810190601f1680156112ef5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131057600080fd5b505af1158015611324573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b600281565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614468602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60026020526000908152604090205481565b60005460ff1681565b600381565b6000805460ff16611734576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156117805760405162461bcd60e51b81526004018080602001828103825260248152602001806144f56024913960400191505060405180910390fd5b6402540be4003406156117c45760405162461bcd60e51b81526004018080602001828103825260408152602001806148356040913960400191505060405180910390fd5b600080806001600160a01b0388166118a3576001546117ea90879063ffffffff6124a216565b3410156118285760405162461bcd60e51b815260040180806020018281038252606181526020018061457f6061913960800191505060405180910390fd5b6402540be40086061561186c5760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b61187c348763ffffffff61259716565b9050611893866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b46565b6001600160a01b0388166000908152600360205260409020549250826118fa5760405162461bcd60e51b815260040180806020018281038252603181526020018061454e6031913960400191505060405180910390fd5b60015434101561193b5760405162461bcd60e51b815260040180806020018281038252603f8152602001806146a1603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061198657506008811180156119865750611984876007198301600a0a63ffffffff6128f016565b155b6119c15760405162461bcd60e51b815260040180806020018281038252603c815260200180614644603c913960400191505060405180910390fd5b6119cb8782612932565b92506119d684612972565b15611a1e576305f5e100831015611a1e5760405162461bcd60e51b815260040180806020018281038252603a815260200180614497603a913960400191505060405180910390fd5b600881101580611a385750600881108015611a3857508683115b611a735760405162461bcd60e51b81526004018080602001828103825260258152602001806145e06025913960400191505060405180910390fd5b677ce66c50e2840000831115611aba5760405162461bcd60e51b81526004018080602001828103825260358152602001806145196035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611b0f57600080fd5b505af1158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b5051611b4457600080fd5b505b611b4e61434e565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bfc57fe5b602002602001018181525050878160600151600081518110611c1a57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c4c57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c77846125d9565b611c8c866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cea578181015183820152602001611cd2565b50505050905090810190601f168015611d175780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611def5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146e0602e913960400191505060405180910390fd5b60208114611e44576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f4c576020820151670de0b6b3a76400008111801590611ef357506402540be4008106155b611f44576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f89565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61c35081565b33611008146120645760405162461bcd60e51b815260040180806020018281038252602381526020018061479c6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147bf833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061476d602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b662386f26fc1000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b606061238861439a565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143cf565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e58565b50506040805160008152602081019091529150610e589050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146806021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143f6565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b815260040180806020018281038252602481526020018061470e6024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600860ff82161015612a0057600092505050610e58565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e58565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e58565b5060019392505050565b612a8061434e565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144d16024913960400191505060405180910390fd5b612ad36143f6565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613bc6565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e61439a565b6000612b8861439a565b612b9061442d565b612ba1612b9c86613bff565b613c24565b90506000805b612bb083613c6e565b15612ca85780612bd257612bcb612bc684613c8f565b613cdd565b8452612ca0565b8060011415612bff57612bec612be784613c8f565b613d94565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c8f565b6040850152612ca0565b8060031415612c4657612c33612be784613c8f565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c8f565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c8f565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e58565b8160400151471015612cfc57506003610e58565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e58565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e58565b8160a0015167ffffffffffffffff16421115612e0a57506001610e58565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e58565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e58565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e589050565b5060059150610e589050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2c81613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613dae565b613e94565b60408051600560a21b8318601482015260348101909152606090610e2c81613e94565b60608151600014156132315750604080516000815260208101909152610e58565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ee6565b9150600101613251565b50610e2c613294825160c060ff16613f63565b82613ee6565b6132a26143f6565b60006132ac6143f6565b6132b461442d565b6132c0612b9c86613bff565b90506000805b6132cf83613c6e565b15612ca857806132f5576132e5612be784613c8f565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c8f565b61405b565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cdd565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c8f565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d94565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c8f565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b61395361434e565b600061395d61434e565b61396561442d565b613971612b9c86613bff565b90506000805b61398083613c6e565b15613bb8578061399d57613996612bc684613c8f565b8452613bb0565b80600114156139c5576139b2612be784613c8f565b6001600160a01b03166020850152613bb0565b8060021415613a545760606139dc61330c85613c8f565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613bb0565b8060031415613ae9576060613a6b61330c85613c8f565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c8f565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415613bab57613b93612bc684613c8f565b67ffffffffffffffff1660a085015260019150613bb0565b613bb8565b600101613977565b509195600195509350505050565b60006008821115613be857612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613c0761444d565b506040805180820190915281518152602082810190820152919050565b613c2c61442d565b613c358261412c565b613c3e57600080fd5b6000613c4d836020015161415c565b60208085015160408051808201909152868152920190820152915050919050565b6000613c7861444d565b505080518051602091820151919092015191011190565b613c9761444d565b613ca082613c6e565b613ca957600080fd5b60208201516000613cb9826141bf565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cf257508151602110155b613cfb57600080fd5b6000613d0a836020015161415c565b90508083600001511015613d65576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d8b57826020036101000a820491505b50949350505050565b8051600090601514613da557600080fd5b6116b782613cdd565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613df257506018613e16565b6fffffffffffffffffffffffffffffffff198416613e1257506010613e16565b5060005b6020811015613e4c57818181518110613e2b57fe5b01602001516001600160f81b03191615613e4457613e4c565b600101613e16565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e81576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613ec65750607f60f81b82600081518110613eb457fe5b01602001516001600160f81b03191611155b15613ed2575080610e58565b6116b7613ee48351608060ff16613f63565b835b6060806040519050835180825260208201818101602087015b81831015613f17578051835260209283019201613eff565b50855184518101855292509050808201602086015b81831015613f44578051835260209283019201613f2c565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613fb3576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161400d5782840160f81b81600081518110613fef57fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061401885613dae565b90508381510160370160f81b8260008151811061403157fe5b60200101906001600160f81b031916908160001a9053506140528282613ee6565b95945050505050565b60606140668261412c565b61406f57600080fd5b600061407a836142f2565b90506060816040519080825280602002602001820160405280156140b857816020015b6140a561444d565b81526020019060019003908161409d5790505b50905060006140ca856020015161415c565b60208601510190506000805b84811015614121576140e7836141bf565b915060405180604001604052808381526020018481525084828151811061410a57fe5b6020908102919091010152918101916001016140d6565b509195945050505050565b805160009061413d57506000610e58565b6020820151805160001a9060c0821015612a6e57600092505050610e58565b8051600090811a6080811015614176576000915050610e58565b60b8811080614191575060c08110801590614191575060f881105b156141a0576001915050610e58565b60c08110156141b45760b519019050610e58565b60f519019050610e58565b80516000908190811a60808110156141da57600191506142eb565b60b88110156141ef57607e19810191506142eb565b60c081101561426957600060b78203600186019550806020036101000a865104915060018101820193505080831015614263576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142eb565b60f881101561427e5760be19810191506142eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061430357506000610e58565b60008090506000614317846020015161415c565b602085015185519181019250015b8082101561434557614336826141bf565b60019093019290910190614325565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061444061444d565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220e59d62bf5fb2933f655143755e397406da6b105ef90a69a8209ff1a057bc41c964736f6c63430006040033", + Code: niels.ChapelTokenHubContract, }, { ContractAddr: common.HexToAddress(RelayerIncentivizeContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106102765760003560e01c80637e146cc51161014f578063af400681116100c1578063e75d72c71161007a578063e75d72c714610795578063e89a3020146107c8578063f9a2bbc7146107f2578063fc3e590814610807578063fd6a68791461081c578063fdd31fcd146108315761027d565b8063af400681146106ed578063bd4cc83014610717578063c81b166214610741578063dc927faf14610756578063dcae76ab1461076b578063e1c7392a146107805761027d565b8063a3c3c0ad11610113578063a3c3c0ad146105b3578063a78abc16146105c8578063a7c6a59d146105dd578063ab51bb96146105f2578063ac43175114610607578063ace9fcc2146106d85761027d565b80637e146cc51461052c578063930e1b091461054157806396713da9146105745780639dc0926214610589578063a1a11bf51461059e5761027d565b806343756e5c116101e85780636e47b482116101ac5780636e47b482146104645780636f93d2e61461047957806370fd5bad146104d857806374f2272d146104ed57806375d47a0a146105025780637942fd05146105175761027d565b806343756e5c146103e4578063493279b1146103f95780634bf6c8821461042557806351e806721461043a578063541333071461044f5761027d565b806312950c461161023a57806312950c46146103165780631b20087c1461032b5780631c643312146103405780633a975612146102825780633dffc3871461038657806340bb43c0146103b15761027d565b8063081e9d131461028257806308f2ec06146102a9578063093f2fc4146102be5780630bee7a67146102d357806310e06a76146103015761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610864565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610869565b3480156102ca57600080fd5b5061029761086e565b3480156102df57600080fd5b506102e8610873565b6040805163ffffffff9092168252519081900360200190f35b34801561030d57600080fd5b50610297610878565b34801561032257600080fd5b5061029761087e565b34801561033757600080fd5b50610297610884565b34801561034c57600080fd5b5061036a6004803603602081101561036357600080fd5b503561088a565b604080516001600160a01b039092168252519081900360200190f35b34801561039257600080fd5b5061039b610864565b6040805160ff9092168252519081900360200190f35b3480156103bd57600080fd5b50610297600480360360208110156103d457600080fd5b50356001600160a01b03166108b1565b3480156103f057600080fd5b5061036a6108c3565b34801561040557600080fd5b5061040e6108c9565b6040805161ffff9092168252519081900360200190f35b34801561043157600080fd5b5061039b6108ce565b34801561044657600080fd5b5061036a6108d3565b34801561045b57600080fd5b50610297610873565b34801561047057600080fd5b5061036a6108d9565b34801561048557600080fd5b506104c46004803603608081101561049c57600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108df565b604080519115158252519081900360200190f35b3480156104e457600080fd5b5061039b610cad565b3480156104f957600080fd5b50610297610cb2565b34801561050e57600080fd5b5061036a610cb8565b34801561052357600080fd5b5061039b610cbe565b34801561053857600080fd5b50610297610cc3565b34801561054d57600080fd5b506102976004803603602081101561056457600080fd5b50356001600160a01b0316610cc8565b34801561058057600080fd5b5061039b610cda565b34801561059557600080fd5b5061036a610cdf565b3480156105aa57600080fd5b5061036a610ce5565b3480156105bf57600080fd5b50610297610ceb565b3480156105d457600080fd5b506104c4610cf1565b3480156105e957600080fd5b50610297610cfa565b3480156105fe57600080fd5b506102e8610d00565b34801561061357600080fd5b506106d66004803603604081101561062a57600080fd5b81019060208101813564010000000081111561064557600080fd5b82018360208201111561065757600080fd5b8035906020019184600183028401116401000000008311171561067957600080fd5b91939092909160208101903564010000000081111561069757600080fd5b8201836020820111156106a957600080fd5b803590602001918460018302840111640100000000831117156106cb57600080fd5b509092509050610d05565b005b3480156106e457600080fd5b50610297611354565b3480156106f957600080fd5b506102976004803603602081101561071057600080fd5b503561135a565b34801561072357600080fd5b506102976004803603602081101561073a57600080fd5b50356113b5565b34801561074d57600080fd5b5061036a6113ce565b34801561076257600080fd5b5061036a6113d4565b34801561077757600080fd5b506102976113da565b34801561078c57600080fd5b506106d66113e0565b3480156107a157600080fd5b506106d6600480360360208110156107b857600080fd5b50356001600160a01b03166114a9565b3480156107d457600080fd5b5061036a600480360360208110156107eb57600080fd5b5035611602565b3480156107fe57600080fd5b5061036a61160f565b34801561081357600080fd5b5061039b611615565b34801561082857600080fd5b5061036a61161a565b34801561083d57600080fd5b506102976004803603602081101561085457600080fd5b50356001600160a01b0316611620565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b6006818154811061089757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606181565b600881565b61200081565b61100581565b6000805460ff16610937576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f815260200180612164602f913960400191505060405180910390fd5b600082156109fc57604080516309a99b4f60e41b8152611005600482015260248101869052905161100291639a99b4f09160448083019260209291908290030181600087803b1580156109c957600080fd5b505af11580156109dd573d6000803e3d6000fd5b505050506040513d60208110156109f357600080fd5b50519050610a75565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a4657600080fd5b505af1158015610a5a573d6000803e3d6000fd5b505050506040513d6020811015610a7057600080fd5b505190505b600c805460010190556000610a8982611632565b600954909150610a9f908263ffffffff61166116565b600955600a54610ac7908290610abb908563ffffffff61166116565b9063ffffffff6116c216565b600a556001600160a01b038716600090815260056020526040902054610b3357600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610bb157600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610ca057600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610c2b611704565b90506000610c376119e8565b6001600160a01b0389166000908152600d6020526040902054909150610c75908290610c69908563ffffffff61166116565b9063ffffffff61166116565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610d455760405162461bcd60e51b815260040180806020018281038252602e8152602001806120a9602e913960400191505060405180910390fd5b60005460ff16610d865760405162461bcd60e51b81526004018080602001828103825260218152602001806120d76021913960400191505060405180910390fd5b610dfa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611c669050565b15610ec75760208114610e3e5760405162461bcd60e51b81526004018080602001828103825260328152602001806121936032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610e7c91858580838501838280828437600092019190915250611d4d92505050565b9050600254811115610ebf5760405162461bcd60e51b8152600401808060200182810382526060815260200180611f826060913960600191505060405180910390fd5b6001556112c2565b610f2084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160608101909152602280825290925090506120876020830139611c66565b15610ff85760208114610f645760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610fa291858580838501838280828437600092019190915250611d4d92505050565b90508015801590610fb557506001548110155b610ff05760405162461bcd60e51b815260040180806020018281038252606c8152602001806120f8606c913960800191505060405180910390fd5b6002556112c2565b61106c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611c669050565b1561113957602081146110b05760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916110ee91858580838501838280828437600092019190915250611d4d92505050565b90506004548111156111315760405162461bcd60e51b8152600401808060200182810382526056815260200180611fe26056913960600191505060405180910390fd5b6003556112c2565b6111ad84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611c669050565b1561128557602081146111f15760405162461bcd60e51b815260040180806020018281038252602e815260200180612038602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161122f91858580838501838280828437600092019190915250611d4d92505050565b9050801580159061124257506003548110155b61127d5760405162461bcd60e51b8152600401808060200182810382526061815260200180611f216061913960800191505060405180910390fd5b6004556112c2565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161136b5750806113b0565b81602810801561137c575060508211155b15611389575060286113b0565b60508211801561139a5750606e8211155b156113aa575060788190036113b0565b50600481045b919050565b6000602882116113c65750806113b0565b5060286113b0565b61100281565b61100381565b60095481565b60005460ff1615611438576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615611486576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d602052604090205480611508576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506115b85760405161100290819084156108fc029085906000818181858888f19350505050158015611572573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506115ff565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b6008818154811061089757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600061165b60025461164f60015485611d5290919063ffffffff16565b9063ffffffff611dab16565b92915050565b6000828201838110156116bb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006116bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ded565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561176057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611742575b5050505050905060608151604051908082528060200260200182016040528015611794578160200160208202803683370190505b50905060005b82518110156118215760008382815181106117b157fe5b6020026020010151905060006117eb60056000846001600160a01b03166001600160a01b03168152602001908152602001600020546113b5565b9050808484815181106117fa57fe5b6020908102919091010152611815868263ffffffff61166116565b9550505060010161179a565b50600061183f60045461164f60035488611d5290919063ffffffff16565b9050611851858263ffffffff6116c216565b94508460015b845181101561192857600061188c8761164f8a88868151811061187657fe5b6020026020010151611d5290919063ffffffff16565b90506118d981600d60008986815181106118a257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461166190919063ffffffff16565b600d60008885815181106118e957fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205561191d838263ffffffff6116c216565b925050600101611857565b5061193e81600d6000876000815181106118a257fe5b600d60008660008151811061194f57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b84518110156119d057600560008683815181106119a257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611989565b506119dd60066000611ee9565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611a4457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a26575b5050505050905060608151604051908082528060200260200182016040528015611a78578160200160208202803683370190505b50905060005b8251811015611af7576000838281518110611a9557fe5b602002602001015190506000611acf60076000846001600160a01b03166001600160a01b031681526020019081526020016000205461135a565b905080848481518110611ade57fe5b6020908102919091010152949094019350600101611a7e565b506000611b1560045461164f60035488611d5290919063ffffffff16565b9050611b27858263ffffffff6116c216565b94508460015b8451811015611bb1576000611b4c8761164f8a88868151811061187657fe5b9050611b6281600d60008986815181106118a257fe5b600d6000888581518110611b7257fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611ba6838263ffffffff6116c216565b925050600101611b2d565b50611bc781600d6000876000815181106118a257fe5b600d600086600081518110611bd857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611c595760076000868381518110611c2b57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611c12565b506119dd60086000611ee9565b6000816040516020018082805190602001908083835b60208310611c9b5780518252601f199092019160209182019101611c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d095780518252601f199092019160209182019101611cea565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611d615750600061165b565b82820282848281611d6e57fe5b04146116bb5760405162461bcd60e51b81526004018080602001828103825260218152602001806120666021913960400191505060405180910390fd5b60006116bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e84565b60008184841115611e7c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611e41578181015183820152602001611e29565b50505050905090810190601f168015611e6e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183611ed35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611e41578181015183820152602001611e29565b506000838581611edf57fe5b0495945050505050565b50805460008255906000526020600020908101906115ff91906119e591905b80821115611f1c5760008155600101611f08565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220b0f586134d92421afeb7764dfa9711bf04e0920aa1729c40e9183ccccafbb49d64736f6c63430006040033", + Code: niels.ChapelRelayerIncentivizeContract, }, { ContractAddr: common.HexToAddress(RelayerHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106101c25760003560e01c806395468d26116100f7578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610529578063fb7cfdd71461053e578063fc3e590814610553578063fd6a687914610568576101c2565b8063c81b1662146104d5578063dc927faf146104ea578063e1c7392a146104ff578063e79a198f14610514576101c2565b8063a1a11bf5116100d1578063a1a11bf5146103c7578063a78abc16146103dc578063ab51bb96146103f1578063ac43175114610406576101c2565b806395468d261461038857806396713da91461039d5780639dc09262146103b2576101c2565b8063541d55481161016457806370fd5bad1161013e57806370fd5bad1461033457806375d47a0a146103495780637942fd051461035e5780637ae2308814610373576101c2565b8063541d5548146102b15780636a87d780146102f85780636e47b4821461031f576101c2565b806343756e5c116101a057806343756e5c1461022a578063493279b11461025b5780634bf6c8821461028757806351e806721461029c576101c2565b80630bee7a67146101c75780631aa3a008146101f55780633dffc387146101ff575b600080fd5b3480156101d357600080fd5b506101dc61057d565b6040805163ffffffff9092168252519081900360200190f35b6101fd610582565b005b34801561020b57600080fd5b5061021461077d565b6040805160ff9092168252519081900360200190f35b34801561023657600080fd5b5061023f610782565b604080516001600160a01b039092168252519081900360200190f35b34801561026757600080fd5b50610270610788565b6040805161ffff9092168252519081900360200190f35b34801561029357600080fd5b5061021461078d565b3480156102a857600080fd5b5061023f610792565b3480156102bd57600080fd5b506102e4600480360360208110156102d457600080fd5b50356001600160a01b0316610798565b604080519115158252519081900360200190f35b34801561030457600080fd5b5061030d6107b6565b60408051918252519081900360200190f35b34801561032b57600080fd5b5061023f6107bc565b34801561034057600080fd5b506102146107c2565b34801561035557600080fd5b5061023f6107c7565b34801561036a57600080fd5b506102146107cd565b34801561037f57600080fd5b5061030d6107d2565b34801561039457600080fd5b5061030d6107df565b3480156103a957600080fd5b506102146107eb565b3480156103be57600080fd5b5061023f6107f0565b3480156103d357600080fd5b5061023f6107f6565b3480156103e857600080fd5b506102e46107fc565b3480156103fd57600080fd5b506101dc610805565b34801561041257600080fd5b506101fd6004803603604081101561042957600080fd5b81019060208101813564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91939092909160208101903564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b50909250905061080a565b3480156104e157600080fd5b5061023f610c2c565b3480156104f657600080fd5b5061023f610c32565b34801561050b57600080fd5b506101fd610c38565b34801561052057600080fd5b506101fd610cba565b34801561053557600080fd5b5061023f610e73565b34801561054a57600080fd5b5061030d610e79565b34801561055f57600080fd5b50610214610e7f565b34801561057457600080fd5b5061023f610e84565b606481565b3360009081526004602052604090205460ff16156105df576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610632576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61063b33610e8a565b156106775760405162461bcd60e51b815260040180806020018281038252602781526020018061109c6027913960400191505060405180910390fd5b3332146106c1576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b60015434146107015760405162461bcd60e51b81526004018080602001828103825260258152602001806110776025913960400191505060405180910390fd5b604080518082018252600180548252600254602080840191825233600081815260038352868120955186559251948401949094556004815290849020805460ff1916909217909155825191825291517fdb33a09d38b59a8fa8b7d92a1d82c8015e99f05f67ae9c9ae623157767959496929181900390910190a1565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661085d576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461089d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806110c3602e913960400191505060405180910390fd5b61090384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e909050565b15610a0657602081146109475760405162461bcd60e51b81526004018080602001828103825260228152602001806110f16022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161098591858580838501838280828437600092019190915250610f7792505050565b90506001811180156109a05750683635c9adc5dea000008111155b80156109ad575060025481115b6109fe576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b9a565b610a6184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e909050565b15610b5d5760208114610abb576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610af991858580838501838280828437600092019190915250610f7792505050565b9050600081118015610b0c575060015481105b610b55576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b9a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c90576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610d15576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d68576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d7061105c565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610db4919063ffffffff610f7c16565b6040518115909202916000818181858888f19350505050158015610ddc573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610e12573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610ec55780518252601f199092019160209182019101610ea6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f335780518252601f199092019160209182019101610f14565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610fbe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b9392505050565b600081848411156110545760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611019578181015183820152602001611001565b50505050905090810190601f1680156110465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe6465706f7369742076616c7565206973206e6f742065786163746c79207468652073616d65636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a26469706673582212205b3719dbe352a0da1c7c0fda084d877d745e453695a354811ae82144145a56ae64736f6c63430006040033", + Code: niels.ChapelRelayerHubContract, }, { ContractAddr: common.HexToAddress(GovHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b506004361061018e5760003560e01c8063831d65d1116100de578063ab51bb9611610097578063dc927faf11610071578063dc927faf14610486578063f9a2bbc71461048e578063fc3e590814610496578063fd6a68791461049e5761018e565b8063ab51bb96146103fc578063c81b166214610404578063c8509d811461040c5761018e565b8063831d65d11461034457806396713da9146103c05780639ab1a373146103c85780639dc09262146103d0578063a1a11bf5146103d8578063a78abc16146103e05761018e565b8063493279b11161014b5780636e47b482116101255780636e47b4821461032457806370fd5bad1461032c57806375d47a0a146103345780637942fd051461033c5761018e565b8063493279b1146102f55780634bf6c8821461031457806351e806721461031c5761018e565b80630bee7a67146101935780631182b875146101b45780633a21baae146102a35780633dffc387146102ab57806343756e5c146102c95780634900c4ea146102ed575b600080fd5b61019b6104a6565b6040805163ffffffff9092168252519081900360200190f35b61022e600480360360408110156101ca57600080fd5b60ff82351691908101906040810160208201356401000000008111156101ef57600080fd5b82018360208201111561020157600080fd5b8035906020019184600183028401116401000000008311171561022357600080fd5b5090925090506104ab565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610268578181015183820152602001610250565b50505050905090810190601f1680156102955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019b61059a565b6102b361059f565b6040805160ff9092168252519081900360200190f35b6102d16105a4565b604080516001600160a01b039092168252519081900360200190f35b6102b36105aa565b6102fd6105af565b6040805161ffff9092168252519081900360200190f35b6102b36105b4565b6102d16105b9565b6102d16105bf565b6102b36105c5565b6102d16105ca565b6102b36105d0565b6103be6004803603604081101561035a57600080fd5b60ff823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b5090925090506105d5565b005b6102b3610667565b61019b61066c565b6102d1610671565b6102d1610677565b6103e861067d565b604080519115158252519081900360200190f35b61019b6105aa565b6102d1610686565b6103be6004803603604081101561042257600080fd5b60ff823516919081019060408101602082013564010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b50909250905061068c565b6102d1610703565b6102d1610709565b6102b361070f565b6102d1610714565b606481565b606033612000146104ed5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6104f5611382565b600061053685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061071a92505050565b91509150806105525761054960646107e0565b92505050610593565b600061055d8361084a565b905063ffffffff811661058457505060408051600081526020810190915291506105939050565b61058d816107e0565b93505050505b9392505050565b606681565b600181565b61100181565b600081565b606181565b600881565b61200081565b61100581565b600281565b61100881565b600b81565b33612000146106155760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61100281565b33612000146106cc5760405162461bcd60e51b815260040180806020018281038252602f8152602001806113e7602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806114166023913960400191505060405180910390fd5b61100381565b61100081565b600381565b61100481565b610722611382565b600061072c611382565b6107346113ac565b61074561074086610beb565b610c10565b90506000805b61075483610c5a565b156107d357806107765761076f61076a84610c7b565b610cc9565b84526107cb565b80600114156107955761078b61076a84610c7b565b60208501526107cb565b80600214156107c6576107af6107aa84610c7b565b610d42565b6001600160a01b03166040850152600191506107cb565b6107d3565b60010161074b565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816107fa5790505090506108208363ffffffff16610d62565b8160008151811061082d57fe5b602002602001018190525061084181610d75565b9150505b919050565b60006108598260400151610dff565b6108c557604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610845565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561093257818101518382015260200161091a565b50505050905090810190601f16801561095f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561099257818101518382015260200161097a565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156109e057600080fd5b505af19250505080156109f1575060015b610be3576040516000815260443d1015610a0d57506000610aaa565b60046000803e60005160e01c6308c379a08114610a2e576000915050610aaa565b60043d036004833e81513d602482011167ffffffffffffffff82111715610a5a57600092505050610aaa565b808301805167ffffffffffffffff811115610a7c576000945050505050610aaa565b8060208301013d8601811115610a9a57600095505050505050610aaa565b601f01601f191660405250925050505b80610ab55750610b58565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b14578181015183820152602001610afc565b50505050905090810190601f168015610b415780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610845565b3d808015610b82576040519150601f19603f3d011682016040523d82523d6000602084013e610b87565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610b14578181015183820152602001610afc565b506000919050565b610bf36113cc565b506040805180820190915281518152602082810190820152919050565b610c186113ac565b610c2182610e05565b610c2a57600080fd5b6000610c398360200151610e3f565b60208085015160408051808201909152868152920190820152915050919050565b6000610c646113cc565b505080518051602091820151919092015191011190565b610c836113cc565b610c8c82610c5a565b610c9557600080fd5b60208201516000610ca582610ea2565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610cd757600080fd5b6000610ce68360200151610e3f565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610d1d576020820181803683370190505b5090506000816020019050610d39848760200151018285610fd5565b50949350505050565b8051600090601514610d5357600080fd5b610d5c82611020565b92915050565b6060610d5c610d70836110d5565b6111bb565b6060815160001415610d965750604080516000815260208101909152610845565b606082600081518110610da557fe5b602002602001015190506000600190505b8351811015610de657610ddc82858381518110610dcf57fe5b602002602001015161120d565b9150600101610db6565b50610841610df9825160c060ff1661128a565b8261120d565b3b151590565b8051600090610e1657506000610845565b6020820151805160001a9060c0821015610e3557600092505050610845565b5060019392505050565b8051600090811a6080811015610e59576000915050610845565b60b8811080610e74575060c08110801590610e74575060f881105b15610e83576001915050610845565b60c0811015610e975760b519019050610845565b60f519019050610845565b80516000908190811a6080811015610ebd5760019150610fce565b60b8811015610ed257607e1981019150610fce565b60c0811015610f4c57600060b78203600186019550806020036101000a865104915060018101820193505080831015610f46576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50610fce565b60f8811015610f615760be1981019150610fce565b600060f78203600186019550806020036101000a865104915060018101820193505080831015610fcc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80610fdf57610662565b5b60208110610fff578251825260209283019290910190601f1901610fe0565b915181516020939093036101000a6000190180199091169216919091179052565b80516000901580159061103557508151602110155b61103e57600080fd5b600061104d8360200151610e3f565b905080836000015110156110a8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610d3957506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166111195750601861113d565b6fffffffffffffffffffffffffffffffff1984166111395750601061113d565b5060005b60208110156111735781818151811061115257fe5b01602001516001600160f81b0319161561116b57611173565b60010161113d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156111a8576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156111ed5750607f60f81b826000815181106111db57fe5b01602001516001600160f81b03191611155b156111f9575080610845565b610d5c61120b8351608060ff1661128a565b835b6060806040519050835180825260208201818101602087015b8183101561123e578051835260209283019201611226565b50855184518101855292509050808201602086015b8183101561126b578051835260209283019201611253565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106112da576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116113345782840160f81b8160008151811061131657fe5b60200101906001600160f81b031916908160001a9053509050610d5c565b606061133f856110d5565b90508381510160370160f81b8260008151811061135857fe5b60200101906001600160f81b031916908160001a905350611379828261120d565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b60405180604001604052806113bf6113cc565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a2646970667358221220401be81505a1aa0dde70753881234490b5e4c39ce009cb7950f994eead5c3f9064736f6c63430006040033", + Code: niels.ChapelGovHubContract, }, { ContractAddr: common.HexToAddress(TokenManagerContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "6080604052600436106102465760003560e01c806375d47a0a11610139578063ab51bb96116100b6578063dc6f5e901161007a578063dc6f5e90146108df578063dc927faf14610975578063f9a2bbc71461098a578063fc3e5908146108df578063fd6a68791461099f578063fe3a2af5146104fd57610246565b8063ab51bb96146108b5578063c81b1662146108ca578063c8509d81146107c5578063c8e704a4146108df578063d117a110146108f457610246565b806395b9ad26116100fd57806395b9ad261461084c57806396713da9146108615780639dc0926214610876578063a1a11bf51461088b578063a78abc16146108a057610246565b806375d47a0a146106e757806377d9dae8146106fc5780637942fd05146107b05780637d078e13146103c8578063831d65d1146107c557610246565b80634a688818116101c75780635f558f861161018b5780635f558f86146105515780636b3f1307146105665780636e47b4821461062e57806370fd5bad1461055157806372c4e0861461064357610246565b80634a688818146104fd5780634bc81c00146105125780634bf6c8821461024b57806351e80672146105275780635d499b1b1461053c57610246565b806323996b531161020e57806323996b53146103c85780633dffc387146103c857806343756e5c146103dd578063445fcefe1461040e578063493279b1146104d157610246565b8063077b8f351461024b5780630bee7a67146102765780630f212b1b146102a45780631182b875146102b95780631f91600b146103b3575b600080fd5b34801561025757600080fd5b506102606109b4565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b5061028b6109b9565b6040805163ffffffff9092168252519081900360200190f35b3480156102b057600080fd5b506102606109be565b3480156102c557600080fd5b5061033e600480360360408110156102dc57600080fd5b60ff8235169190810190604081016020820135600160201b81111561030057600080fd5b82018360208201111561031257600080fd5b803590602001918460018302840111600160201b8311171561033357600080fd5b5090925090506109c3565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610378578181015183820152602001610360565b50505050905090810190601f1680156103a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103bf57600080fd5b50610260610a4c565b3480156103d457600080fd5b50610260610a51565b3480156103e957600080fd5b506103f2610a56565b604080516001600160a01b039092168252519081900360200190f35b34801561041a57600080fd5b506104bf6004803603602081101561043157600080fd5b810190602081018135600160201b81111561044b57600080fd5b82018360208201111561045d57600080fd5b803590602001918460018302840111600160201b8311171561047e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a5c945050505050565b60408051918252519081900360200190f35b3480156104dd57600080fd5b506104e6610bbb565b6040805161ffff9092168252519081900360200190f35b34801561050957600080fd5b50610260610bc0565b34801561051e57600080fd5b50610260610bc5565b34801561053357600080fd5b506103f2610bca565b34801561054857600080fd5b506104bf610bd0565b34801561055d57600080fd5b50610260610bd9565b61061a6004803603604081101561057c57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156105a657600080fd5b8201836020820111156105b857600080fd5b803590602001918460018302840111600160201b831117156105d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bde945050505050565b604080519115158252519081900360200190f35b34801561063a57600080fd5b506103f2611460565b61061a6004803603602081101561065957600080fd5b810190602081018135600160201b81111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460018302840111600160201b831117156106a657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611466945050505050565b3480156106f357600080fd5b506103f26118b4565b61061a6004803603604081101561071257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460018302840111600160201b8311171561076f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118ba945050505050565b3480156107bc57600080fd5b50610260611dc1565b3480156107d157600080fd5b5061084a600480360360408110156107e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561080c57600080fd5b82018360208201111561081e57600080fd5b803590602001918460018302840111600160201b8311171561083f57600080fd5b509092509050611dc6565b005b34801561085857600080fd5b50610260611e79565b34801561086d57600080fd5b50610260611e7e565b34801561088257600080fd5b506103f2611e83565b34801561089757600080fd5b506103f2611e89565b3480156108ac57600080fd5b5061061a611e8f565b3480156108c157600080fd5b5061028b610bc0565b3480156108d657600080fd5b506103f2611e98565b3480156108eb57600080fd5b50610260611e9e565b34801561090057600080fd5b5061091e6004803603602081101561091757600080fd5b5035611ea3565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a083015267ffffffffffffffff90921660c082015290519081900360e00190f35b34801561098157600080fd5b506103f2611efb565b34801561099657600080fd5b506103f2611f01565b3480156109ab57600080fd5b506103f2611f07565b600881565b606481565b600681565b60603361200014610a055760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b610a4483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f0d92505050565b949350505050565b600481565b600181565b61100181565b6020810151600090610a6c613168565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a082015261010090910467ffffffffffffffff1660c082015290610af457600092505050610bb6565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505160808301516060840151919250600091610b9d9163ffffffff61219e16565b9050610baf818363ffffffff61219e16565b9450505050505b919050565b606181565b600081565b600581565b61200081565b6402540be40081565b600281565b600080610bea836121e7565b9050610bf4613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152610cba576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b6000610cd78260800151836060015161219e90919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b031614610d2d5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d6020811015610d9a57600080fd5b50516001600160a01b031614610de15760405162461bcd60e51b815260040180806020018281038252602e815260200180613272602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b158015610e2d57600080fd5b505afa158015610e41573d6000803e3d6000fd5b505050506040513d6020811015610e5757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192508391610ee89184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50519063ffffffff6121ee16565b1015610f3b576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d6020811015610fa757600080fd5b50519050808210801590610fc057506402540be4008206155b610ffb5760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b6000611007868b612248565b905063ffffffff8116611206576001600160a01b038a166323b872dd33611004611037898963ffffffff61219e16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561109f57600080fd5b505af11580156110b3573d6000803e3d6000fd5b505050506040513d60208110156110c957600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111c55781810151838201526020016111ad565b50505050905090810190601f1680156111f25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a26112be565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561128257818101518382015260200161126a565b50505050905090810190601f1680156112af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556113186131a4565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611360573d6000803e3d6000fd5b5061200063f7a251d760016113748461269f565b611389886402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113e75781810151838201526020016113cf565b50505050905090810190601f1680156114145780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506001985050505050505050505b92915050565b61100581565b600080611472836121e7565b905061147c613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611542576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c0015167ffffffffffffffff16106115a4576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d602081101561161057600080fd5b5051905080821080159061162957506402540be4008206155b6116645760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556116be6131a4565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611701573d6000803e3d6000fd5b5061200063f7a251d760016117158461269f565b61172a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611788578181015183820152602001611770565b50505050905090810190601f1680156117b55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561186c578181015183820152602001611854565b50505050905090810190601f1680156118995780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806118c6836121e7565b90506118d0613168565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a084015261010090910467ffffffffffffffff1660c0830152611996576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146119ea5760405162461bcd60e51b815260040180806020018281038252604581526020018061322d6045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b50516001600160a01b031614611ab4576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703265206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015611af657600080fd5b505afa158015611b0a573d6000803e3d6000fd5b505050506040513d6020811015611b2057600080fd5b50519050808210801590611b3957506402540be4008206155b611b745760405162461bcd60e51b81526004018080602001828103825260378152602001806131f66037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611bce6131a4565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f19350505050158015611c11573d6000803e3d6000fd5b5061200063f7a251d76001611c258461269f565b611c3a876402540be40063ffffffff61272916565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611c98578181015183820152602001611c80565b50505050905090810190601f168015611cc55780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611d78578181015183820152602001611d60565b50505050905090810190601f168015611da55780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b3361200014611e065760405162461bcd60e51b815260040180806020018281038252602f8152602001806132a0602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b600781565b600981565b61100781565b61100681565b60005460ff1681565b61100281565b600381565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b0390931693919291811690610100900467ffffffffffffffff1687565b61100381565b61100081565b61100481565b6060611f17613168565b6000611f228461276b565b9150915080611f78576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff1661202c576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff00191661010067ffffffffffffffff90921691909102179055612183565b815160ff16600114156121365760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60208110156120af57600080fd5b505190506001600160a01b038116156121305760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050505b50612183565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b60006121e083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bd565b9392505050565b6020015190565b6000828201838110156121e0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d60208110156122ae57600080fd5b5051604080516395d89b4160e01b815290519192506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b1580156122f657600080fd5b505afa15801561230a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561233357600080fd5b8101908080516040519392919084600160201b82111561235257600080fd5b90830190602082018581111561236757600080fd5b8251600160201b81118282018810171561238057600080fd5b82525081516020918201929091019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b15801561242a57600080fd5b505afa15801561243e573d6000803e3d6000fd5b505050506040513d602081101561245457600080fd5b5051608087015160608801519192506000916124759163ffffffff61219e16565b9050428760c0015167ffffffffffffffff16101561249b57506001935061145a92505050565b6124a9838860200151612954565b6124bb57506002935061145a92505050565b808211156124d157506003935061145a92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561251357600080fd5b505afa158015612527573d6000803e3d6000fd5b505050506040513d602081101561253d57600080fd5b50511461255257506004935061145a92505050565b8660a0015160ff16841461256e57506005935061145a92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b1580156125b357600080fd5b505afa1580156125c7573d6000803e3d6000fd5b505050506040513d60208110156125dd57600080fd5b50516001600160a01b031614158061267f57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561265057600080fd5b505afa158015612664573d6000803e3d6000fd5b505050506040513d602081101561267a57600080fd5b505114155b1561269257506006935061145a92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816126b857505083519091506126e09063ffffffff16612a3c565b816000815181106126ed57fe5b6020026020010181905250612708836020015160001c612a3c565b8160018151811061271557fe5b60200260200101819052506121e081612a4f565b60006121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad9565b612773613168565b600061277d613168565b6127856131bb565b61279661279186612b3e565b612b63565b90506000805b6127a583612bad565b156128b057806127ca576127c06127bb84612bce565b612c1c565b60ff1684526128a8565b80600114156127e9576127df6127bb84612bce565b60208501526128a8565b8060021415612816576128036127fe84612bce565b612cd1565b6001600160a01b031660408501526128a8565b80600314156128355761282b6127bb84612bce565b60608501526128a8565b80600414156128545761284a6127bb84612bce565b60808501526128a8565b8060051415612876576128696127bb84612bce565b60ff1660a08501526128a8565b80600614156128a35761288b6127bb84612bce565b67ffffffffffffffff1660c0850152600191506128a8565b6128b0565b60010161279c565b5091935090915050915091565b6000818484111561294c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129115781810151838201526020016128f9565b50505050905090810190601f16801561293e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b815160009083906008108061296a575080516003115b1561297957600091505061145a565b604080516020808252818301909252606091602082018180368337019050509050836020820152808251815181106129ad57fe5b6020910101516001600160f81b031916602d60f81b146129d25760009250505061145a565b600160005b8351811015612a32578281815181106129ec57fe5b602001015160f81c60f81b6001600160f81b031916848281518110612a0d57fe5b01602001516001600160f81b03191614612a2a5760009150612a32565b6001016129d7565b5095945050505050565b606061145a612a4a83612ceb565b612dd1565b6060815160001415612a705750604080516000815260208101909152610bb6565b606082600081518110612a7f57fe5b602002602001015190506000600190505b8351811015612ac057612ab682858381518110612aa957fe5b6020026020010151612e23565b9150600101612a90565b506121e0612ad3825160c060ff16612ea0565b82612e23565b60008183612b285760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129115781810151838201526020016128f9565b506000838581612b3457fe5b0495945050505050565b612b466131db565b506040805180820190915281518152602082810190820152919050565b612b6b6131bb565b612b7482612f98565b612b7d57600080fd5b6000612b8c8360200151612fd2565b60208085015160408051808201909152868152920190820152915050919050565b6000612bb76131db565b505080518051602091820151919092015191011190565b612bd66131db565b612bdf82612bad565b612be857600080fd5b60208201516000612bf882613035565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612c3157508151602110155b612c3a57600080fd5b6000612c498360200151612fd2565b90508083600001511015612ca4576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561219557506020919091036101000a90049392505050565b8051600090601514612ce257600080fd5b61145a82612c1c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612d2f57506018612d53565b6fffffffffffffffffffffffffffffffff198416612d4f57506010612d53565b5060005b6020811015612d8957818181518110612d6857fe5b01602001516001600160f81b03191615612d8157612d89565b600101612d53565b60008160200390506060816040519080825280601f01601f191660200182016040528015612dbe576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015612e035750607f60f81b82600081518110612df157fe5b01602001516001600160f81b03191611155b15612e0f575080610bb6565b61145a612e218351608060ff16612ea0565b835b6060806040519050835180825260208201818101602087015b81831015612e54578051835260209283019201612e3c565b50855184518101855292509050808201602086015b81831015612e81578051835260209283019201612e69565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612ef0576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411612f4a5782840160f81b81600081518110612f2c57fe5b60200101906001600160f81b031916908160001a905350905061145a565b6060612f5585612ceb565b90508381510160370160f81b82600081518110612f6e57fe5b60200101906001600160f81b031916908160001a905350612f8f8282612e23565b95945050505050565b8051600090612fa957506000610bb6565b6020820151805160001a9060c0821015612fc857600092505050610bb6565b5060019392505050565b8051600090811a6080811015612fec576000915050610bb6565b60b8811080613007575060c08110801590613007575060f881105b15613016576001915050610bb6565b60c081101561302a5760b519019050610bb6565b60f519019050610bb6565b80516000908190811a60808110156130505760019150613161565b60b881101561306557607e1981019150613161565b60c08110156130df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156130d9576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613161565b60f88110156130f45760be1981019150613161565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561315f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b60405180604001604052806131ce6131db565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe72656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e6420726571756573746f6e6c79206265703265206f776e65722063616e20617070726f766520746869732062696e642072657175657374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220914ada54d09b696ad62036cb65a565d2a3c3d1be8ef0e6805b9a955ec5783d0864736f6c63430006040033", + Code: niels.ChapelTokenManagerContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/823b953232a344ba3c32d6690e70a245477e5760", - Code: "608060405234801561001057600080fd5b50600436106102485760003560e01c8063863fe4ab1161013b578063c81b1662116100b8578063e3b048051161007c578063e3b048051461072c578063f7a251d71461074c578063f9a2bbc7146107c4578063fc3e5908146107cc578063fd6a6879146107d457610248565b8063c81b1662146106dd578063d31f968d146106e5578063d76a867514610714578063dc927faf1461071c578063e1c7392a1461072457610248565b8063a78abc16116100ff578063a78abc16146105d3578063ab51bb96146105db578063ac431751146105e3578063b0355f5b146103ff578063c27cdcfb146106a157610248565b8063863fe4ab146105b35780638cc8f561146104b657806396713da9146105bb5780639dc09262146105c3578063a1a11bf5146105cb57610248565b8063493279b1116101c957806370fd5bad1161018d57806370fd5bad146104b657806374f079b8146104be57806375d47a0a146104c65780637942fd05146104ce57806384013b6a146104d657610248565b8063493279b11461045f5780634bf6c8821461047e57806351e80672146104865780636e47a51a1461048e5780636e47b482146104ae57610248565b8063308325f411610210578063308325f4146102cf5780633bdc47a6146102d75780633dffc387146103ff578063422f90501461040757806343756e5c1461043b57610248565b806305e682581461024d5780630bee7a671461026b57806314b3023b1461028c57806322556cdc146102a65780632ff32aea146102ae575b600080fd5b6102556107dc565b6040805160ff9092168252519081900360200190f35b6102736107e1565b6040805163ffffffff9092168252519081900360200190f35b6102946107e6565b60408051918252519081900360200190f35b6102946107ec565b6102b66107f1565b60408051600792830b90920b8252519081900360200190f35b6102946107fa565b61038a600480360360608110156102ed57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561031657600080fd5b82018360208201111561032857600080fd5b803590602001918460018302840111600160201b8311171561034957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610800945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103c45781810151838201526020016103ac565b50505050905090810190601f1680156103f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610255610876565b6104276004803603602081101561041d57600080fd5b503560ff1661087b565b604080519115158252519081900360200190f35b610443610890565b604080516001600160a01b039092168252519081900360200190f35b610467610896565b6040805161ffff9092168252519081900360200190f35b61025561089b565b6104436108a0565b610443600480360360208110156104a457600080fd5b503560ff166108a6565b6104436108c1565b6102556108c7565b6102946108cc565b6104436108d2565b6102556108d8565b6105b1600480360360a08110156104ec57600080fd5b810190602081018135600160201b81111561050657600080fd5b82018360208201111561051857600080fd5b803590602001918460018302840111600160201b8311171561053957600080fd5b919390929091602081019035600160201b81111561055657600080fd5b82018360208201111561056857600080fd5b803590602001918460018302840111600160201b8311171561058957600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166108dd565b005b610294611a8d565b610255611a95565b610443611a9a565b610443611aa0565b610427611aa6565b6102736107dc565b6105b1600480360360408110156105f957600080fd5b810190602081018135600160201b81111561061357600080fd5b82018360208201111561062557600080fd5b803590602001918460018302840111600160201b8311171561064657600080fd5b919390929091602081019035600160201b81111561066357600080fd5b82018360208201111561067557600080fd5b803590602001918460018302840111600160201b8311171561069657600080fd5b509092509050611aaf565b6106c1600480360360208110156106b757600080fd5b503560ff16612051565b604080516001600160401b039092168252519081900360200190f35b61044361206c565b610427600480360360408110156106fb57600080fd5b5080356001600160a01b0316906020013560ff16612072565b61038a612092565b6104436120b1565b6105b16120b7565b6106c16004803603602081101561074257600080fd5b503560ff1661246e565b6105b16004803603606081101561076257600080fd5b60ff8235169190810190604081016020820135600160201b81111561078657600080fd5b82018360208201111561079857600080fd5b803590602001918460018302840111600160201b831117156107b957600080fd5b919350915035612489565b6104436125da565b6102556125e0565b6104436125e5565b600081565b606481565b60015481565b603281565b60045460070b81565b60025481565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015610838576020820181803683370190505b506021810186905260018101879052828152905060418101600061085b866125eb565b50905061086a818388516125f5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b60035481565b61100881565b600b81565b60005460ff16610930576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561096f57600080fd5b505afa158015610983573d6000803e3d6000fd5b505050506040513d602081101561099957600080fd5b50516109ec576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610a5c576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610ad157600080fd5b505afa158015610ae5573d6000803e3d6000fd5b505050506040513d6020811015610afb57600080fd5b5051610b385760405162461bcd60e51b8152600401808060200182810382526023815260200180612bcc6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610ba7576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60608c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805163cba510a960e01b81526001600160401b038f1660048201529051939450610cce93611003935063cba510a992506024808301926020929190829003018186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505160408051808201909152600381526269626360e81b6020820152610cc78c8c612636565b858561267d565b610d16576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038c16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610d6257600080fd5b505afa158015610d76573d6000803e3d6000fd5b505050506040513d6020811015610d8c57600080fd5b5051905088600080806060610da08861277a565b935093509350935083610e61578460ff168f6001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8a6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e1a578181015183820152602001610e02565b50505050905090810190601f168015610e475780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050611a7f565b8460ff168f6001600160401b03167f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad4085604051808260ff1660ff16815260200191505060405180910390a360ff83166113ea5760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015610f32578181015183820152602001610f1a565b50505050905090810190601f168015610f5f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015610f7f57600080fd5b505af192505050801561106357506040513d6000823e601f3d908101601f191682016040526020811015610fb257600080fd5b8101908080516040519392919084600160201b821115610fd157600080fd5b908301906020820185811115610fe657600080fd5b8251600160201b811182820188101715610fff57600080fd5b82525081516020918201929091019080838360005b8381101561102c578181015183820152602001611014565b50505050905090810190601f1680156110595780820380516001836020036101000a031916815260200191505b5060405250505060015b611375576040516000815260443d101561107f5750600061111a565b60046000803e60005160e01c6308c379a081146110a057600091505061111a565b60043d036004833e81513d60248201116001600160401b03821117156110cb5760009250505061111a565b80830180516001600160401b038111156110ec57600094505050505061111a565b8060208301013d860181111561110a5760009550505050505061111a565b601f01601f191660405250925050505b806111255750611237565b60ff871660009081526007602052604081205461115c916001600160401b039091169089906111579060029088610800565b61282a565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156111f75781810151838201526020016111df565b50505050905090810190601f1680156112245780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611370565b3d808015611261576040519150601f19603f3d011682016040523d82523d6000602084013e611266565b606091505b5060ff8716600090815260076020526040812054611299916001600160401b039091169089906111579060029088610800565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561133457818101518382015260200161131c565b50505050905090810190601f1680156113615780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6113e4565b8051156113e25760ff87166000908152600760205260408120546113ae916001600160401b039091169089906111579060019086610800565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506119b8565b60ff83166001141561168e5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561147457818101518382015260200161145c565b50505050905090810190601f1680156114a15780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114c157600080fd5b505af19250505080156114d2575060015b6113e4576040516000815260443d10156114ee57506000611589565b60046000803e60005160e01c6308c379a0811461150f576000915050611589565b60043d036004833e81513d60248201116001600160401b038211171561153a57600092505050611589565b80830180516001600160401b0381111561155b576000945050505050611589565b8060208301013d860181111561157957600095505050505050611589565b601f01601f191660405250925050505b8061159457506115f9565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156111f75781810151838201526020016111df565b3d808015611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561133457818101518382015260200161131c565b60ff8316600214156119b85760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b83811015611718578181015183820152602001611700565b50505050905090810190601f1680156117455780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561176557600080fd5b505af1925050508015611776575060015b6119b6576040516000815260443d10156117925750600061182d565b60046000803e60005160e01c6308c379a081146117b357600091505061182d565b60043d036004833e81513d60248201116001600160401b03821117156117de5760009250505061182d565b80830180516001600160401b038111156117ff57600094505050505061182d565b8060208301013d860181111561181d5760009550505050505061182d565b601f01601f191660405250925050505b8061183857506118e1565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156118a1578181015183820152602001611889565b50505050905090810190601f1680156118ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506119b6565b3d80801561190b576040519150601f19603f3d011682016040523d82523d6000602084013e611910565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561197a578181015183820152602001611962565b50505050905090810190601f1680156119a75780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e69189913391879116806119ea575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b505050506040513d6020811015611a7457600080fd5b505050505050505050505b505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611aef5760405162461bcd60e51b815260040180806020018281038252602e815260200180612b22602e913960400191505060405180910390fd5b611b5884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506129809050565b15611bf357604080516020601f8401819004810282018101909252828152600091611b9b91858580838501838280828437600092019190915250612a6792505050565b90506127108111158015611bb05750600a8110155b611beb5760405162461bcd60e51b8152600401808060200182810382526032815260200180612b9a6032913960400191505060405180910390fd5b600155611fbf565b611c5c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506129809050565b15611de457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611cdf5760405162461bcd60e51b815260040180806020018281038252605a815260200180612ac8605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611cfd81612a6c565b611d4e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a35050505050611fbf565b611e5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506129809050565b15611f8257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050611ed45760405162461bcd60e51b815260040180806020018281038252604a815260200180612b50604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015611f78576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b5050505050611fbf565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff161561210f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff166124dc576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166125395760405162461bcd60e51b8152600401808060200182810382526031815260200180612a976031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261259e9284928a9261115792909189918c908c908190840183828082843760009201919091525061080092505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b60208110612615578251825260209283019290910190601f19016125f6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561268c57506000612771565b606082518451865160800101016040519080825280601f01601f1916602001820160405280156126c3576020820181803683370190505b50905060006126d182612a72565b6020808901518252019050866000806126e9896125eb565b80865260209095019490925090506127028285836125f5565b9283019261270f886125eb565b80865260209095019490925090506127288285836125f5565b9283018a81526020019261273b876125eb565b909250905061274b8285836125f5565b508351602001612759612a78565b60208183886065600019fa5051600114955050505050505b95945050505050565b600080600060606021855110156127aa575050604080516000808252602082019092529092508291508190612823565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156127f5576020820181803683370190505b5090506000612803826125eb565b509050612815858260218d51036125f5565b506001975091955093509150505b9193509193565b600254431115612869576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556128aa565b600380546001908101918290555410156128aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612940578181015183820152602001612928565b50505050905090810190601f16801561296d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106129b55780518252601f199092019160209182019101612996565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a26469706673582212207ab71aabd28c992023fb9ff6fe581825d14cb96a7bc39321484311e85804154864736f6c63430006040033", + Code: niels.ChapelCrossChainContract, }, }, } @@ -187,17 +201,17 @@ func init() { { ContractAddr: common.HexToAddress(TokenManagerContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106103815760003560e01c80637d078e13116101d1578063b795031711610102578063d9e6dae9116100a0578063fa9e91591161006f578063fa9e915914610d38578063fc3e5908146105b2578063fd6a687914610d4d578063fe3a2af514610d6257610381565b8063d9e6dae9146106fc578063dc927faf14610cf9578063e605bca014610d0e578063f9a2bbc714610d2357610381565b8063c8509d81116100dc578063c8509d8114610bdf578063c8e704a4146105b2578063d117a11014610c64578063d7109ce614610ce457610381565b8063b79503171461073b578063bd32d3f9146104d9578063c81b166214610bca57610381565b80639a854bbd1161016f578063a78abc1611610149578063a78abc1614610ad5578063ab51bb9614610aea578063ab67a4851461073b578063ac43175114610aff57610381565b80639a854bbd14610a965780639dc0926214610aab578063a1a11bf514610ac057610381565b8063859180fb116101ab578063859180fb146106e757806394553a4e14610a3757806395b9ad2614610a6c57806396713da914610a8157610381565b80637d078e13146104ee5780637ec816dd1461099b578063831d65d1146109b057610381565b8063493279b1116102b657806366dea52a1161025457806372c4e0861161022357806372c4e0861461081957806375d47a0a146108bd57806377d9dae8146108d25780637942fd051461098657610381565b806366dea52a1461073b5780636b3f1307146107505780636e47b4821461080457806370fd5bad1461073b57610381565b806351e806721161029057806351e80672146107115780635d499b1b146107265780635f558f861461073b57806361368475146106fc57610381565b8063493279b1146106bb5780634bc81c00146106e75780634bf6c882146106fc57610381565b80632e02d77611610323578063401809f9116102fd578063401809f9146105b257806343756e5c146105c7578063445fcefe146105f8578063487c88ac146104ee57610381565b80632e02d7761461054c57806337e6ecda1461057f5780633dffc387146104ee57610381565b80631f91600b1161035f5780631f91600b146104d957806323996b53146104ee57806325c751b7146105035780632d89ac32146104ee57610381565b80630bee7a67146103865780630f212b1b146103b45780631182b875146103df575b600080fd5b34801561039257600080fd5b5061039b610d77565b6040805163ffffffff9092168252519081900360200190f35b3480156103c057600080fd5b506103c9610d7c565b6040805160ff9092168252519081900360200190f35b3480156103eb57600080fd5b506104646004803603604081101561040257600080fd5b60ff8235169190810190604081016020820135600160201b81111561042657600080fd5b82018360208201111561043857600080fd5b803590602001918460018302840111600160201b8311171561045957600080fd5b509092509050610d81565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049e578181015183820152602001610486565b50505050905090810190601f1680156104cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e557600080fd5b506103c9610e9b565b3480156104fa57600080fd5b506103c9610ea0565b6105386004803603604081101561051957600080fd5b5080356001600160a01b031690602001356001600160401b0316610ea5565b604080519115158252519081900360200190f35b34801561055857600080fd5b506105386004803603602081101561056f57600080fd5b50356001600160a01b03166113f1565b34801561058b57600080fd5b50610538600480360360208110156105a257600080fd5b50356001600160a01b0316611406565b3480156105be57600080fd5b506103c961141b565b3480156105d357600080fd5b506105dc611420565b604080516001600160a01b039092168252519081900360200190f35b34801561060457600080fd5b506106a96004803603602081101561061b57600080fd5b810190602081018135600160201b81111561063557600080fd5b82018360208201111561064757600080fd5b803590602001918460018302840111600160201b8311171561066857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611426945050505050565b60408051918252519081900360200190f35b3480156106c757600080fd5b506106d0611584565b6040805161ffff9092168252519081900360200190f35b3480156106f357600080fd5b506103c9611589565b34801561070857600080fd5b506103c961158e565b34801561071d57600080fd5b506105dc611593565b34801561073257600080fd5b506106a9611599565b34801561074757600080fd5b506103c96115a2565b6105386004803603604081101561076657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111600160201b831117156107c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a7945050505050565b34801561081057600080fd5b506105dc611e7d565b6105386004803603602081101561082f57600080fd5b810190602081018135600160201b81111561084957600080fd5b82018360208201111561085b57600080fd5b803590602001918460018302840111600160201b8311171561087c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e83945050505050565b3480156108c957600080fd5b506105dc6122cf565b610538600480360360408110156108e857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460018302840111600160201b8311171561094557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122d5945050505050565b34801561099257600080fd5b506103c96127db565b3480156109a757600080fd5b506106a96127e0565b3480156109bc57600080fd5b50610a35600480360360408110156109d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156109f757600080fd5b820183602082011115610a0957600080fd5b803590602001918460018302840111600160201b83111715610a2a57600080fd5b5090925090506127e6565b005b61053860048036036040811015610a4d57600080fd5b5080356001600160a01b031690602001356001600160401b0316612935565b348015610a7857600080fd5b506103c961332c565b348015610a8d57600080fd5b506103c9613331565b348015610aa257600080fd5b506106a9613336565b348015610ab757600080fd5b506105dc613342565b348015610acc57600080fd5b506105dc613348565b348015610ae157600080fd5b5061053861334e565b348015610af657600080fd5b5061039b613357565b348015610b0b57600080fd5b50610a3560048036036040811015610b2257600080fd5b810190602081018135600160201b811115610b3c57600080fd5b820183602082011115610b4e57600080fd5b803590602001918460018302840111600160201b83111715610b6f57600080fd5b919390929091602081019035600160201b811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b803590602001918460018302840111600160201b83111715610bbf57600080fd5b50909250905061335c565b348015610bd657600080fd5b506105dc613631565b348015610beb57600080fd5b50610a3560048036036040811015610c0257600080fd5b60ff8235169190810190604081016020820135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b509092509050613637565b348015610c7057600080fd5b50610c8e60048036036020811015610c8757600080fd5b503561370d565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a08301526001600160401b0390921660c082015290519081900360e00190f35b348015610cf057600080fd5b506106a9613764565b348015610d0557600080fd5b506105dc613769565b348015610d1a57600080fd5b506106a961376f565b348015610d2f57600080fd5b506105dc613775565b348015610d4457600080fd5b506106a961377b565b348015610d5957600080fd5b506105dc613781565b348015610d6e57600080fd5b506103c9613357565b606481565b600681565b60603361200014610dc35760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff841660011415610e1557610e0e83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378792505050565b9050610e94565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605848484604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1506040805160008152602081019091525b9392505050565b600481565b600181565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b5051905080610f5e576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205460ff16610fc1576040805162461bcd60e51b81526020600482015260136024820152723737ba103137bab73210313c9036b4b93937b960691b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffe57600080fd5b505afa158015611012573d6000803e3d6000fd5b505050506040513d602081101561102857600080fd5b505190506402540be4003406158015611053575060055461104f908263ffffffff613a1716565b3410155b61108e5760405162461bcd60e51b8152600401808060200182810382526046815260200180615b156046913960600191505060405180910390fd5b42607801846001600160401b0316101580156110b85750426201518001846001600160401b031611155b6110f35760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d602081101561115857600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0389169163313ce567916004808301926020929190829003018186803b1580156111a057600080fd5b505afa1580156111b4573d6000803e3d6000fd5b505050506040513d60208110156111ca57600080fd5b50519050677ce66c50e28400006111e48360ff8416613a71565b1115611230576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b600554611004906108fc9061124c90349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015611274573d6000803e3d6000fd5b5061127d615869565b6040518060c00160405280336001600160a01b03168152602001896001600160a01b031681526020018681526020018481526020016112cc6402540be400600554613b4290919063ffffffff16565b81526001600160401b038916602090910152905061200063f7a251d760056112f384613b84565b61131d6402540be40061131160055434613b0090919063ffffffff16565b9063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137b578181015183820152602001611363565b50505050905090810190601f1680156113a85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c957600080fd5b505af11580156113dd573d6000803e3d6000fd5b505050506001955050505050505b92915050565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b600381565b61100181565b602081015160009061143661589e565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a08201526101009091046001600160401b031660c0820152906114bd5760009250505061157f565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561151b57600080fd5b505afa15801561152f573d6000803e3d6000fd5b505050506040513d602081101561154557600080fd5b5051608083015160608401519192506000916115669163ffffffff613b0016565b9050611578818363ffffffff613b0016565b9450505050505b919050565b603881565b600581565b600881565b61200081565b6402540be40081565b600281565b6001600160a01b03821660009081526002602052604081205460ff16156115ff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615bb8602b913960400191505060405180910390fd5b600061160a83613cb9565b905061161461589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526116d9576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b60006116f682608001518360600151613b0090919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b03161461174c5760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d60208110156117b957600080fd5b50516001600160a01b0316146118005760405162461bcd60e51b815260040180806020018281038252602e8152602001806159e4602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d602081101561187657600080fd5b505160408051636eb1769f60e11b8152336004820152306024820152905191925083916119079184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d60208110156118f957600080fd5b50519063ffffffff613a1716565b101561195a576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561199c57600080fd5b505afa1580156119b0573d6000803e3d6000fd5b505050506040513d60208110156119c657600080fd5b505190508082108015906119df57506402540be4008206155b611a1a5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b6000611a26868b613cc0565b905063ffffffff8116611c25576001600160a01b038a166323b872dd33611004611a56898963ffffffff613b0016565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050506040513d6020811015611ae857600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611be4578181015183820152602001611bcc565b50505050905090810190601f168015611c115780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2611cdd565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611ca1578181015183820152602001611c89565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611d376158da565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611d7f573d6000803e3d6000fd5b5061200063f7a251d76001611d938461411a565b611da8886402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e06578181015183820152602001611dee565b50505050905090810190601f168015611e335780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b61100581565b600080611e8f83613cb9565b9050611e9961589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c0830152611f5e576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c001516001600160401b031610611fbf576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b5051905080821080159061204457506402540be4008206155b61207f5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556120d96158da565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561211c573d6000803e3d6000fd5b5061200063f7a251d760016121308461411a565b612145876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a357818101518382015260200161218b565b50505050905090810190601f1680156121d05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156121f157600080fd5b505af1158015612205573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561228757818101518382015260200161226f565b50505050905090810190601f1680156122b45780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806122e183613cb9565b90506122eb61589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526123b0576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146124045760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d602081101561247157600080fd5b50516001600160a01b0316146124ce576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703230206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b5051905080821080159061255357506402540be4008206155b61258e5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556125e86158da565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561262b573d6000803e3d6000fd5b5061200063f7a251d7600161263f8461411a565b612654876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156126b257818101518382015260200161269a565b50505050905090810190601f1680156126df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561270057600080fd5b505af1158015612714573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561279257818101518382015260200161277a565b50505050905090810190601f1680156127bf5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b60045481565b33612000146128265760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156128765761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061419092505050565b612930565b60ff8316600514156128c15761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061443d92505050565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b15801561298257600080fd5b505afa158015612996573d6000803e3d6000fd5b505050506040513d60208110156129ac57600080fd5b5051146129f0576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e48189bdd5b99609a1b604482015290519081900360640190fd5b6001600160a01b03831660009081526002602052604090205460ff1615612a4f576040805162461bcd60e51b815260206004820152600e60248201526d6d6972726f722070656e64696e6760901b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8c57600080fd5b505afa158015612aa0573d6000803e3d6000fd5b505050506040513d6020811015612ab657600080fd5b505190506402540be4003406158015612ae15750600454612add908263ffffffff613a1716565b3410155b612b1c5760405162461bcd60e51b815260040180806020018281038252604d815260200180615997604d913960600191505060405180910390fd5b42607801836001600160401b031610158015612b465750426201518001836001600160401b031611155b612b815760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612bbc57600080fd5b505afa158015612bd0573d6000803e3d6000fd5b505050506040513d6020811015612be657600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038816916318160ddd916004808301926020929190829003018186803b158015612c2e57600080fd5b505afa158015612c42573d6000803e3d6000fd5b505050506040513d6020811015612c5857600080fd5b50519050677ce66c50e2840000612c728260ff8516613a71565b1115612cbe576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b6060866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612cf957600080fd5b505afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612d3657600080fd5b8101908080516040519392919084600160201b821115612d5557600080fd5b908301906020820185811115612d6a57600080fd5b8251600160201b811182820188101715612d8357600080fd5b82525081516020918201929091019080838360005b83811015612db0578181015183820152602001612d98565b50505050905090810190601f168015612ddd5780820380516001836020036101000a031916815260200191505b50604052505050905060608190506001815110158015612dff57506020815111155b612e50576040805162461bcd60e51b815260206004820152601d60248201527f6e616d65206c656e677468206d75737420626520696e205b312c33325d000000604482015290519081900360640190fd5b6060886001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e8b57600080fd5b505afa158015612e9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ec857600080fd5b8101908080516040519392919084600160201b821115612ee757600080fd5b908301906020820185811115612efc57600080fd5b8251600160201b811182820188101715612f1557600080fd5b82525081516020918201929091019080838360005b83811015612f42578181015183820152602001612f2a565b50505050905090810190601f168015612f6f5780820380516001836020036101000a031916815260200191505b5060405250508151919250829160021180159150612f8f57508051600810155b612fe0576040805162461bcd60e51b815260206004820152601e60248201527f73796d626f6c206c656e677468206d75737420626520696e205b322c385d0000604482015290519081900360640190fd5b60005b81518160ff16101561313457604160f81b828260ff168151811061300357fe5b01602001516001600160f81b031916108015906130415750602d60f91b828260ff168151811061302f57fe5b01602001516001600160f81b03191611155b806130995750606160f81b828260ff168151811061305b57fe5b01602001516001600160f81b031916108015906130995750603d60f91b828260ff168151811061308757fe5b01602001516001600160f81b03191611155b806130f15750600360fc1b828260ff16815181106130b357fe5b01602001516001600160f81b031916108015906130f15750603960f81b828260ff16815181106130df57fe5b01602001516001600160f81b03191611155b61312c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615ac6602e913960400191505060405180910390fd5b600101612fe3565b50600454611004906108fc9061315190349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015613179573d6000803e3d6000fd5b506001600160a01b038a166000908152600260209081526040909120805460ff1916600117905584810151908301516131b06158f1565b604051806101000160405280336001600160a01b031681526020018e6001600160a01b031681526020018481526020018381526020018981526020018a60ff16815260200161320f6402540be400600454613b4290919063ffffffff16565b81526001600160401b038e16602090910152905061200063f7a251d7600461323684614608565b6132546402540be40061131160045434613b0090919063ffffffff16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156132b257818101518382015260200161329a565b50505050905090810190601f1680156132df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561330057600080fd5b505af1158015613314573d6000803e3d6000fd5b5050505060019a505050505050505050505092915050565b600781565b600981565b677ce66c50e284000081565b61100781565b61100681565b60005460ff1681565b600081565b336110071461339c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615b5b602e913960400191505060405180910390fd5b602081146133f1576040805162461bcd60e51b815260206004820152601860248201527f65787065637465642076616c7565206c656e6774682033320000000000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f880181900481028201810190925286815293945060609392508691508590819084018382808284376000920191909152505050506020830151909150686d6972726f7246656560b81b8114156134e65760208201516402540be4008106156134de576040805162461bcd60e51b815260206004820152601a60248201527f6d6972726f72466565206d757374206265204e202a2031653130000000000000604482015290519081900360640190fd5b60045561359c565b6673796e6346656560c81b81141561355f5760208201516402540be400810615613557576040805162461bcd60e51b815260206004820152601860248201527f73796e63466565206d757374206265204e202a20316531300000000000000000604482015290519081900360640190fd5b60055561359c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61100281565b33612000146136775760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156136c25761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061477a92505050565b60ff8316600514156128c15761287182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506148b992505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b039093169391929181169061010090046001600160401b031687565b604d81565b61100381565b60055481565b61100081565b61271081565b61100481565b606061379161589e565b600061379c846149b3565b91509150806137f2576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff166138a5576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff0019166101006001600160401b03909216919091021790556139fc565b815160ff16600114156139af5760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156138fe57600080fd5b505afa158015613912573d6000803e3d6000fd5b505050506040513d602081101561392857600080fd5b505190506001600160a01b038116156139a95760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561399057600080fd5b505af11580156139a4573d6000803e3d6000fd5b505050505b506139fc565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b600082820183811015610e94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006008821115613ae957604d60071983011115613acb576040805162461bcd60e51b8152602060048201526012602482015271746f6f206c6172676520646563696d616c7360701b604482015290519081900360640190fd5b613ae2836007198401600a0a63ffffffff613b4216565b90506113eb565b610e94836008849003600a0a63ffffffff614b0416565b6000610e9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614b5d565b6000610e9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614bf4565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613b9f5750508351909150613bca906001600160a01b0316614c59565b81600081518110613bd757fe5b6020026020010181905250613bf883602001516001600160a01b0316614c59565b81600181518110613c0557fe5b6020026020010181905250613c20836040015160001c614c7c565b81600281518110613c2d57fe5b6020026020010181905250613c458360600151614c7c565b81600381518110613c5257fe5b6020026020010181905250613c6a8360800151614c7c565b81600481518110613c7757fe5b6020026020010181905250613c988360a001516001600160401b0316614c7c565b81600581518110613ca557fe5b6020026020010181905250610e9481614c8f565b6020015190565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613cfc57600080fd5b505afa158015613d10573d6000803e3d6000fd5b505050506040513d6020811015613d2657600080fd5b5051604080516395d89b4160e01b8152905160ff90921692506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b158015613d7257600080fd5b505afa158015613d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613daf57600080fd5b8101908080516040519392919084600160201b821115613dce57600080fd5b908301906020820185811115613de357600080fd5b8251600160201b811182820188101715613dfc57600080fd5b82525081516020918201929091019080838360005b83811015613e29578181015183820152602001613e11565b50505050905090810190601f168015613e565780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b158015613ea657600080fd5b505afa158015613eba573d6000803e3d6000fd5b505050506040513d6020811015613ed057600080fd5b505160808701516060880151919250600091613ef19163ffffffff613b0016565b9050428760c001516001600160401b03161015613f165750600193506113eb92505050565b613f24838860200151614d19565b613f365750600293506113eb92505050565b80821115613f4c5750600393506113eb92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8e57600080fd5b505afa158015613fa2573d6000803e3d6000fd5b505050506040513d6020811015613fb857600080fd5b505114613fcd5750600493506113eb92505050565b8660a0015160ff168414613fe95750600593506113eb92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b15801561402e57600080fd5b505afa158015614042573d6000803e3d6000fd5b505050506040513d602081101561405857600080fd5b50516001600160a01b03161415806140fa57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156140cb57600080fd5b505afa1580156140df573d6000803e3d6000fd5b505050506040513d60208110156140f557600080fd5b505114155b1561410d5750600693506113eb92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081614133575050835190915061415b9063ffffffff16614c7c565b8160008151811061416857fe5b6020026020010181905250614183836020015160001c614c7c565b81600181518110613ca557fe5b614198615869565b60006141a383614e01565b91509150806141f0576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b03166000908152600290915260409020805460ff1916905560a082015160ff166143515760808201516040516110049180156108fc02916000818181858888f19350505050158015614253573d6000803e3d6000fd5b506110046001600160a01b0316638eff336c8360600151846020015185604001516040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018260ff1681526020019350505050600060405180830381600087803b1580156142cd57600080fd5b505af11580156142e1573d6000803e3d6000fd5b50505050602082810180516001600160a01b03908116600090815260038452604090819020805460ff1916600117905591516060860151835190815292519116927f41787d7db08fc5907641ee8343379f28215727eb123d4b462099afab4300b036928290030190a2505061443a565b815160808301516040516000926001600160a01b0316916127109184818181858888f193505050503d80600081146143a5576040519150601f19603f3d011682016040523d82523d6000602084013e6143aa565b606091505b50509050806143e75760808301516040516110029180156108fc02916000818181858888f193505050501580156143e5573d6000803e3d6000fd5b505b82602001516001600160a01b03167fefe400ad0042ebf81a245de9ae669616105e0ca9fc946352c085da0c2bc524e58460a00151604051808260ff1660ff16815260200191505060405180910390a25050505b50565b614445615935565b600061445083614f0e565b915091508061449d576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b606082015160ff1661451d5760408083015190516110049180156108fc02916000818181858888f193505050501580156144db573d6000803e3d6000fd5b5081602001516001600160a01b03167fbb7d3a9a559080d8281b0e4fb39dacbe2fdcafd5ef765e9a6ed871c9167dc60f60405160405180910390a2505061443a565b81602001516001600160a01b03167ff1e25fa536da84053644fd788b1d6a27ea6edd1f3af80c7d36ca253c4c82c9c38360600151604051808260ff1660ff16815260200191505060405180910390a2815160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d80600081146145c0576040519150601f19603f3d011682016040523d82523d6000602084013e6145c5565b606091505b50509050806146025760408084015190516110029180156108fc02916000818181858888f19350505050158015614600573d6000803e3d6000fd5b505b50505050565b6040805160088082526101208201909252606091829190816020015b6060815260200190600190039081614624575050835190915061464f906001600160a01b0316614c59565b8160008151811061465c57fe5b602002602001018190525061467d83602001516001600160a01b0316614c59565b8160018151811061468a57fe5b60200260200101819052506146a5836040015160001c614c7c565b816002815181106146b257fe5b60200260200101819052506146cd836060015160001c614c7c565b816003815181106146da57fe5b60200260200101819052506146f28360800151614c7c565b816004815181106146ff57fe5b602002602001018190525061471a8360a0015160ff16614c7c565b8160058151811061472757fe5b602002602001018190525061473f8360c00151614c7c565b8160068151811061474c57fe5b602002602001018190525061476d8360e001516001600160401b0316614c7c565b81600781518110613ca557fe5b6147826158f1565b600061478d83614fda565b91509150806147da576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b039081166000908152600290925260408220805460ff19169055835160c085015191169061271090614824906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614861576040519150601f19603f3d011682016040523d82523d6000602084013e614866565b606091505b50509050806146025760c0830151611002906108fc90614891906402540be40063ffffffff614b0416565b6040518115909202916000818181858888f19350505050158015614600573d6000803e3d6000fd5b6148c1615869565b60006148cc8361512b565b9150915080614919576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b815160808301516000916001600160a01b03169061271090614946906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614983576040519150601f19603f3d011682016040523d82523d6000602084013e614988565b606091505b5050905080614602576080830151611002906108fc90614891906402540be40063ffffffff614b0416565b6149bb61589e565b60006149c561589e565b6149cd61595c565b6149de6149d98661523b565b615260565b90506000805b6149ed836152aa565b15614af75780614a1257614a08614a03846152cb565b615319565b60ff168452614aef565b8060011415614a3157614a27614a03846152cb565b6020850152614aef565b8060021415614a5e57614a4b614a46846152cb565b6153ce565b6001600160a01b03166040850152614aef565b8060031415614a7d57614a73614a03846152cb565b6060850152614aef565b8060041415614a9c57614a92614a03846152cb565b6080850152614aef565b8060051415614abe57614ab1614a03846152cb565b60ff1660a0850152614aef565b8060061415614aea57614ad3614a03846152cb565b6001600160401b031660c085015260019150614aef565b614af7565b6001016149e4565b5091935090915050915091565b600082614b13575060006113eb565b82820282848281614b2057fe5b0414610e945760405162461bcd60e51b8152600401808060200182810382526021815260200180615af46021913960400191505060405180910390fd5b60008184841115614bec5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb1578181015183820152602001614b99565b50505050905090810190601f168015614bde5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614c435760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614bb1578181015183820152602001614b99565b506000838581614c4f57fe5b0495945050505050565b60408051600560a21b8318601482015260348101909152606090610e94816153e8565b60606113eb614c8a8361543e565b6153e8565b6060815160001415614cb0575060408051600081526020810190915261157f565b606082600081518110614cbf57fe5b602002602001015190506000600190505b8351811015614d0057614cf682858381518110614ce957fe5b6020026020010151615524565b9150600101614cd0565b50610e94614d13825160c060ff166155a1565b82615524565b8151600090839060081080614d2f575080516002115b15614d3e5760009150506113eb565b60408051602080825281830190925260609160208201818036833701905050905083602082015280825181518110614d7257fe5b6020910101516001600160f81b031916602d60f81b14614d97576000925050506113eb565b600160005b8351811015614df757828181518110614db157fe5b602001015160f81c60f81b6001600160f81b031916848281518110614dd257fe5b01602001516001600160f81b03191614614def5760009150614df7565b600101614d9c565b5095945050505050565b614e09615869565b6000614e13615869565b614e1b61595c565b614e276149d98661523b565b90506000805b614e36836152aa565b15614af75780614e5c57614e4c614a46846152cb565b6001600160a01b03168452614f06565b8060011415614e8457614e71614a46846152cb565b6001600160a01b03166020850152614f06565b8060021415614ea657614e99614a03846152cb565b60ff166040850152614f06565b8060031415614ec557614ebb614a03846152cb565b6060850152614f06565b8060041415614ee457614eda614a03846152cb565b6080850152614f06565b8060051415614aea57614ef9614a03846152cb565b60ff1660a0850152600191505b600101614e2d565b614f16615935565b6000614f20615935565b614f2861595c565b614f346149d98661523b565b90506000805b614f43836152aa565b15614af75780614f6957614f59614a46846152cb565b6001600160a01b03168452614fd2565b8060011415614f9157614f7e614a46846152cb565b6001600160a01b03166020850152614fd2565b8060021415614fb057614fa6614a03846152cb565b6040850152614fd2565b8060031415614aea57614fc5614a03846152cb565b60ff166060850152600191505b600101614f3a565b614fe26158f1565b6000614fec6158f1565b614ff461595c565b6150006149d98661523b565b90506000805b61500f836152aa565b15614af7578061503557615025614a46846152cb565b6001600160a01b03168452615123565b806001141561505d5761504a614a46846152cb565b6001600160a01b03166020850152615123565b806002141561507c57615072614a03846152cb565b6040850152615123565b806003141561509b57615091614a03846152cb565b6060850152615123565b80600414156150ba576150b0614a03846152cb565b6080850152615123565b80600514156150dc576150cf614a03846152cb565b60ff1660a0850152615123565b80600614156150fb576150f1614a03846152cb565b60c0850152615123565b8060071415614aea57615110614a03846152cb565b6001600160401b031660e0850152600191505b600101615006565b615133615869565b600061513d615869565b61514561595c565b6151516149d98661523b565b90506000805b615160836152aa565b15614af7578061518657615176614a46846152cb565b6001600160a01b03168452615233565b80600114156151ae5761519b614a46846152cb565b6001600160a01b03166020850152615233565b80600214156151cd576151c3614a03846152cb565b6040850152615233565b80600314156151ec576151e2614a03846152cb565b6060850152615233565b806004141561520b57615201614a03846152cb565b6080850152615233565b8060051415614aea57615220614a03846152cb565b6001600160401b031660a0850152600191505b600101615157565b61524361597c565b506040805180820190915281518152602082810190820152919050565b61526861595c565b61527182615699565b61527a57600080fd5b600061528983602001516156d3565b60208085015160408051808201909152868152920190820152915050919050565b60006152b461597c565b505080518051602091820151919092015191011190565b6152d361597c565b6152dc826152aa565b6152e557600080fd5b602082015160006152f582615736565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061532e57508151602110155b61533757600080fd5b600061534683602001516156d3565b905080836000015110156153a1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613a0e57506020919091036101000a90049392505050565b80516000906015146153df57600080fd5b6113eb82615319565b60608151600114801561541a5750607f60f81b8260008151811061540857fe5b01602001516001600160f81b03191611155b1561542657508061157f565b6113eb6154388351608060ff166155a1565b83615524565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615482575060186154a6565b6fffffffffffffffffffffffffffffffff1984166154a2575060106154a6565b5060005b60208110156154dc578181815181106154bb57fe5b01602001516001600160f81b031916156154d4576154dc565b6001016154a6565b60008160200390506060816040519080825280601f01601f191660200182016040528015615511576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561555557805183526020928301920161553d565b50855184518101855292509050808201602086015b8183101561558257805183526020928301920161556a565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106155f1576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161564b5782840160f81b8160008151811061562d57fe5b60200101906001600160f81b031916908160001a90535090506113eb565b60606156568561543e565b90508381510160370160f81b8260008151811061566f57fe5b60200101906001600160f81b031916908160001a9053506156908282615524565b95945050505050565b80516000906156aa5750600061157f565b6020820151805160001a9060c08210156156c95760009250505061157f565b5060019392505050565b8051600090811a60808110156156ed57600091505061157f565b60b8811080615708575060c08110801590615708575060f881105b1561571757600191505061157f565b60c081101561572b5760b51901905061157f565b60f51901905061157f565b80516000908190811a60808110156157515760019150615862565b60b881101561576657607e1981019150615862565b60c08110156157e057600060b78203600186019550806020036101000a8651049150600181018201935050808310156157da576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615862565b60f88110156157f55760be1981019150615862565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615860576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528061596f61597c565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6d73672e76616c7565206d757374206265204e202a203165313020616e642067726561746572207468616e2073756d206f66206d696e6952656c617946656520616e64206d6972726f724665656f6e6c79206265703230206f776e65722063616e20617070726f766520746869732062696e64207265717565737465787069726554696d65206d7573742062652074776f206d696e75746573206c6174657220616e64206f6e6520646179206561726c69657272656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e64207265717565737473796d626f6c2073686f756c64206f6e6c7920636f6e7461696e20616c70686162657420616e64206e756d626572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e76616c7565206d757374206265204e202a203165313020616e64206e6f206c6573732073756d206f66206d696e6952656c617946656520616e642073796e63466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e747261637474686520626570323020746f6b656e20697320696e206d6972726f722070656e64696e6720737461747573a2646970667358221220ab8dfdd9914857b55fc1c6e49c911de2d861380dc81004c5ff0a4e67915545b764736f6c63430006040033", + Code: mirror.MainnetTokenManagerContract, }, { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e590814610996578063fd6a687914610ce6578063ff9c00271461068657610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063d9e6dae9116100d1578063d9e6dae914610608578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610ad2578063b9fd21e314610b0b578063ba35ead614610b20578063bbface1f14610b3557610366565b8063aa7415f5146109ab578063ab51bb96146109f2578063ac43175114610a0757610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a78abc1614610981578063a7c9f02d1461099657610366565b8063613684751161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105875780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b8063613684751461060857806366dea52a146106865780636e0565201461069b5780636e47b482146107c757806370fd5bad1461068657806371d30863146107dc57610366565b806343a368b9116102d757806350432d32116102b157806350432d321461061d57806351e806721461063257806359b92789146106475780635d499b1b1461067157610366565b806343a368b9146105c7578063493279b1146105dc5780634bf6c8821461060857610366565b80630bee7a671461036b5780631182b87514610399578063149d14d9146104935780633d713223146104ba5780633dffc3871461058757806343756e5c146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805163ffffffff9092168252519081900360200190f35b3480156103a557600080fd5b5061041e600480360360408110156103bc57600080fd5b60ff8235169190810190604081016020820135600160201b8111156103e057600080fd5b8201836020820111156103f257600080fd5b803590602001918460018302840111600160201b8311171561041357600080fd5b509092509050610d00565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610458578181015183820152602001610440565b50505050905090810190601f1680156104855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049f57600080fd5b506104a8610e2e565b60408051918252519081900360200190f35b3480156104c657600080fd5b5061056b600480360360208110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e34945050505050565b604080516001600160a01b039092168252519081900360200190f35b34801561059357600080fd5b5061059c610e58565b6040805160ff9092168252519081900360200190f35b3480156105be57600080fd5b5061056b610e5d565b3480156105d357600080fd5b506104a8610e63565b3480156105e857600080fd5b506105f1610e6f565b6040805161ffff9092168252519081900360200190f35b34801561061457600080fd5b5061059c610e74565b34801561062957600080fd5b506104a8610e79565b34801561063e57600080fd5b5061056b610e84565b34801561065357600080fd5b5061056b6004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104a8610ea5565b34801561069257600080fd5b5061059c610eae565b6107b3600480360360808110156106b157600080fd5b810190602081018135600160201b8111156106cb57600080fd5b8201836020820111156106dd57600080fd5b803590602001918460208302840111600160201b831117156106fe57600080fd5b919390929091602081019035600160201b81111561071b57600080fd5b82018360208201111561072d57600080fd5b803590602001918460208302840111600160201b8311171561074e57600080fd5b919390929091602081019035600160201b81111561076b57600080fd5b82018360208201111561077d57600080fd5b803590602001918460208302840111600160201b8311171561079e57600080fd5b91935091503567ffffffffffffffff16610eb3565b604080519115158252519081900360200190f35b3480156107d357600080fd5b5061056b611388565b3480156107e857600080fd5b506104a861138e565b3480156107fd57600080fd5b5061056b611394565b34801561081257600080fd5b5061059c61139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061059c61156e565b34801561090057600080fd5b506104a8611573565b34801561091557600080fd5b506104a86004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b5061056b6116bd565b34801561096357600080fd5b5061056b6116c3565b34801561097857600080fd5b5061059c6116c9565b34801561098d57600080fd5b506107b36116ce565b3480156109a257600080fd5b5061059c6116d7565b6107b3600480360360808110156109c157600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116dc565b3480156109fe57600080fd5b506103806116c9565b348015610a1357600080fd5b5061036460048036036040811015610a2a57600080fd5b810190602081018135600160201b811115610a4457600080fd5b820183602082011115610a5657600080fd5b803590602001918460018302840111600160201b83111715610a7757600080fd5b919390929091602081019035600160201b811115610a9457600080fd5b820183602082011115610aa657600080fd5b803590602001918460018302840111600160201b83111715610ac757600080fd5b509092509050611d9d565b348015610ade57600080fd5b5061036460048036036040811015610af557600080fd5b50803590602001356001600160a01b031661200c565b348015610b1757600080fd5b506104a8612082565b348015610b2c57600080fd5b506104a861208c565b348015610b4157600080fd5b506104a860048036036020811015610b5857600080fd5b50356001600160a01b0316612092565b348015610b7457600080fd5b506104a860048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b5061056b6120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b5061056b612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061059c61223b565b348015610c8057600080fd5b5061059c612240565b348015610c9557600080fd5b5061056b612245565b348015610caa57600080fd5b506104a861224b565b348015610cbf57600080fd5b5061041e60048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b5061056b612378565b606481565b60005460609060ff16610d48576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b3361200014610d885760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff841660021415610dda57610dd383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e27565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b603881565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610ef9576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b868514610f375760405162461bcd60e51b815260040180806020018281038252603b81526020018061471b603b913960400191505060405180910390fd5b868314610f755760405162461bcd60e51b815260040180806020018281038252603f8152602001806145ee603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fc15760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156110055760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611038578160200160208202803683370190505b50905060005b84811015611113576402540be4008b8b8381811061105857fe5b905060200201358161106657fe5b06156110a35760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6110c88b8b838181106110b257fe5b90506020020135856124a290919063ffffffff16565b93506110f46402540be4008c8c848181106110df57fe5b905060200201356124fc90919063ffffffff16565b82828151811061110057fe5b602090810291909101015260010161103e565b506001546111389061112b908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111765760405162461bcd60e51b81526004018080602001828103825260568152602001806147c86056913960600191505060405180910390fd5b611186348463ffffffff61259716565b9150611190614337565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d76003611254846125d9565b611269876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c75781810151838201526020016112af565b50505050905090810190601f1680156112f45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614451602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611722576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561176e5760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156117b25760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b600080806001600160a01b038816611891576001546117d890879063ffffffff6124a216565b3410156118165760405162461bcd60e51b81526004018080602001828103825260618152602001806145686061913960800191505060405180910390fd5b6402540be40086061561185a5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b61186a348763ffffffff61259716565b9050611881866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b34565b6001600160a01b0388166000908152600360205260409020549250826118e85760405162461bcd60e51b81526004018080602001828103825260318152602001806145376031913960400191505060405180910390fd5b6001543410156119295760405162461bcd60e51b815260040180806020018281038252603f81526020018061468a603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061197457506008811180156119745750611972876007198301600a0a63ffffffff6128f016565b155b6119af5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6119b98782612932565b92506119c484612972565b15611a0c576305f5e100831015611a0c5760405162461bcd60e51b815260040180806020018281038252603a815260200180614480603a913960400191505060405180910390fd5b600881101580611a265750600881108015611a2657508683115b611a615760405162461bcd60e51b81526004018080602001828103825260258152602001806145c96025913960400191505060405180910390fd5b677ce66c50e2840000831115611aa85760405162461bcd60e51b81526004018080602001828103825260358152602001806145026035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b5051611b3257600080fd5b505b611b3c614337565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bea57fe5b602002602001018181525050878160600151600081518110611c0857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c3a57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c65846125d9565b611c7a866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cd8578181015183820152602001611cc0565b50505050905090810190601f168015611d055780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d2657600080fd5b505af1158015611d3a573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611ddd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146c9602e913960400191505060405180910390fd5b60208114611e32576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f3a576020820151670de0b6b3a76400008111801590611ee157506402540be4008106155b611f32576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f77565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461204c5760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b6060612388614383565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143b8565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e53565b50506040805160008152602081019091529150610e539050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146696021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143df565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b81526004018080602001828103825260248152602001806146f76024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600760ff82161015612a0057600092505050610e53565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e53565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e53565b5060019392505050565b612a80614337565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144ba6024913960400191505060405180910390fd5b612ad36143df565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613baf565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e614383565b6000612b88614383565b612b90614416565b612ba1612b9c86613be8565b613c0d565b90506000805b612bb083613c57565b15612ca85780612bd257612bcb612bc684613c78565b613cc6565b8452612ca0565b8060011415612bff57612bec612be784613c78565b613d7d565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c78565b6040850152612ca0565b8060031415612c4657612c33612be784613c78565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c78565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c78565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e53565b8160400151471015612cfc57506003610e53565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e53565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e53565b8160a0015167ffffffffffffffff16421115612e0a57506001610e53565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e53565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e53565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e539050565b5060059150610e539050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2781613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613d97565b613e7d565b60408051600560a21b8318601482015260348101909152606090610e2781613e7d565b60608151600014156132315750604080516000815260208101909152610e53565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ecf565b9150600101613251565b50610e27613294825160c060ff16613f4c565b82613ecf565b6132a26143df565b60006132ac6143df565b6132b4614416565b6132c0612b9c86613be8565b90506000805b6132cf83613c57565b15612ca857806132f5576132e5612be784613c78565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c78565b614044565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cc6565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c78565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d7d565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c78565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b613953614337565b600061395d614337565b613965614416565b613971612b9c86613be8565b90506000805b61398083613c57565b15612ca8578061399d57613996612bc684613c78565b8452613ba7565b80600114156139c5576139b2612be784613c78565b6001600160a01b03166020850152613ba7565b8060021415613a545760606139dc61330c85613c78565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613ba7565b8060031415613ae9576060613a6b61330c85613c78565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c78565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415612c9b57613b93612bc684613c78565b67ffffffffffffffff1660a0850152600191505b600101613977565b60006008821115613bd157612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613bf0614436565b506040805180820190915281518152602082810190820152919050565b613c15614416565b613c1e82614115565b613c2757600080fd5b6000613c368360200151614145565b60208085015160408051808201909152868152920190820152915050919050565b6000613c61614436565b505080518051602091820151919092015191011190565b613c80614436565b613c8982613c57565b613c9257600080fd5b60208201516000613ca2826141a8565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cdb57508151602110155b613ce457600080fd5b6000613cf38360200151614145565b90508083600001511015613d4e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d7457826020036101000a820491505b50949350505050565b8051600090601514613d8e57600080fd5b6116b782613cc6565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613ddb57506018613dff565b6fffffffffffffffffffffffffffffffff198416613dfb57506010613dff565b5060005b6020811015613e3557818181518110613e1457fe5b01602001516001600160f81b03191615613e2d57613e35565b600101613dff565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e6a576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613eaf5750607f60f81b82600081518110613e9d57fe5b01602001516001600160f81b03191611155b15613ebb575080610e53565b6116b7613ecd8351608060ff16613f4c565b835b6060806040519050835180825260208201818101602087015b81831015613f00578051835260209283019201613ee8565b50855184518101855292509050808201602086015b81831015613f2d578051835260209283019201613f15565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613f9c576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ff65782840160f81b81600081518110613fd857fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061400185613d97565b90508381510160370160f81b8260008151811061401a57fe5b60200101906001600160f81b031916908160001a90535061403b8282613ecf565b95945050505050565b606061404f82614115565b61405857600080fd5b6000614063836142db565b90506060816040519080825280602002602001820160405280156140a157816020015b61408e614436565b8152602001906001900390816140865790505b50905060006140b38560200151614145565b60208601510190506000805b8481101561410a576140d0836141a8565b91506040518060400160405280838152602001848152508482815181106140f357fe5b6020908102919091010152918101916001016140bf565b509195945050505050565b805160009061412657506000610e53565b6020820151805160001a9060c0821015612a6e57600092505050610e53565b8051600090811a608081101561415f576000915050610e53565b60b881108061417a575060c0811080159061417a575060f881105b15614189576001915050610e53565b60c081101561419d5760b519019050610e53565b60f519019050610e53565b80516000908190811a60808110156141c357600191506142d4565b60b88110156141d857607e19810191506142d4565b60c081101561425257600060b78203600186019550806020036101000a86510491506001810182019350508083101561424c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142d4565b60f88110156142675760be19810191506142d4565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142d2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906142ec57506000610e53565b600080905060006143008460200151614145565b602085015185519181019250015b8082101561432e5761431f826141a8565b6001909301929091019061430e565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614429614436565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220c72f4ad63f8f84b0b15ae9d71fffb0d09b3b3b97a728e64b385305ecb6431b0e64736f6c63430006040033", + Code: mirror.MainnetTokenHubContract, }, { ContractAddr: common.HexToAddress(RelayerIncentivizeContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106102815760003560e01c8063930e1b091161014f578063bd4cc830116100c1578063e75d72c71161007a578063e75d72c7146107b5578063e89a3020146107e8578063f9a2bbc714610812578063fc3e590814610827578063fd6a68791461083c578063fdd31fcd1461085157610288565b8063bd4cc83014610722578063c81b16621461074c578063d0ab528a14610761578063dc927faf14610776578063dcae76ab1461078b578063e1c7392a146107a057610288565b8063a78abc1611610113578063a78abc16146105d3578063a7c6a59d146105e8578063ab51bb96146105fd578063ac43175114610612578063ace9fcc2146106e3578063af400681146106f857610288565b8063930e1b091461054c57806396713da91461057f5780639dc0926214610594578063a1a11bf5146105a9578063a3c3c0ad146105be57610288565b806343756e5c116101f35780636f93d2e6116101ac5780636f93d2e61461048457806370fd5bad146104e357806374f2272d146104f857806375d47a0a1461050d5780637942fd05146105225780637e146cc51461053757610288565b806343756e5c146103ef578063493279b1146104045780634bf6c8821461043057806351e8067214610445578063541333071461045a5780636e47b4821461046f57610288565b806312950c461161024557806312950c46146103215780631b20087c146103365780631c6433121461034b5780633a9756121461028d5780633dffc3871461039157806340bb43c0146103bc57610288565b8063081e9d131461028d57806308f2ec06146102b4578063093f2fc4146102c95780630bee7a67146102de57806310e06a761461030c57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610884565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102a2610889565b3480156102d557600080fd5b506102a261088e565b3480156102ea57600080fd5b506102f3610893565b6040805163ffffffff9092168252519081900360200190f35b34801561031857600080fd5b506102a2610898565b34801561032d57600080fd5b506102a261089e565b34801561034257600080fd5b506102a26108a4565b34801561035757600080fd5b506103756004803603602081101561036e57600080fd5b50356108aa565b604080516001600160a01b039092168252519081900360200190f35b34801561039d57600080fd5b506103a6610884565b6040805160ff9092168252519081900360200190f35b3480156103c857600080fd5b506102a2600480360360208110156103df57600080fd5b50356001600160a01b03166108d1565b3480156103fb57600080fd5b506103756108e3565b34801561041057600080fd5b506104196108e9565b6040805161ffff9092168252519081900360200190f35b34801561043c57600080fd5b506103a66108ee565b34801561045157600080fd5b506103756108f3565b34801561046657600080fd5b506102a2610893565b34801561047b57600080fd5b506103756108f9565b34801561049057600080fd5b506104cf600480360360808110156104a757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108ff565b604080519115158252519081900360200190f35b3480156104ef57600080fd5b506103a6610d91565b34801561050457600080fd5b506102a2610d96565b34801561051957600080fd5b50610375610d9c565b34801561052e57600080fd5b506103a6610da2565b34801561054357600080fd5b506102a2610da7565b34801561055857600080fd5b506102a26004803603602081101561056f57600080fd5b50356001600160a01b0316610dac565b34801561058b57600080fd5b506103a6610dbe565b3480156105a057600080fd5b50610375610dc3565b3480156105b557600080fd5b50610375610dc9565b3480156105ca57600080fd5b506102a2610dcf565b3480156105df57600080fd5b506104cf610dd5565b3480156105f457600080fd5b506102a2610dde565b34801561060957600080fd5b506102f3610de4565b34801561061e57600080fd5b506106e16004803603604081101561063557600080fd5b81019060208101813564010000000081111561065057600080fd5b82018360208201111561066257600080fd5b8035906020019184600183028401116401000000008311171561068457600080fd5b9193909290916020810190356401000000008111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111640100000000831117156106d657600080fd5b509092509050610de9565b005b3480156106ef57600080fd5b506102a2611537565b34801561070457600080fd5b506102a26004803603602081101561071b57600080fd5b503561153d565b34801561072e57600080fd5b506102a26004803603602081101561074557600080fd5b5035611598565b34801561075857600080fd5b506103756115b1565b34801561076d57600080fd5b506102a26115b7565b34801561078257600080fd5b506103756115bd565b34801561079757600080fd5b506102a26115c3565b3480156107ac57600080fd5b506106e16115c9565b3480156107c157600080fd5b506106e1600480360360208110156107d857600080fd5b50356001600160a01b0316611692565b3480156107f457600080fd5b506103756004803603602081101561080b57600080fd5b50356117eb565b34801561081e57600080fd5b506103756117f8565b34801561083357600080fd5b506103a66117fe565b34801561084857600080fd5b50610375611803565b34801561085d57600080fd5b506102a26004803603602081101561087457600080fd5b50356001600160a01b0316611809565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b600681815481106108b757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b603881565b600881565b61200081565b61100581565b6000805460ff16610957576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109975760405162461bcd60e51b815260040180806020018281038252602f815260200180612377602f913960400191505060405180910390fd5b60008215610a4a576110026001600160a01b0316639a99b4f06110056109c8600e548861181b90919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b50519050610b59565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a9457600080fd5b505af1158015610aa8573d6000803e3d6000fd5b505050506040513d6020811015610abe57600080fd5b5051600e5490915015610b5957600e54604080516309a99b4f60e41b81526110056004820152602481019290925251610b569161100291639a99b4f0916044808201926020929091908290030181600087803b158015610b1d57600080fd5b505af1158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b5051829063ffffffff61181b16565b90505b600c805460010190556000610b6d8261187e565b600954909150610b83908263ffffffff61181b16565b600955600a54610bab908290610b9f908563ffffffff61181b16565b9063ffffffff6118a716565b600a556001600160a01b038716600090815260056020526040902054610c1757600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610c9557600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610d8457600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610d0f6118e9565b90506000610d1b611bcd565b6001600160a01b0389166000908152600d6020526040902054909150610d59908290610d4d908563ffffffff61181b16565b9063ffffffff61181b16565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610e295760405162461bcd60e51b815260040180806020018281038252602e8152602001806122bc602e913960400191505060405180910390fd5b60005460ff16610e6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ea6021913960400191505060405180910390fd5b610ede84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611e4b9050565b15610fab5760208114610f225760405162461bcd60e51b81526004018080602001828103825260328152602001806123a66032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610f6091858580838501838280828437600092019190915250611f3292505050565b9050600254811115610fa35760405162461bcd60e51b81526004018080602001828103825260608152602001806121956060913960600191505060405180910390fd5b6001556114a5565b61100484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081019091526022808252909250905061229a6020830139611e4b565b156110dc57602081146110485760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161108691858580838501838280828437600092019190915250611f3292505050565b9050801580159061109957506001548110155b6110d45760405162461bcd60e51b815260040180806020018281038252606c81526020018061230b606c913960800191505060405180910390fd5b6002556114a5565b61115084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611e4b9050565b1561121d57602081146111945760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916111d291858580838501838280828437600092019190915250611f3292505050565b90506004548111156112155760405162461bcd60e51b81526004018080602001828103825260568152602001806121f56056913960600191505060405180910390fd5b6003556114a5565b61129184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611e4b9050565b1561136957602081146112d55760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161131391858580838501838280828437600092019190915250611f3292505050565b9050801580159061132657506003548110155b6113615760405162461bcd60e51b81526004018080602001828103825260618152602001806121066061913960800191505060405180910390fd5b6004556114a5565b6113dd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f64796e616d69634578747261496e63656e74697665416d6f756e74000000000060208201529150611e4b9050565b1561146857602081146114215760405162461bcd60e51b815260040180806020018281038252602e815260200180612167602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161145f91858580838501838280828437600092019190915250611f3292505050565b600e55506114a5565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161154e575080611593565b81602810801561155f575060508211155b1561156c57506028611593565b60508211801561157d5750606e8211155b1561158d57506078819003611593565b50600481045b919050565b6000602882116115a9575080611593565b506028611593565b61100281565b600e5481565b61100381565b60095481565b60005460ff1615611621576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff161561166f576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d6020526040902054806116f1576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506117a15760405161100290819084156108fc029085906000818181858888f1935050505015801561175b573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506117e8565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b600881815481106108b757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600082820183811015611875576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061187860025461189b60015485611f3790919063ffffffff16565b9063ffffffff611f9016565b600061187583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd2565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561194557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611927575b5050505050905060608151604051908082528060200260200182016040528015611979578160200160208202803683370190505b50905060005b8251811015611a0657600083828151811061199657fe5b6020026020010151905060006119d060056000846001600160a01b03166001600160a01b0316815260200190815260200160002054611598565b9050808484815181106119df57fe5b60209081029190910101526119fa868263ffffffff61181b16565b9550505060010161197f565b506000611a2460045461189b60035488611f3790919063ffffffff16565b9050611a36858263ffffffff6118a716565b94508460015b8451811015611b0d576000611a718761189b8a888681518110611a5b57fe5b6020026020010151611f3790919063ffffffff16565b9050611abe81600d6000898681518110611a8757fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461181b90919063ffffffff16565b600d6000888581518110611ace57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611b02838263ffffffff6118a716565b925050600101611a3c565b50611b2381600d600087600081518110611a8757fe5b600d600086600081518110611b3457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b8451811015611bb55760056000868381518110611b8757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611b6e565b50611bc2600660006120ce565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611c2957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c0b575b5050505050905060608151604051908082528060200260200182016040528015611c5d578160200160208202803683370190505b50905060005b8251811015611cdc576000838281518110611c7a57fe5b602002602001015190506000611cb460076000846001600160a01b03166001600160a01b031681526020019081526020016000205461153d565b905080848481518110611cc357fe5b6020908102919091010152949094019350600101611c63565b506000611cfa60045461189b60035488611f3790919063ffffffff16565b9050611d0c858263ffffffff6118a716565b94508460015b8451811015611d96576000611d318761189b8a888681518110611a5b57fe5b9050611d4781600d6000898681518110611a8757fe5b600d6000888581518110611d5757fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611d8b838263ffffffff6118a716565b925050600101611d12565b50611dac81600d600087600081518110611a8757fe5b600d600086600081518110611dbd57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611e3e5760076000868381518110611e1057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611df7565b50611bc2600860006120ce565b6000816040516020018082805190602001908083835b60208310611e805780518252601f199092019160209182019101611e61565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611f4657506000611878565b82820282848281611f5357fe5b04146118755760405162461bcd60e51b81526004018080602001828103825260218152602001806122796021913960400191505060405180910390fd5b600061187583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612069565b600081848411156120615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202657818101518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836120b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561202657818101518382015260200161200e565b5060008385816120c457fe5b0495945050505050565b50805460008255906000526020600020908101906117e89190611bca91905b8082111561210157600081556001016120ed565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656c656e677468206f662064796e616d69634578747261496e63656e74697665416d6f756e74206d69736d617463686e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220ed761a0a8bb4eac3f5f94897efb6059f8cb261a19ed73bef336cbc05af2a532064736f6c63430006040033", + Code: mirror.MainnetRelayerIncentivizeContract, }, }, } @@ -208,17 +222,17 @@ func init() { { ContractAddr: common.HexToAddress(TokenManagerContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106103815760003560e01c80637d078e13116101d1578063b795031711610102578063d9e6dae9116100a0578063fa9e91591161006f578063fa9e915914610d38578063fc3e5908146105b2578063fd6a687914610d4d578063fe3a2af514610d6257610381565b8063d9e6dae9146106fc578063dc927faf14610cf9578063e605bca014610d0e578063f9a2bbc714610d2357610381565b8063c8509d81116100dc578063c8509d8114610bdf578063c8e704a4146105b2578063d117a11014610c64578063d7109ce614610ce457610381565b8063b79503171461073b578063bd32d3f9146104d9578063c81b166214610bca57610381565b80639a854bbd1161016f578063a78abc1611610149578063a78abc1614610ad5578063ab51bb9614610aea578063ab67a4851461073b578063ac43175114610aff57610381565b80639a854bbd14610a965780639dc0926214610aab578063a1a11bf514610ac057610381565b8063859180fb116101ab578063859180fb146106e757806394553a4e14610a3757806395b9ad2614610a6c57806396713da914610a8157610381565b80637d078e13146104ee5780637ec816dd1461099b578063831d65d1146109b057610381565b8063493279b1116102b657806366dea52a1161025457806372c4e0861161022357806372c4e0861461081957806375d47a0a146108bd57806377d9dae8146108d25780637942fd051461098657610381565b806366dea52a1461073b5780636b3f1307146107505780636e47b4821461080457806370fd5bad1461073b57610381565b806351e806721161029057806351e80672146107115780635d499b1b146107265780635f558f861461073b57806361368475146106fc57610381565b8063493279b1146106bb5780634bc81c00146106e75780634bf6c882146106fc57610381565b80632e02d77611610323578063401809f9116102fd578063401809f9146105b257806343756e5c146105c7578063445fcefe146105f8578063487c88ac146104ee57610381565b80632e02d7761461054c57806337e6ecda1461057f5780633dffc387146104ee57610381565b80631f91600b1161035f5780631f91600b146104d957806323996b53146104ee57806325c751b7146105035780632d89ac32146104ee57610381565b80630bee7a67146103865780630f212b1b146103b45780631182b875146103df575b600080fd5b34801561039257600080fd5b5061039b610d77565b6040805163ffffffff9092168252519081900360200190f35b3480156103c057600080fd5b506103c9610d7c565b6040805160ff9092168252519081900360200190f35b3480156103eb57600080fd5b506104646004803603604081101561040257600080fd5b60ff8235169190810190604081016020820135600160201b81111561042657600080fd5b82018360208201111561043857600080fd5b803590602001918460018302840111600160201b8311171561045957600080fd5b509092509050610d81565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561049e578181015183820152602001610486565b50505050905090810190601f1680156104cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e557600080fd5b506103c9610e9b565b3480156104fa57600080fd5b506103c9610ea0565b6105386004803603604081101561051957600080fd5b5080356001600160a01b031690602001356001600160401b0316610ea5565b604080519115158252519081900360200190f35b34801561055857600080fd5b506105386004803603602081101561056f57600080fd5b50356001600160a01b03166113f1565b34801561058b57600080fd5b50610538600480360360208110156105a257600080fd5b50356001600160a01b0316611406565b3480156105be57600080fd5b506103c961141b565b3480156105d357600080fd5b506105dc611420565b604080516001600160a01b039092168252519081900360200190f35b34801561060457600080fd5b506106a96004803603602081101561061b57600080fd5b810190602081018135600160201b81111561063557600080fd5b82018360208201111561064757600080fd5b803590602001918460018302840111600160201b8311171561066857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611426945050505050565b60408051918252519081900360200190f35b3480156106c757600080fd5b506106d0611584565b6040805161ffff9092168252519081900360200190f35b3480156106f357600080fd5b506103c9611589565b34801561070857600080fd5b506103c961158e565b34801561071d57600080fd5b506105dc611593565b34801561073257600080fd5b506106a9611599565b34801561074757600080fd5b506103c96115a2565b6105386004803603604081101561076657600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111600160201b831117156107c357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a7945050505050565b34801561081057600080fd5b506105dc611e7d565b6105386004803603602081101561082f57600080fd5b810190602081018135600160201b81111561084957600080fd5b82018360208201111561085b57600080fd5b803590602001918460018302840111600160201b8311171561087c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e83945050505050565b3480156108c957600080fd5b506105dc6122cf565b610538600480360360408110156108e857600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460018302840111600160201b8311171561094557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122d5945050505050565b34801561099257600080fd5b506103c96127db565b3480156109a757600080fd5b506106a96127e0565b3480156109bc57600080fd5b50610a35600480360360408110156109d357600080fd5b60ff8235169190810190604081016020820135600160201b8111156109f757600080fd5b820183602082011115610a0957600080fd5b803590602001918460018302840111600160201b83111715610a2a57600080fd5b5090925090506127e6565b005b61053860048036036040811015610a4d57600080fd5b5080356001600160a01b031690602001356001600160401b0316612935565b348015610a7857600080fd5b506103c961332c565b348015610a8d57600080fd5b506103c9613331565b348015610aa257600080fd5b506106a9613336565b348015610ab757600080fd5b506105dc613342565b348015610acc57600080fd5b506105dc613348565b348015610ae157600080fd5b5061053861334e565b348015610af657600080fd5b5061039b613357565b348015610b0b57600080fd5b50610a3560048036036040811015610b2257600080fd5b810190602081018135600160201b811115610b3c57600080fd5b820183602082011115610b4e57600080fd5b803590602001918460018302840111600160201b83111715610b6f57600080fd5b919390929091602081019035600160201b811115610b8c57600080fd5b820183602082011115610b9e57600080fd5b803590602001918460018302840111600160201b83111715610bbf57600080fd5b50909250905061335c565b348015610bd657600080fd5b506105dc613631565b348015610beb57600080fd5b50610a3560048036036040811015610c0257600080fd5b60ff8235169190810190604081016020820135600160201b811115610c2657600080fd5b820183602082011115610c3857600080fd5b803590602001918460018302840111600160201b83111715610c5957600080fd5b509092509050613637565b348015610c7057600080fd5b50610c8e60048036036020811015610c8757600080fd5b503561370d565b6040805160ff988916815260208101979097526001600160a01b03909516868601526060860193909352608085019190915290931660a08301526001600160401b0390921660c082015290519081900360e00190f35b348015610cf057600080fd5b506106a9613764565b348015610d0557600080fd5b506105dc613769565b348015610d1a57600080fd5b506106a961376f565b348015610d2f57600080fd5b506105dc613775565b348015610d4457600080fd5b506106a961377b565b348015610d5957600080fd5b506105dc613781565b348015610d6e57600080fd5b506103c9613357565b606481565b600681565b60603361200014610dc35760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff841660011415610e1557610e0e83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378792505050565b9050610e94565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605848484604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1506040805160008152602081019091525b9392505050565b600481565b600181565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b5051905080610f5e576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205460ff16610fc1576040805162461bcd60e51b81526020600482015260136024820152723737ba103137bab73210313c9036b4b93937b960691b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffe57600080fd5b505afa158015611012573d6000803e3d6000fd5b505050506040513d602081101561102857600080fd5b505190506402540be4003406158015611053575060055461104f908263ffffffff613a1716565b3410155b61108e5760405162461bcd60e51b8152600401808060200182810382526046815260200180615b156046913960600191505060405180910390fd5b42607801846001600160401b0316101580156110b85750426201518001846001600160401b031611155b6110f35760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d602081101561115857600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0389169163313ce567916004808301926020929190829003018186803b1580156111a057600080fd5b505afa1580156111b4573d6000803e3d6000fd5b505050506040513d60208110156111ca57600080fd5b50519050677ce66c50e28400006111e48360ff8416613a71565b1115611230576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b600554611004906108fc9061124c90349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015611274573d6000803e3d6000fd5b5061127d615869565b6040518060c00160405280336001600160a01b03168152602001896001600160a01b031681526020018681526020018481526020016112cc6402540be400600554613b4290919063ffffffff16565b81526001600160401b038916602090910152905061200063f7a251d760056112f384613b84565b61131d6402540be40061131160055434613b0090919063ffffffff16565b9063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137b578181015183820152602001611363565b50505050905090810190601f1680156113a85780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c957600080fd5b505af11580156113dd573d6000803e3d6000fd5b505050506001955050505050505b92915050565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b600381565b61100181565b602081015160009061143661589e565b50600081815260016020818152604092839020835160e081018552815460ff9081168252938201549281019290925260028101546001600160a01b031693820184905260038101546060830152600481015460808301526005015491821660a08201526101009091046001600160401b031660c0820152906114bd5760009250505061157f565b600081604001516001600160a01b03166370a082316110046040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561151b57600080fd5b505afa15801561152f573d6000803e3d6000fd5b505050506040513d602081101561154557600080fd5b5051608083015160608401519192506000916115669163ffffffff613b0016565b9050611578818363ffffffff613b0016565b9450505050505b919050565b606181565b600581565b600881565b61200081565b6402540be40081565b600281565b6001600160a01b03821660009081526002602052604081205460ff16156115ff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615bb8602b913960400191505060405180910390fd5b600061160a83613cb9565b905061161461589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526116d9576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b60006116f682608001518360600151613b0090919063ffffffff16565b905081604001516001600160a01b0316866001600160a01b03161461174c5760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316866001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d60208110156117b957600080fd5b50516001600160a01b0316146118005760405162461bcd60e51b815260040180806020018281038252602e8152602001806159e4602e913960400191505060405180910390fd5b604080516370a0823160e01b8152611004600482015290516000916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561184c57600080fd5b505afa158015611860573d6000803e3d6000fd5b505050506040513d602081101561187657600080fd5b505160408051636eb1769f60e11b8152336004820152306024820152905191925083916119079184916001600160a01b038c169163dd62ed3e916044808301926020929190829003018186803b1580156118cf57600080fd5b505afa1580156118e3573d6000803e3d6000fd5b505050506040513d60208110156118f957600080fd5b50519063ffffffff613a1716565b101561195a576040805162461bcd60e51b815260206004820152601760248201527f616c6c6f77616e6365206973206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561199c57600080fd5b505afa1580156119b0573d6000803e3d6000fd5b505050506040513d60208110156119c657600080fd5b505190508082108015906119df57506402540be4008206155b611a1a5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b6000611a26868b613cc0565b905063ffffffff8116611c25576001600160a01b038a166323b872dd33611004611a56898963ffffffff613b0016565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015611abe57600080fd5b505af1158015611ad2573d6000803e3d6000fd5b505050506040513d6020811015611ae857600080fd5b5050602086015160408088015160a089015182516323bfccdb60e21b815260048101949094526001600160a01b03909116602484015260ff1660448301525161100491638eff336c91606480830192600092919082900301818387803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050896001600160a01b03167f78e7dd9aefcdbf795c4936a66f7dc6d41bb56637b54f561a6bf7829dca3348a88a8860600151886040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611be4578181015183820152602001611bcc565b50505050905090810190601f168015611c115780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2611cdd565b896001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a1078a8360405180806020018363ffffffff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611ca1578181015183820152602001611c89565b50505050905090810190601f168015611cce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25b60008781526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff19169055611d376158da565b5060408051808201825263ffffffff831681526020810189905290516110049085156108fc029086906000818181858888f19350505050158015611d7f573d6000803e3d6000fd5b5061200063f7a251d76001611d938461411a565b611da8886402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e06578181015183820152602001611dee565b50505050905090810190601f168015611e335780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5060019e9d5050505050505050505050505050565b61100581565b600080611e8f83613cb9565b9050611e9961589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c0830152611f5e576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b428160c001516001600160401b031610611fbf576040805162461bcd60e51b815260206004820152601b60248201527f62696e642072657175657374206973206e6f7420657870697265640000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561200157600080fd5b505afa158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b5051905080821080159061204457506402540be4008206155b61207f5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556120d96158da565b50604080518082018252600181526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561211c573d6000803e3d6000fd5b5061200063f7a251d760016121308461411a565b612145876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121a357818101518382015260200161218b565b50505050905090810190601f1680156121d05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156121f157600080fd5b505af1158015612205573d6000803e3d6000fd5b5050505083604001516001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600160405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561228757818101518382015260200161226f565b50505050905090810190601f1680156122b45780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060019695505050505050565b61100881565b6000806122e183613cb9565b90506122eb61589e565b50600081815260016020818152604092839020835160e081018552815460ff90811682529382015492810183905260028201546001600160a01b03169481019490945260038101546060850152600481015460808501526005015491821660a08401526101009091046001600160401b031660c08301526123b0576040805162461bcd60e51b815260206004820152601a602482015279189a5b99081c995c5d595cdd08191bd95cdb89dd08195e1a5cdd60321b604482015290519081900360640190fd5b80604001516001600160a01b0316856001600160a01b0316146124045760405162461bcd60e51b8152600401808060200182810382526045815260200180615a816045913960600191505060405180910390fd5b336001600160a01b0316856001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d602081101561247157600080fd5b50516001600160a01b0316146124ce576040805162461bcd60e51b815260206004820152601b60248201527f6f6e6c79206265703230206f776e65722063616e2072656a6563740000000000604482015290519081900360640190fd5b600034905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561251057600080fd5b505afa158015612524573d6000803e3d6000fd5b505050506040513d602081101561253a57600080fd5b5051905080821080159061255357506402540be4008206155b61258e5760405162461bcd60e51b8152600401808060200182810382526037815260200180615a4a6037913960400191505060405180910390fd5b60008481526001602081905260408220805460ff191681559081018290556002810180546001600160a01b0319169055600381018290556004810191909155600501805468ffffffffffffffffff191690556125e86158da565b50604080518082018252600781526020810186905290516110049084156108fc029085906000818181858888f1935050505015801561262b573d6000803e3d6000fd5b5061200063f7a251d7600161263f8461411a565b612654876402540be40063ffffffff613b4216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156126b257818101518382015260200161269a565b50505050905090810190601f1680156126df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561270057600080fd5b505af1158015612714573d6000803e3d6000fd5b50505050876001600160a01b03167f831c0ef4d93bda3bce08b69ae3f29ef1a6e052b833200988554158494405a10788600760405180806020018360ff1663ffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561279257818101518382015260200161277a565b50505050905090810190601f1680156127bf5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2506001979650505050505050565b600b81565b60045481565b33612000146128265760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156128765761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061419092505050565b612930565b60ff8316600514156128c15761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061443d92505050565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b6040805163bd46646160e01b81526001600160a01b0384166004820152905160009182916110049163bd466461916024808301926020929190829003018186803b15801561298257600080fd5b505afa158015612996573d6000803e3d6000fd5b505050506040513d60208110156129ac57600080fd5b5051146129f0576040805162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e48189bdd5b99609a1b604482015290519081900360640190fd5b6001600160a01b03831660009081526002602052604090205460ff1615612a4f576040805162461bcd60e51b815260206004820152600e60248201526d6d6972726f722070656e64696e6760901b604482015290519081900360640190fd5b60006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8c57600080fd5b505afa158015612aa0573d6000803e3d6000fd5b505050506040513d6020811015612ab657600080fd5b505190506402540be4003406158015612ae15750600454612add908263ffffffff613a1716565b3410155b612b1c5760405162461bcd60e51b815260040180806020018281038252604d815260200180615997604d913960600191505060405180910390fd5b42607801836001600160401b031610158015612b465750426201518001836001600160401b031611155b612b815760405162461bcd60e51b8152600401808060200182810382526038815260200180615a126038913960400191505060405180910390fd5b6000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612bbc57600080fd5b505afa158015612bd0573d6000803e3d6000fd5b505050506040513d6020811015612be657600080fd5b5051604080516318160ddd60e01b815290519192506000916001600160a01b038816916318160ddd916004808301926020929190829003018186803b158015612c2e57600080fd5b505afa158015612c42573d6000803e3d6000fd5b505050506040513d6020811015612c5857600080fd5b50519050677ce66c50e2840000612c728260ff8516613a71565b1115612cbe576040805162461bcd60e51b8152602060048201526016602482015275746f6f206c6172676520746f74616c20737570706c7960501b604482015290519081900360640190fd5b6060866001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015612cf957600080fd5b505afa158015612d0d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612d3657600080fd5b8101908080516040519392919084600160201b821115612d5557600080fd5b908301906020820185811115612d6a57600080fd5b8251600160201b811182820188101715612d8357600080fd5b82525081516020918201929091019080838360005b83811015612db0578181015183820152602001612d98565b50505050905090810190601f168015612ddd5780820380516001836020036101000a031916815260200191505b50604052505050905060608190506001815110158015612dff57506020815111155b612e50576040805162461bcd60e51b815260206004820152601d60248201527f6e616d65206c656e677468206d75737420626520696e205b312c33325d000000604482015290519081900360640190fd5b6060886001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015612e8b57600080fd5b505afa158015612e9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612ec857600080fd5b8101908080516040519392919084600160201b821115612ee757600080fd5b908301906020820185811115612efc57600080fd5b8251600160201b811182820188101715612f1557600080fd5b82525081516020918201929091019080838360005b83811015612f42578181015183820152602001612f2a565b50505050905090810190601f168015612f6f5780820380516001836020036101000a031916815260200191505b5060405250508151919250829160021180159150612f8f57508051600810155b612fe0576040805162461bcd60e51b815260206004820152601e60248201527f73796d626f6c206c656e677468206d75737420626520696e205b322c385d0000604482015290519081900360640190fd5b60005b81518160ff16101561313457604160f81b828260ff168151811061300357fe5b01602001516001600160f81b031916108015906130415750602d60f91b828260ff168151811061302f57fe5b01602001516001600160f81b03191611155b806130995750606160f81b828260ff168151811061305b57fe5b01602001516001600160f81b031916108015906130995750603d60f91b828260ff168151811061308757fe5b01602001516001600160f81b03191611155b806130f15750600360fc1b828260ff16815181106130b357fe5b01602001516001600160f81b031916108015906130f15750603960f81b828260ff16815181106130df57fe5b01602001516001600160f81b03191611155b61312c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615ac6602e913960400191505060405180910390fd5b600101612fe3565b50600454611004906108fc9061315190349063ffffffff613b0016565b6040518115909202916000818181858888f19350505050158015613179573d6000803e3d6000fd5b506001600160a01b038a166000908152600260209081526040909120805460ff1916600117905584810151908301516131b06158f1565b604051806101000160405280336001600160a01b031681526020018e6001600160a01b031681526020018481526020018381526020018981526020018a60ff16815260200161320f6402540be400600454613b4290919063ffffffff16565b81526001600160401b038e16602090910152905061200063f7a251d7600461323684614608565b6132546402540be40061131160045434613b0090919063ffffffff16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156132b257818101518382015260200161329a565b50505050905090810190601f1680156132df5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561330057600080fd5b505af1158015613314573d6000803e3d6000fd5b5050505060019a505050505050505050505092915050565b600781565b600981565b677ce66c50e284000081565b61100781565b61100681565b60005460ff1681565b600081565b336110071461339c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615b5b602e913960400191505060405180910390fd5b602081146133f1576040805162461bcd60e51b815260206004820152601860248201527f65787065637465642076616c7565206c656e6774682033320000000000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f880181900481028201810190925286815293945060609392508691508590819084018382808284376000920191909152505050506020830151909150686d6972726f7246656560b81b8114156134e65760208201516402540be4008106156134de576040805162461bcd60e51b815260206004820152601a60248201527f6d6972726f72466565206d757374206265204e202a2031653130000000000000604482015290519081900360640190fd5b60045561359c565b6673796e6346656560c81b81141561355f5760208201516402540be400810615613557576040805162461bcd60e51b815260206004820152601860248201527f73796e63466565206d757374206265204e202a20316531300000000000000000604482015290519081900360640190fd5b60055561359c565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b61100281565b33612000146136775760405162461bcd60e51b815260040180806020018281038252602f815260200180615b89602f913960400191505060405180910390fd5b60ff8316600414156136c25761287182828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061477a92505050565b60ff8316600514156128c15761287182828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506148b992505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460059094015460ff9586169593946001600160a01b039093169391929181169061010090046001600160401b031687565b604d81565b61100381565b60055481565b61100081565b61271081565b61100481565b606061379161589e565b600061379c846149b3565b91509150806137f2576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b815160ff166138a5576020828101805160009081526001928390526040908190208551815460ff1990811660ff928316178355935194820194909455908501516002820180546001600160a01b0319166001600160a01b03909216919091179055606085015160038201556080850151600482015560a08501516005909101805460c08701519316919093161768ffffffffffffffff0019166101006001600160401b03909216919091021790556139fc565b815160ff16600114156139af5760006110046001600160a01b03166359b9278984602001516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156138fe57600080fd5b505afa158015613912573d6000803e3d6000fd5b505050506040513d602081101561392857600080fd5b505190506001600160a01b038116156139a95760208301516040805163b99328c560e01b815260048101929092526001600160a01b0383166024830152516110049163b99328c591604480830192600092919082900301818387803b15801561399057600080fd5b505af11580156139a4573d6000803e3d6000fd5b505050505b506139fc565b6040805162461bcd60e51b815260206004820152601960248201527f756e7265636f676e697a65642062696e64207061636b61676500000000000000604482015290519081900360640190fd5b60408051600080825260208201909252905b50949350505050565b600082820183811015610e94576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006008821115613ae957604d60071983011115613acb576040805162461bcd60e51b8152602060048201526012602482015271746f6f206c6172676520646563696d616c7360701b604482015290519081900360640190fd5b613ae2836007198401600a0a63ffffffff613b4216565b90506113eb565b610e94836008849003600a0a63ffffffff614b0416565b6000610e9483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614b5d565b6000610e9483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614bf4565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613b9f5750508351909150613bca906001600160a01b0316614c59565b81600081518110613bd757fe5b6020026020010181905250613bf883602001516001600160a01b0316614c59565b81600181518110613c0557fe5b6020026020010181905250613c20836040015160001c614c7c565b81600281518110613c2d57fe5b6020026020010181905250613c458360600151614c7c565b81600381518110613c5257fe5b6020026020010181905250613c6a8360800151614c7c565b81600481518110613c7757fe5b6020026020010181905250613c988360a001516001600160401b0316614c7c565b81600581518110613ca557fe5b6020026020010181905250610e9481614c8f565b6020015190565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613cfc57600080fd5b505afa158015613d10573d6000803e3d6000fd5b505050506040513d6020811015613d2657600080fd5b5051604080516395d89b4160e01b8152905160ff90921692506060916001600160a01b038616916395d89b41916004808301926000929190829003018186803b158015613d7257600080fd5b505afa158015613d86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613daf57600080fd5b8101908080516040519392919084600160201b821115613dce57600080fd5b908301906020820185811115613de357600080fd5b8251600160201b811182820188101715613dfc57600080fd5b82525081516020918201929091019080838360005b83811015613e29578181015183820152602001613e11565b50505050905090810190601f168015613e565780820380516001836020036101000a031916815260200191505b5060408181526370a0823160e01b82526110046004830152519495506000946001600160a01b038a1694506370a08231935060248083019350602092829003018186803b158015613ea657600080fd5b505afa158015613eba573d6000803e3d6000fd5b505050506040513d6020811015613ed057600080fd5b505160808701516060880151919250600091613ef19163ffffffff613b0016565b9050428760c001516001600160401b03161015613f165750600193506113eb92505050565b613f24838860200151614d19565b613f365750600293506113eb92505050565b80821115613f4c5750600393506113eb92505050565b866060015187604001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8e57600080fd5b505afa158015613fa2573d6000803e3d6000fd5b505050506040513d6020811015613fb857600080fd5b505114613fcd5750600493506113eb92505050565b8660a0015160ff168414613fe95750600593506113eb92505050565b602080880151604080516359b9278960e01b8152600481019290925251600092611004926359b927899260248083019392829003018186803b15801561402e57600080fd5b505afa158015614042573d6000803e3d6000fd5b505050506040513d602081101561405857600080fd5b50516001600160a01b03161415806140fa57506000801b6110046001600160a01b031663bd46646189604001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156140cb57600080fd5b505afa1580156140df573d6000803e3d6000fd5b505050506040513d60208110156140f557600080fd5b505114155b1561410d5750600693506113eb92505050565b5060009695505050505050565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081614133575050835190915061415b9063ffffffff16614c7c565b8160008151811061416857fe5b6020026020010181905250614183836020015160001c614c7c565b81600181518110613ca557fe5b614198615869565b60006141a383614e01565b91509150806141f0576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b03166000908152600290915260409020805460ff1916905560a082015160ff166143515760808201516040516110049180156108fc02916000818181858888f19350505050158015614253573d6000803e3d6000fd5b506110046001600160a01b0316638eff336c8360600151846020015185604001516040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018260ff1681526020019350505050600060405180830381600087803b1580156142cd57600080fd5b505af11580156142e1573d6000803e3d6000fd5b50505050602082810180516001600160a01b03908116600090815260038452604090819020805460ff1916600117905591516060860151835190815292519116927f41787d7db08fc5907641ee8343379f28215727eb123d4b462099afab4300b036928290030190a2505061443a565b815160808301516040516000926001600160a01b0316916127109184818181858888f193505050503d80600081146143a5576040519150601f19603f3d011682016040523d82523d6000602084013e6143aa565b606091505b50509050806143e75760808301516040516110029180156108fc02916000818181858888f193505050501580156143e5573d6000803e3d6000fd5b505b82602001516001600160a01b03167fefe400ad0042ebf81a245de9ae669616105e0ca9fc946352c085da0c2bc524e58460a00151604051808260ff1660ff16815260200191505060405180910390a25050505b50565b614445615935565b600061445083614f0e565b915091508061449d576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b606082015160ff1661451d5760408083015190516110049180156108fc02916000818181858888f193505050501580156144db573d6000803e3d6000fd5b5081602001516001600160a01b03167fbb7d3a9a559080d8281b0e4fb39dacbe2fdcafd5ef765e9a6ed871c9167dc60f60405160405180910390a2505061443a565b81602001516001600160a01b03167ff1e25fa536da84053644fd788b1d6a27ea6edd1f3af80c7d36ca253c4c82c9c38360600151604051808260ff1660ff16815260200191505060405180910390a2815160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d80600081146145c0576040519150601f19603f3d011682016040523d82523d6000602084013e6145c5565b606091505b50509050806146025760408084015190516110029180156108fc02916000818181858888f19350505050158015614600573d6000803e3d6000fd5b505b50505050565b6040805160088082526101208201909252606091829190816020015b6060815260200190600190039081614624575050835190915061464f906001600160a01b0316614c59565b8160008151811061465c57fe5b602002602001018190525061467d83602001516001600160a01b0316614c59565b8160018151811061468a57fe5b60200260200101819052506146a5836040015160001c614c7c565b816002815181106146b257fe5b60200260200101819052506146cd836060015160001c614c7c565b816003815181106146da57fe5b60200260200101819052506146f28360800151614c7c565b816004815181106146ff57fe5b602002602001018190525061471a8360a0015160ff16614c7c565b8160058151811061472757fe5b602002602001018190525061473f8360c00151614c7c565b8160068151811061474c57fe5b602002602001018190525061476d8360e001516001600160401b0316614c7c565b81600781518110613ca557fe5b6147826158f1565b600061478d83614fda565b91509150806147da576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b6020808301516001600160a01b039081166000908152600290925260408220805460ff19169055835160c085015191169061271090614824906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614861576040519150601f19603f3d011682016040523d82523d6000602084013e614866565b606091505b50509050806146025760c0830151611002906108fc90614891906402540be40063ffffffff614b0416565b6040518115909202916000818181858888f19350505050158015614600573d6000803e3d6000fd5b6148c1615869565b60006148cc8361512b565b9150915080614919576040805162461bcd60e51b8152602060048201526014602482015273756e7265636f676e697a6564207061636b61676560601b604482015290519081900360640190fd5b815160808301516000916001600160a01b03169061271090614946906402540be40063ffffffff614b0416565b6040516000818181858888f193505050503d8060008114614983576040519150601f19603f3d011682016040523d82523d6000602084013e614988565b606091505b5050905080614602576080830151611002906108fc90614891906402540be40063ffffffff614b0416565b6149bb61589e565b60006149c561589e565b6149cd61595c565b6149de6149d98661523b565b615260565b90506000805b6149ed836152aa565b15614af75780614a1257614a08614a03846152cb565b615319565b60ff168452614aef565b8060011415614a3157614a27614a03846152cb565b6020850152614aef565b8060021415614a5e57614a4b614a46846152cb565b6153ce565b6001600160a01b03166040850152614aef565b8060031415614a7d57614a73614a03846152cb565b6060850152614aef565b8060041415614a9c57614a92614a03846152cb565b6080850152614aef565b8060051415614abe57614ab1614a03846152cb565b60ff1660a0850152614aef565b8060061415614aea57614ad3614a03846152cb565b6001600160401b031660c085015260019150614aef565b614af7565b6001016149e4565b5091935090915050915091565b600082614b13575060006113eb565b82820282848281614b2057fe5b0414610e945760405162461bcd60e51b8152600401808060200182810382526021815260200180615af46021913960400191505060405180910390fd5b60008184841115614bec5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614bb1578181015183820152602001614b99565b50505050905090810190601f168015614bde5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183614c435760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315614bb1578181015183820152602001614b99565b506000838581614c4f57fe5b0495945050505050565b60408051600560a21b8318601482015260348101909152606090610e94816153e8565b60606113eb614c8a8361543e565b6153e8565b6060815160001415614cb0575060408051600081526020810190915261157f565b606082600081518110614cbf57fe5b602002602001015190506000600190505b8351811015614d0057614cf682858381518110614ce957fe5b6020026020010151615524565b9150600101614cd0565b50610e94614d13825160c060ff166155a1565b82615524565b8151600090839060081080614d2f575080516002115b15614d3e5760009150506113eb565b60408051602080825281830190925260609160208201818036833701905050905083602082015280825181518110614d7257fe5b6020910101516001600160f81b031916602d60f81b14614d97576000925050506113eb565b600160005b8351811015614df757828181518110614db157fe5b602001015160f81c60f81b6001600160f81b031916848281518110614dd257fe5b01602001516001600160f81b03191614614def5760009150614df7565b600101614d9c565b5095945050505050565b614e09615869565b6000614e13615869565b614e1b61595c565b614e276149d98661523b565b90506000805b614e36836152aa565b15614af75780614e5c57614e4c614a46846152cb565b6001600160a01b03168452614f06565b8060011415614e8457614e71614a46846152cb565b6001600160a01b03166020850152614f06565b8060021415614ea657614e99614a03846152cb565b60ff166040850152614f06565b8060031415614ec557614ebb614a03846152cb565b6060850152614f06565b8060041415614ee457614eda614a03846152cb565b6080850152614f06565b8060051415614aea57614ef9614a03846152cb565b60ff1660a0850152600191505b600101614e2d565b614f16615935565b6000614f20615935565b614f2861595c565b614f346149d98661523b565b90506000805b614f43836152aa565b15614af75780614f6957614f59614a46846152cb565b6001600160a01b03168452614fd2565b8060011415614f9157614f7e614a46846152cb565b6001600160a01b03166020850152614fd2565b8060021415614fb057614fa6614a03846152cb565b6040850152614fd2565b8060031415614aea57614fc5614a03846152cb565b60ff166060850152600191505b600101614f3a565b614fe26158f1565b6000614fec6158f1565b614ff461595c565b6150006149d98661523b565b90506000805b61500f836152aa565b15614af7578061503557615025614a46846152cb565b6001600160a01b03168452615123565b806001141561505d5761504a614a46846152cb565b6001600160a01b03166020850152615123565b806002141561507c57615072614a03846152cb565b6040850152615123565b806003141561509b57615091614a03846152cb565b6060850152615123565b80600414156150ba576150b0614a03846152cb565b6080850152615123565b80600514156150dc576150cf614a03846152cb565b60ff1660a0850152615123565b80600614156150fb576150f1614a03846152cb565b60c0850152615123565b8060071415614aea57615110614a03846152cb565b6001600160401b031660e0850152600191505b600101615006565b615133615869565b600061513d615869565b61514561595c565b6151516149d98661523b565b90506000805b615160836152aa565b15614af7578061518657615176614a46846152cb565b6001600160a01b03168452615233565b80600114156151ae5761519b614a46846152cb565b6001600160a01b03166020850152615233565b80600214156151cd576151c3614a03846152cb565b6040850152615233565b80600314156151ec576151e2614a03846152cb565b6060850152615233565b806004141561520b57615201614a03846152cb565b6080850152615233565b8060051415614aea57615220614a03846152cb565b6001600160401b031660a0850152600191505b600101615157565b61524361597c565b506040805180820190915281518152602082810190820152919050565b61526861595c565b61527182615699565b61527a57600080fd5b600061528983602001516156d3565b60208085015160408051808201909152868152920190820152915050919050565b60006152b461597c565b505080518051602091820151919092015191011190565b6152d361597c565b6152dc826152aa565b6152e557600080fd5b602082015160006152f582615736565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061532e57508151602110155b61533757600080fd5b600061534683602001516156d3565b905080836000015110156153a1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613a0e57506020919091036101000a90049392505050565b80516000906015146153df57600080fd5b6113eb82615319565b60608151600114801561541a5750607f60f81b8260008151811061540857fe5b01602001516001600160f81b03191611155b1561542657508061157f565b6113eb6154388351608060ff166155a1565b83615524565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615482575060186154a6565b6fffffffffffffffffffffffffffffffff1984166154a2575060106154a6565b5060005b60208110156154dc578181815181106154bb57fe5b01602001516001600160f81b031916156154d4576154dc565b6001016154a6565b60008160200390506060816040519080825280601f01601f191660200182016040528015615511576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561555557805183526020928301920161553d565b50855184518101855292509050808201602086015b8183101561558257805183526020928301920161556a565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106155f1576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161564b5782840160f81b8160008151811061562d57fe5b60200101906001600160f81b031916908160001a90535090506113eb565b60606156568561543e565b90508381510160370160f81b8260008151811061566f57fe5b60200101906001600160f81b031916908160001a9053506156908282615524565b95945050505050565b80516000906156aa5750600061157f565b6020820151805160001a9060c08210156156c95760009250505061157f565b5060019392505050565b8051600090811a60808110156156ed57600091505061157f565b60b8811080615708575060c08110801590615708575060f881105b1561571757600191505061157f565b60c081101561572b5760b51901905061157f565b60f51901905061157f565b80516000908190811a60808110156157515760019150615862565b60b881101561576657607e1981019150615862565b60c08110156157e057600060b78203600186019550806020036101000a8651049150600181018201935050808310156157da576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615862565b60f88110156157f55760be1981019150615862565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615860576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080518082019091526000808252602082015290565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528061596f61597c565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6d73672e76616c7565206d757374206265204e202a203165313020616e642067726561746572207468616e2073756d206f66206d696e6952656c617946656520616e64206d6972726f724665656f6e6c79206265703230206f776e65722063616e20617070726f766520746869732062696e64207265717565737465787069726554696d65206d7573742062652074776f206d696e75746573206c6174657220616e64206f6e6520646179206561726c69657272656c6179466565206d757374206265204e202a203165313020616e642067726561746572207468616e206d696e6952656c6179466565636f6e74616374206164647265737320646f65736e277420657175616c20746f2074686520636f6e7472616374206164647265737320696e2062696e64207265717565737473796d626f6c2073686f756c64206f6e6c7920636f6e7461696e20616c70686162657420616e64206e756d626572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d73672e76616c7565206d757374206265204e202a203165313020616e64206e6f206c6573732073756d206f66206d696e6952656c617946656520616e642073796e63466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e747261637474686520626570323020746f6b656e20697320696e206d6972726f722070656e64696e6720737461747573a2646970667358221220d5a978e7f66cfd1df68dce9198b278a4a761278f29fe7aab4682c9ea36b909d264736f6c63430006040033", + Code: mirror.ChapelTokenManagerContract, }, { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "60806040526004361061031e5760003560e01c80639a99b4f0116101ab578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610cb3578063fc3e590814610996578063fd6a687914610ce6578063ff9c00271461068657610366565b8063f014847214610c74578063f9a2bbc714610c89578063fa9e915914610c9e57610366565b8063d9e6dae9116100d1578063d9e6dae914610608578063dc927faf14610c35578063e1c7392a14610c4a578063ebf71d5314610c5f57610366565b8063bd46646114610b68578063c81b166214610b9b578063c8509d8114610bb057610366565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610ad2578063b9fd21e314610b0b578063ba35ead614610b20578063bbface1f14610b3557610366565b8063aa7415f5146109ab578063ab51bb96146109f2578063ac43175114610a0757610366565b80639a99b4f0146109095780639dc0926214610942578063a1a11bf514610957578063a496fba21461096c578063a78abc1614610981578063a7c9f02d1461099657610366565b8063613684751161026a57806375d47a0a116102235780638b87b21f116101fd5780638b87b21f146105875780638eff336c146108a057806396713da9146108df5780639a854bbd146108f457610366565b806375d47a0a146107f15780637942fd0514610806578063831d65d11461081b57610366565b8063613684751461060857806366dea52a146106865780636e0565201461069b5780636e47b482146107c757806370fd5bad1461068657806371d30863146107dc57610366565b806343a368b9116102d757806350432d32116102b157806350432d321461061d57806351e806721461063257806359b92789146106475780635d499b1b1461067157610366565b806343a368b9146105c7578063493279b1146105dc5780634bf6c8821461060857610366565b80630bee7a671461036b5780631182b87514610399578063149d14d9146104935780633d713223146104ba5780633dffc3871461058757806343756e5c146105b257610366565b36610366573415610364576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561037757600080fd5b50610380610cfb565b6040805163ffffffff9092168252519081900360200190f35b3480156103a557600080fd5b5061041e600480360360408110156103bc57600080fd5b60ff8235169190810190604081016020820135600160201b8111156103e057600080fd5b8201836020820111156103f257600080fd5b803590602001918460018302840111600160201b8311171561041357600080fd5b509092509050610d00565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610458578181015183820152602001610440565b50505050905090810190601f1680156104855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561049f57600080fd5b506104a8610e2e565b60408051918252519081900360200190f35b3480156104c657600080fd5b5061056b600480360360208110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e34945050505050565b604080516001600160a01b039092168252519081900360200190f35b34801561059357600080fd5b5061059c610e58565b6040805160ff9092168252519081900360200190f35b3480156105be57600080fd5b5061056b610e5d565b3480156105d357600080fd5b506104a8610e63565b3480156105e857600080fd5b506105f1610e6f565b6040805161ffff9092168252519081900360200190f35b34801561061457600080fd5b5061059c610e74565b34801561062957600080fd5b506104a8610e79565b34801561063e57600080fd5b5061056b610e84565b34801561065357600080fd5b5061056b6004803603602081101561066a57600080fd5b5035610e8a565b34801561067d57600080fd5b506104a8610ea5565b34801561069257600080fd5b5061059c610eae565b6107b3600480360360808110156106b157600080fd5b810190602081018135600160201b8111156106cb57600080fd5b8201836020820111156106dd57600080fd5b803590602001918460208302840111600160201b831117156106fe57600080fd5b919390929091602081019035600160201b81111561071b57600080fd5b82018360208201111561072d57600080fd5b803590602001918460208302840111600160201b8311171561074e57600080fd5b919390929091602081019035600160201b81111561076b57600080fd5b82018360208201111561077d57600080fd5b803590602001918460208302840111600160201b8311171561079e57600080fd5b91935091503567ffffffffffffffff16610eb3565b604080519115158252519081900360200190f35b3480156107d357600080fd5b5061056b611388565b3480156107e857600080fd5b506104a861138e565b3480156107fd57600080fd5b5061056b611394565b34801561081257600080fd5b5061059c61139a565b34801561082757600080fd5b506103646004803603604081101561083e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561086257600080fd5b82018360208201111561087457600080fd5b803590602001918460018302840111600160201b8311171561089557600080fd5b50909250905061139f565b3480156108ac57600080fd5b50610364600480360360608110156108c357600080fd5b508035906001600160a01b0360208201351690604001356114e8565b3480156108eb57600080fd5b5061059c61156e565b34801561090057600080fd5b506104a8611573565b34801561091557600080fd5b506104a86004803603604081101561092c57600080fd5b506001600160a01b03813516906020013561157f565b34801561094e57600080fd5b5061056b6116bd565b34801561096357600080fd5b5061056b6116c3565b34801561097857600080fd5b5061059c6116c9565b34801561098d57600080fd5b506107b36116ce565b3480156109a257600080fd5b5061059c6116d7565b6107b3600480360360808110156109c157600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166116dc565b3480156109fe57600080fd5b506103806116c9565b348015610a1357600080fd5b5061036460048036036040811015610a2a57600080fd5b810190602081018135600160201b811115610a4457600080fd5b820183602082011115610a5657600080fd5b803590602001918460018302840111600160201b83111715610a7757600080fd5b919390929091602081019035600160201b811115610a9457600080fd5b820183602082011115610aa657600080fd5b803590602001918460018302840111600160201b83111715610ac757600080fd5b509092509050611d9d565b348015610ade57600080fd5b5061036460048036036040811015610af557600080fd5b50803590602001356001600160a01b031661200c565b348015610b1757600080fd5b506104a8612082565b348015610b2c57600080fd5b506104a861208c565b348015610b4157600080fd5b506104a860048036036020811015610b5857600080fd5b50356001600160a01b0316612092565b348015610b7457600080fd5b506104a860048036036020811015610b8b57600080fd5b50356001600160a01b03166120a4565b348015610ba757600080fd5b5061056b6120bf565b348015610bbc57600080fd5b5061036460048036036040811015610bd357600080fd5b60ff8235169190810190604081016020820135600160201b811115610bf757600080fd5b820183602082011115610c0957600080fd5b803590602001918460018302840111600160201b83111715610c2a57600080fd5b5090925090506120c5565b348015610c4157600080fd5b5061056b612195565b348015610c5657600080fd5b5061036461219b565b348015610c6b57600080fd5b5061059c61223b565b348015610c8057600080fd5b5061059c612240565b348015610c9557600080fd5b5061056b612245565b348015610caa57600080fd5b506104a861224b565b348015610cbf57600080fd5b5061041e60048036036020811015610cd657600080fd5b50356001600160a01b0316612251565b348015610cf257600080fd5b5061056b612378565b606481565b60005460609060ff16610d48576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b3361200014610d885760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff841660021415610dda57610dd383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061237e92505050565b9050610e27565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610ef9576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b868514610f375760405162461bcd60e51b815260040180806020018281038252603b81526020018061471b603b913960400191505060405180910390fd5b868314610f755760405162461bcd60e51b815260040180806020018281038252603f8152602001806145ee603f913960400191505060405180910390fd5b426078018267ffffffffffffffff161015610fc15760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156110055760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b60408051868152602080880282010190915285906000908190606090848015611038578160200160208202803683370190505b50905060005b84811015611113576402540be4008b8b8381811061105857fe5b905060200201358161106657fe5b06156110a35760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6110c88b8b838181106110b257fe5b90506020020135856124a290919063ffffffff16565b93506110f46402540be4008c8c848181106110df57fe5b905060200201356124fc90919063ffffffff16565b82828151811061110057fe5b602090810291909101015260010161103e565b506001546111389061112b908663ffffffff61253e16565b849063ffffffff6124a216565b3410156111765760405162461bcd60e51b81526004018080602001828103825260568152602001806147c86056913960600191505060405180910390fd5b611186348463ffffffff61259716565b9150611190614337565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d76003611254846125d9565b611269876402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156112c75781810151838201526020016112af565b50505050905090810190601f1680156112f45780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561131557600080fd5b505af1158015611329573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b60015481565b61100881565b600b81565b60005460ff166113e4576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33612000146114245760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061289492505050565b6114e3565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146115285760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166115c5576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b33611005146116055760405162461bcd60e51b815260040180806020018281038252602f815260200180614451602f913960400191505060405180910390fd5b60004783106116145747611616565b825b9050670de0b6b3a76400008111156116325760009150506116b7565b80156116b4576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561166e573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611722576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561176e5760405162461bcd60e51b81526004018080602001828103825260248152602001806144de6024913960400191505060405180910390fd5b6402540be4003406156117b25760405162461bcd60e51b815260040180806020018281038252604081526020018061481e6040913960400191505060405180910390fd5b600080806001600160a01b038816611891576001546117d890879063ffffffff6124a216565b3410156118165760405162461bcd60e51b81526004018080602001828103825260618152602001806145686061913960800191505060405180910390fd5b6402540be40086061561185a5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b61186a348763ffffffff61259716565b9050611881866402540be40063ffffffff6124fc16565b6221272160e91b93509150611b34565b6001600160a01b0388166000908152600360205260409020549250826118e85760405162461bcd60e51b81526004018080602001828103825260318152602001806145376031913960400191505060405180910390fd5b6001543410156119295760405162461bcd60e51b815260040180806020018281038252603f81526020018061468a603f913960400191505060405180910390fd5b506001600160a01b038716600090815260026020526040902054349060088111158061197457506008811180156119745750611972876007198301600a0a63ffffffff6128f016565b155b6119af5760405162461bcd60e51b815260040180806020018281038252603c81526020018061462d603c913960400191505060405180910390fd5b6119b98782612932565b92506119c484612972565b15611a0c576305f5e100831015611a0c5760405162461bcd60e51b815260040180806020018281038252603a815260200180614480603a913960400191505060405180910390fd5b600881101580611a265750600881108015611a2657508683115b611a615760405162461bcd60e51b81526004018080602001828103825260258152602001806145c96025913960400191505060405180910390fd5b677ce66c50e2840000831115611aa85760405162461bcd60e51b81526004018080602001828103825260358152602001806145026035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b5051611b3257600080fd5b505b611b3c614337565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611bea57fe5b602002602001018181525050878160600151600081518110611c0857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611c3a57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611c65846125d9565b611c7a866402540be40063ffffffff6124fc16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611cd8578181015183820152602001611cc0565b50505050905090810190601f168015611d055780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611d2657600080fd5b505af1158015611d3a573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611ddd5760405162461bcd60e51b815260040180806020018281038252602e8152602001806146c9602e913960400191505060405180910390fd5b60208114611e32576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415611f3a576020820151670de0b6b3a76400008111801590611ee157506402540be4008106155b611f32576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155611f77565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461204c5760405162461bcd60e51b81526004018080602001828103825260238152602001806147856023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661210a576040805162461bcd60e51b815260206004820152601960248201526000805160206147a8833981519152604482015290519081900360640190fd5b336120001461214a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614756602f913960400191505060405180910390fd5b60ff8316600314156114745761146f82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612a7892505050565b61100381565b60005460ff16156121f3576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff1610156122e157828160ff16815181106122b557fe5b01602001516001600160f81b031916156122d4576001909101906122d9565b6122e1565b60010161229a565b5060608160ff166040519080825280601f01601f191660200182016040528015612312576020820181803683370190505b50905060005b8260ff168160ff16101561236e57838160ff168151811061233557fe5b602001015160f81c60f81b828260ff168151811061234f57fe5b60200101906001600160f81b031916908160001a905350600101612318565b5095945050505050565b61100481565b6060612388614383565b600061239384612b76565b91509150806123e9576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b60006123f483612cb5565b905063ffffffff811615612488576040808401516020808601516001600160a01b0316600090815260029091529182205461242f9190612932565b90506124396143b8565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061247c81613002565b95505050505050610e53565b50506040805160008152602081019091529150610e539050565b6000828201838110156116b4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006116b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130de565b60008261254d575060006116b7565b8282028284828161255a57fe5b04146116b45760405162461bcd60e51b81526004018080602001828103825260218152602001806146696021913960400191505060405180910390fd5b60006116b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613180565b60408051600680825260e08201909252606091829190816020015b60608152602001906001900390816125f45750508351909150612616906131da565b8160008151811061262357fe5b602002602001018190525061264483602001516001600160a01b03166131ed565b8160018151811061265157fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b828110156126e9576126ca866040015182815181106126bd57fe5b60200260200101516131da565b8282815181106126d657fe5b60209081029190910101526001016126a2565b506126f381613210565b8360028151811061270057fe5b602002602001018190525060608260405190808252806020026020018201604052801561274157816020015b606081526020019060019003908161272c5790505b50905060005b83811015612797576127788760600151828151811061276257fe5b60200260200101516001600160a01b03166131ed565b82828151811061278457fe5b6020908102919091010152600101612747565b506127a181613210565b846003815181106127ae57fe5b60200260200101819052506060836040519080825280602002602001820160405280156127ef57816020015b60608152602001906001900390816127da5790505b50905060005b8481101561282f576128108860800151828151811061276257fe5b82828151811061281c57fe5b60209081029190910101526001016127f5565b5061283981613210565b8560048151811061284657fe5b60200260200101819052506128688760a0015167ffffffffffffffff166131da565b8560058151811061287557fe5b602002602001018190525061288985613210565b979650505050505050565b61289c6143df565b60006128a78361329a565b91509150806128e75760405162461bcd60e51b81526004018080602001828103825260248152602001806146f76024913960400191505060405180910390fd5b6114e382613465565b60006116b483836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506138e9565b6000600882111561295b57612954836007198401600a0a63ffffffff6124fc16565b90506116b7565b6116b4836008849003600a0a63ffffffff61253e16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156129e857828160ff16815181106129bc57fe5b01602001516001600160f81b031916156129db576001909101906129e0565b6129e8565b6001016129a1565b50600760ff82161015612a0057600092505050610e53565b816005820360ff1681518110612a1257fe5b6020910101516001600160f81b031916602d60f81b14612a3757600092505050610e53565b816001820360ff1681518110612a4957fe5b6020910101516001600160f81b031916604d60f81b14612a6e57600092505050610e53565b5060019392505050565b612a80614337565b6000612a8b8361394b565b9150915080612acb5760405162461bcd60e51b81526004018080602001828103825260248152602001806144ba6024913960400191505060405180910390fd5b612ad36143df565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612b5457612b3185604001518281518110612b2357fe5b602002602001015183613baf565b85604001518281518110612b4157fe5b6020908102919091010152600101612b03565b506080840151604083015260056060830152612b6f82613465565b5050505050565b612b7e614383565b6000612b88614383565b612b90614416565b612ba1612b9c86613be8565b613c0d565b90506000805b612bb083613c57565b15612ca85780612bd257612bcb612bc684613c78565b613cc6565b8452612ca0565b8060011415612bff57612bec612be784613c78565b613d7d565b6001600160a01b03166020850152612ca0565b8060021415612c1e57612c14612bc684613c78565b6040850152612ca0565b8060031415612c4657612c33612be784613c78565b6001600160a01b03166060850152612ca0565b8060041415612c6e57612c5b612be784613c78565b6001600160a01b03166080850152612ca0565b8060051415612c9b57612c83612bc684613c78565b67ffffffffffffffff1660a085015260019150612ca0565b612ca8565b600101612ba7565b5091935090915050915091565b60208101516000906001600160a01b0316612dec578160a0015167ffffffffffffffff16421115612ce857506001610e53565b8160400151471015612cfc57506003610e53565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612d53576040519150601f19603f3d011682016040523d82523d6000602084013e612d58565b606091505b5050905080612d6b575060049050610e53565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610e53565b8160a0015167ffffffffffffffff16421115612e0a57506001610e53565b81516020808401516001600160a01b031660009081526003909152604090205414612e3757506002610e53565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612e8757600080fd5b5086fa158015612e9b573d6000803e3d6000fd5b50505050506040513d6020811015612eb257600080fd5b50516040840151909150811015612ecd575060039050610e53565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612f3e57600080fd5b5087f1158015612f52573d6000803e3d6000fd5b50505050506040513d6020811015612f6957600080fd5b505190508015612ff6577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610e539050565b5060059150610e539050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161301d575050835190915061303f906131da565b8160008151811061304c57fe5b602002602001018190525061306483602001516131da565b8160018151811061307157fe5b602002602001018190525061309283604001516001600160a01b03166131ed565b8160028151811061309f57fe5b60200260200101819052506130bd836060015163ffffffff166131da565b816003815181106130ca57fe5b6020026020010181905250610e2781613210565b6000818361316a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561312f578181015183820152602001613117565b50505050905090810190601f16801561315c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161317657fe5b0495945050505050565b600081848411156131d25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b505050900390565b60606116b76131e883613d97565b613e7d565b60408051600560a21b8318601482015260348101909152606090610e2781613e7d565b60608151600014156132315750604080516000815260208101909152610e53565b60608260008151811061324057fe5b602002602001015190506000600190505b8351811015613281576132778285838151811061326a57fe5b6020026020010151613ecf565b9150600101613251565b50610e27613294825160c060ff16613f4c565b82613ecf565b6132a26143df565b60006132ac6143df565b6132b4614416565b6132c0612b9c86613be8565b90506000805b6132cf83613c57565b15612ca857806132f5576132e5612be784613c78565b6001600160a01b0316845261345d565b806001141561339657606061331161330c85613c78565b614044565b9050805160405190808252806020026020018201604052801561333e578160200160208202803683370190505b50602086015260005b815181101561338f5761336c82828151811061335f57fe5b6020026020010151613cc6565b8660200151828151811061337c57fe5b6020908102919091010152600101613347565b505061345d565b80600214156134385760606133ad61330c85613c78565b905080516040519080825280602002602001820160405280156133da578160200160208202803683370190505b50604086015260005b815181101561338f576134088282815181106133fb57fe5b6020026020010151613d7d565b8660400151828151811061341857fe5b6001600160a01b03909216602092830291909101909101526001016133e3565b8060031415612c9b5761344d612bc684613c78565b63ffffffff166060850152600191505b6001016132c6565b80516001600160a01b031661368f5760005b8160200151518110156136895760008260400151828151811061349657fe5b60200260200101516001600160a01b0316612710846020015184815181106134ba57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613502576040519150601f19603f3d011682016040523d82523d6000602084013e613507565b606091505b50509050806135ca577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061354657fe5b60200260200101518560200151858151811061355e57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613680565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061360057fe5b60200260200101518560200151858151811061361857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613477565b506138e6565b60005b8160200151518110156138e457600082600001516001600160a01b031663a9059cbb61c350856040015185815181106136c757fe5b6020026020010151866020015186815181106136df57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561373657600080fd5b5087f115801561374a573d6000803e3d6000fd5b50505050506040513d602081101561376157600080fd5b505190508015613825577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106137a157fe5b6020026020010151856020015185815181106137b957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16138db565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061385b57fe5b60200260200101518560200151858151811061387357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101613692565b505b50565b600081836139385760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561312f578181015183820152602001613117565b5082848161394257fe5b06949350505050565b613953614337565b600061395d614337565b613965614416565b613971612b9c86613be8565b90506000805b61398083613c57565b15612ca8578061399d57613996612bc684613c78565b8452613ba7565b80600114156139c5576139b2612be784613c78565b6001600160a01b03166020850152613ba7565b8060021415613a545760606139dc61330c85613c78565b90508051604051908082528060200260200182016040528015613a09578160200160208202803683370190505b50604086015260005b8151811015613a4d57613a2a82828151811061335f57fe5b86604001518281518110613a3a57fe5b6020908102919091010152600101613a12565b5050613ba7565b8060031415613ae9576060613a6b61330c85613c78565b90508051604051908082528060200260200182016040528015613a98578160200160208202803683370190505b50606086015260005b8151811015613a4d57613ab98282815181106133fb57fe5b86606001518281518110613ac957fe5b6001600160a01b0390921660209283029190910190910152600101613aa1565b8060041415613b7e576060613b0061330c85613c78565b90508051604051908082528060200260200182016040528015613b2d578160200160208202803683370190505b50608086015260005b8151811015613a4d57613b4e8282815181106133fb57fe5b86608001518281518110613b5e57fe5b6001600160a01b0390921660209283029190910190910152600101613b36565b8060051415612c9b57613b93612bc684613c78565b67ffffffffffffffff1660a0850152600191505b600101613977565b60006008821115613bd157612954836007198401600a0a63ffffffff61253e16565b6116b4836008849003600a0a63ffffffff6124fc16565b613bf0614436565b506040805180820190915281518152602082810190820152919050565b613c15614416565b613c1e82614115565b613c2757600080fd5b6000613c368360200151614145565b60208085015160408051808201909152868152920190820152915050919050565b6000613c61614436565b505080518051602091820151919092015191011190565b613c80614436565b613c8982613c57565b613c9257600080fd5b60208201516000613ca2826141a8565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613cdb57508151602110155b613ce457600080fd5b6000613cf38360200151614145565b90508083600001511015613d4e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613d7457826020036101000a820491505b50949350505050565b8051600090601514613d8e57600080fd5b6116b782613cc6565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613ddb57506018613dff565b6fffffffffffffffffffffffffffffffff198416613dfb57506010613dff565b5060005b6020811015613e3557818181518110613e1457fe5b01602001516001600160f81b03191615613e2d57613e35565b600101613dff565b60008160200390506060816040519080825280601f01601f191660200182016040528015613e6a576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613eaf5750607f60f81b82600081518110613e9d57fe5b01602001516001600160f81b03191611155b15613ebb575080610e53565b6116b7613ecd8351608060ff16613f4c565b835b6060806040519050835180825260208201818101602087015b81831015613f00578051835260209283019201613ee8565b50855184518101855292509050808201602086015b81831015613f2d578051835260209283019201613f15565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310613f9c576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411613ff65782840160f81b81600081518110613fd857fe5b60200101906001600160f81b031916908160001a90535090506116b7565b606061400185613d97565b90508381510160370160f81b8260008151811061401a57fe5b60200101906001600160f81b031916908160001a90535061403b8282613ecf565b95945050505050565b606061404f82614115565b61405857600080fd5b6000614063836142db565b90506060816040519080825280602002602001820160405280156140a157816020015b61408e614436565b8152602001906001900390816140865790505b50905060006140b38560200151614145565b60208601510190506000805b8481101561410a576140d0836141a8565b91506040518060400160405280838152602001848152508482815181106140f357fe5b6020908102919091010152918101916001016140bf565b509195945050505050565b805160009061412657506000610e53565b6020820151805160001a9060c0821015612a6e57600092505050610e53565b8051600090811a608081101561415f576000915050610e53565b60b881108061417a575060c0811080159061417a575060f881105b15614189576001915050610e53565b60c081101561419d5760b519019050610e53565b60f519019050610e53565b80516000908190811a60808110156141c357600191506142d4565b60b88110156141d857607e19810191506142d4565b60c081101561425257600060b78203600186019550806020036101000a86510491506001810182019350508083101561424c576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142d4565b60f88110156142675760be19810191506142d4565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142d2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906142ec57506000610e53565b600080905060006143008460200151614145565b602085015185519181019250015b8082101561432e5761431f826141a8565b6001909301929091019061430e565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614429614436565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220835eacc2107a8d1718a0f05e56e1f7d7731256afbbcfccbe6551048c3c72819b64736f6c63430006040033", + Code: mirror.ChapelTokenHubContract, }, { ContractAddr: common.HexToAddress(RelayerIncentivizeContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/af4f3993303213052222f55c721e661862d19638", - Code: "6080604052600436106102815760003560e01c8063930e1b091161014f578063bd4cc830116100c1578063e75d72c71161007a578063e75d72c7146107b5578063e89a3020146107e8578063f9a2bbc714610812578063fc3e590814610827578063fd6a68791461083c578063fdd31fcd1461085157610288565b8063bd4cc83014610722578063c81b16621461074c578063d0ab528a14610761578063dc927faf14610776578063dcae76ab1461078b578063e1c7392a146107a057610288565b8063a78abc1611610113578063a78abc16146105d3578063a7c6a59d146105e8578063ab51bb96146105fd578063ac43175114610612578063ace9fcc2146106e3578063af400681146106f857610288565b8063930e1b091461054c57806396713da91461057f5780639dc0926214610594578063a1a11bf5146105a9578063a3c3c0ad146105be57610288565b806343756e5c116101f35780636f93d2e6116101ac5780636f93d2e61461048457806370fd5bad146104e357806374f2272d146104f857806375d47a0a1461050d5780637942fd05146105225780637e146cc51461053757610288565b806343756e5c146103ef578063493279b1146104045780634bf6c8821461043057806351e8067214610445578063541333071461045a5780636e47b4821461046f57610288565b806312950c461161024557806312950c46146103215780631b20087c146103365780631c6433121461034b5780633a9756121461028d5780633dffc3871461039157806340bb43c0146103bc57610288565b8063081e9d131461028d57806308f2ec06146102b4578063093f2fc4146102c95780630bee7a67146102de57806310e06a761461030c57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610884565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102a2610889565b3480156102d557600080fd5b506102a261088e565b3480156102ea57600080fd5b506102f3610893565b6040805163ffffffff9092168252519081900360200190f35b34801561031857600080fd5b506102a2610898565b34801561032d57600080fd5b506102a261089e565b34801561034257600080fd5b506102a26108a4565b34801561035757600080fd5b506103756004803603602081101561036e57600080fd5b50356108aa565b604080516001600160a01b039092168252519081900360200190f35b34801561039d57600080fd5b506103a6610884565b6040805160ff9092168252519081900360200190f35b3480156103c857600080fd5b506102a2600480360360208110156103df57600080fd5b50356001600160a01b03166108d1565b3480156103fb57600080fd5b506103756108e3565b34801561041057600080fd5b506104196108e9565b6040805161ffff9092168252519081900360200190f35b34801561043c57600080fd5b506103a66108ee565b34801561045157600080fd5b506103756108f3565b34801561046657600080fd5b506102a2610893565b34801561047b57600080fd5b506103756108f9565b34801561049057600080fd5b506104cf600480360360808110156104a757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156108ff565b604080519115158252519081900360200190f35b3480156104ef57600080fd5b506103a6610d91565b34801561050457600080fd5b506102a2610d96565b34801561051957600080fd5b50610375610d9c565b34801561052e57600080fd5b506103a6610da2565b34801561054357600080fd5b506102a2610da7565b34801561055857600080fd5b506102a26004803603602081101561056f57600080fd5b50356001600160a01b0316610dac565b34801561058b57600080fd5b506103a6610dbe565b3480156105a057600080fd5b50610375610dc3565b3480156105b557600080fd5b50610375610dc9565b3480156105ca57600080fd5b506102a2610dcf565b3480156105df57600080fd5b506104cf610dd5565b3480156105f457600080fd5b506102a2610dde565b34801561060957600080fd5b506102f3610de4565b34801561061e57600080fd5b506106e16004803603604081101561063557600080fd5b81019060208101813564010000000081111561065057600080fd5b82018360208201111561066257600080fd5b8035906020019184600183028401116401000000008311171561068457600080fd5b9193909290916020810190356401000000008111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111640100000000831117156106d657600080fd5b509092509050610de9565b005b3480156106ef57600080fd5b506102a2611537565b34801561070457600080fd5b506102a26004803603602081101561071b57600080fd5b503561153d565b34801561072e57600080fd5b506102a26004803603602081101561074557600080fd5b5035611598565b34801561075857600080fd5b506103756115b1565b34801561076d57600080fd5b506102a26115b7565b34801561078257600080fd5b506103756115bd565b34801561079757600080fd5b506102a26115c3565b3480156107ac57600080fd5b506106e16115c9565b3480156107c157600080fd5b506106e1600480360360208110156107d857600080fd5b50356001600160a01b0316611692565b3480156107f457600080fd5b506103756004803603602081101561080b57600080fd5b50356117eb565b34801561081e57600080fd5b506103756117f8565b34801561083357600080fd5b506103a66117fe565b34801561084857600080fd5b50610375611803565b34801561085d57600080fd5b506102a26004803603602081101561087457600080fd5b50356001600160a01b0316611809565b600181565b602881565b605081565b606481565b600b5481565b60015481565b600c5481565b600681815481106108b757fe5b6000918252602090912001546001600160a01b0316905081565b60076020526000908152604090205481565b61100181565b606181565b600881565b61200081565b61100581565b6000805460ff16610957576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33612000146109975760405162461bcd60e51b815260040180806020018281038252602f815260200180612377602f913960400191505060405180910390fd5b60008215610a4a576110026001600160a01b0316639a99b4f06110056109c8600e548861181b90919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b50519050610b59565b604080516309a99b4f60e41b8152611005600482015260248101869052905161100491639a99b4f09160448083019260209291908290030181600087803b158015610a9457600080fd5b505af1158015610aa8573d6000803e3d6000fd5b505050506040513d6020811015610abe57600080fd5b5051600e5490915015610b5957600e54604080516309a99b4f60e41b81526110056004820152602481019290925251610b569161100291639a99b4f0916044808201926020929091908290030181600087803b158015610b1d57600080fd5b505af1158015610b31573d6000803e3d6000fd5b505050506040513d6020811015610b4757600080fd5b5051829063ffffffff61181b16565b90505b600c805460010190556000610b6d8261187e565b600954909150610b83908263ffffffff61181b16565b600955600a54610bab908290610b9f908563ffffffff61181b16565b9063ffffffff6118a716565b600a556001600160a01b038716600090815260056020526040902054610c1757600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038088166000908152600560209081526040808320805460010190559289168252600790522054610c9557600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b038616600090815260076020526040902080546001019055600c54606411610d8457600b54600954600a5460408051938452602084019290925282820152517f2649b1b772a1a74bd332a67695e285317dd722941166595741c60a00fa65bb759181900360600190a16000610d0f6118e9565b90506000610d1b611bcd565b6001600160a01b0389166000908152600d6020526040902054909150610d59908290610d4d908563ffffffff61181b16565b9063ffffffff61181b16565b6001600160a01b0389166000908152600d6020526040812091909155600b80546001019055600c5550505b5060019695505050505050565b600281565b60035481565b61100881565b600b81565b600581565b60056020526000908152604090205481565b600981565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b600081565b3361100714610e295760405162461bcd60e51b815260040180806020018281038252602e8152602001806122bc602e913960400191505060405180910390fd5b60005460ff16610e6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122ea6021913960400191505060405180910390fd5b610ede84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601f81527f68656164657252656c61796572526577617264526174654d6f6c6563756c650060208201529150611e4b9050565b15610fab5760208114610f225760405162461bcd60e51b81526004018080602001828103825260328152602001806123a66032913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610f6091858580838501838280828437600092019190915250611f3292505050565b9050600254811115610fa35760405162461bcd60e51b81526004018080602001828103825260608152602001806121956060913960600191505060405180910390fd5b6001556114a5565b61100484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081019091526022808252909250905061229a6020830139611e4b565b156110dc57602081146110485760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161108691858580838501838280828437600092019190915250611f3292505050565b9050801580159061109957506001548110155b6110d45760405162461bcd60e51b815260040180806020018281038252606c81526020018061230b606c913960800191505060405180910390fd5b6002556114a5565b61115084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601a81527f63616c6c6572436f6d70656e736174696f6e4d6f6c6563756c6500000000000060208201529150611e4b9050565b1561121d57602081146111945760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916111d291858580838501838280828437600092019190915250611f3292505050565b90506004548111156112155760405162461bcd60e51b81526004018080602001828103825260568152602001806121f56056913960600191505060405180910390fd5b6003556114a5565b61129184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601d81527f63616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f7200000060208201529150611e4b9050565b1561136957602081146112d55760405162461bcd60e51b815260040180806020018281038252602e81526020018061224b602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161131391858580838501838280828437600092019190915250611f3292505050565b9050801580159061132657506003548110155b6113615760405162461bcd60e51b81526004018080602001828103825260618152602001806121066061913960800191505060405180910390fd5b6004556114a5565b6113dd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f64796e616d69634578747261496e63656e74697665416d6f756e74000000000060208201529150611e4b9050565b1561146857602081146114215760405162461bcd60e51b815260040180806020018281038252602e815260200180612167602e913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161145f91858580838501838280828437600092019190915250611f3292505050565b600e55506114a5565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60025481565b60006028821161154e575080611593565b81602810801561155f575060508211155b1561156c57506028611593565b60508211801561157d5750606e8211155b1561158d57506078819003611593565b50600481045b919050565b6000602882116115a9575080611593565b506028611593565b61100281565b600e5481565b61100381565b60095481565b60005460ff1615611621576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff161561166f576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b6001600160a01b0381166000908152600d6020526040902054806116f1576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c995b185e595c881c995dd85c99607a1b604482015290519081900360640190fd5b6001600160a01b0382166000818152600d60205260408082208290555184929184156108fc02918591818181858888f193505050506117a15760405161100290819084156108fc029085906000818181858888f1935050505015801561175b573d6000803e3d6000fd5b506040805161100281526020810185905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a15050506117e8565b604080516001600160a01b03851681526020810184905281517f24502838a334c8f2bb2ee1f8262a4fa7183e4489a717e96cc824e325f8b39e11929181900390910190a150505b50565b600881815481106108b757fe5b61100081565b600381565b61100481565b600d6020526000908152604090205481565b600082820183811015611875576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061187860025461189b60015485611f3790919063ffffffff16565b9063ffffffff611f9016565b600061187583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd2565b600954600680546040805160208084028201810190925282815260009493859360609383018282801561194557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611927575b5050505050905060608151604051908082528060200260200182016040528015611979578160200160208202803683370190505b50905060005b8251811015611a0657600083828151811061199657fe5b6020026020010151905060006119d060056000846001600160a01b03166001600160a01b0316815260200190815260200160002054611598565b9050808484815181106119df57fe5b60209081029190910101526119fa868263ffffffff61181b16565b9550505060010161197f565b506000611a2460045461189b60035488611f3790919063ffffffff16565b9050611a36858263ffffffff6118a716565b94508460015b8451811015611b0d576000611a718761189b8a888681518110611a5b57fe5b6020026020010151611f3790919063ffffffff16565b9050611abe81600d6000898681518110611a8757fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461181b90919063ffffffff16565b600d6000888581518110611ace57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611b02838263ffffffff6118a716565b925050600101611a3c565b50611b2381600d600087600081518110611a8757fe5b600d600086600081518110611b3457fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060098190555060008090505b8451811015611bb55760056000868381518110611b8757fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611b6e565b50611bc2600660006120ce565b509450505050505b90565b600a546008805460408051602080840282018101909252828152600094938593606093830182828015611c2957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c0b575b5050505050905060608151604051908082528060200260200182016040528015611c5d578160200160208202803683370190505b50905060005b8251811015611cdc576000838281518110611c7a57fe5b602002602001015190506000611cb460076000846001600160a01b03166001600160a01b031681526020019081526020016000205461153d565b905080848481518110611cc357fe5b6020908102919091010152949094019350600101611c63565b506000611cfa60045461189b60035488611f3790919063ffffffff16565b9050611d0c858263ffffffff6118a716565b94508460015b8451811015611d96576000611d318761189b8a888681518110611a5b57fe5b9050611d4781600d6000898681518110611a8757fe5b600d6000888581518110611d5757fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055611d8b838263ffffffff6118a716565b925050600101611d12565b50611dac81600d600087600081518110611a8757fe5b600d600086600081518110611dbd57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506000600a8190555060008090505b8451811015611e3e5760076000868381518110611e1057fe5b6020908102919091018101516001600160a01b03168252810191909152604001600090812055600101611df7565b50611bc2600860006120ce565b6000816040516020018082805190602001908083835b60208310611e805780518252601f199092019160209182019101611e61565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611eee5780518252601f199092019160209182019101611ecf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b600082611f4657506000611878565b82820282848281611f5357fe5b04146118755760405162461bcd60e51b81526004018080602001828103825260218152602001806122796021913960400191505060405180910390fd5b600061187583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612069565b600081848411156120615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202657818101518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836120b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561202657818101518382015260200161200e565b5060008385816120c457fe5b0495945050505050565b50805460008255906000526020600020908101906117e89190611bca91905b8082111561210157600081556001016120ed565b509056fe746865206e657743616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c656c656e677468206f662064796e616d69634578747261496e63656e74697665416d6f756e74206d69736d617463686e65772068656164657252656c61796572526577617264526174654d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2068656164657252656c617965725265776172645261746544656e6f6d696e61746f726e65772063616c6c6572436f6d70656e736174696f6e4d6f6c6563756c652073686f756c646e27742062652067726561746572207468616e2063616c6c6572436f6d70656e736174696f6e44656e6f6d696e61746f726c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7768656164657252656c617965725265776172645261746544656e6f6d696e61746f72746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374636f6e747261637420686173206e6f74206265656e20696e697469616c697a6564746865206e65772068656164657252656c617965725265776172645261746544656e6f6d696e61746f72206d757374206e6f74206265207a65726f20616e64206e6f206c657373207468616e2068656164657252656c61796572526577617264526174654d6f6c6563756c65746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163746c656e677468206f662068656164657252656c61796572526577617264526174654d6f6c6563756c65206d69736d61746368a2646970667358221220627dba6e536686005f0eaa9f77c130ba330278d37049b690a78442862109871c64736f6c63430006040033", + Code: mirror.ChapelRelayerIncentivizeContract, }, }, } @@ -229,7 +243,7 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ce622fef469d84ee418fa6181f3ac962412a5f4f", - Code: "6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a54578063fc3e590814610a69578063fccc281314610a7e578063fd6a687914610a93576102e4565b8063eb57e202146109e6578063eda5868c14610a19578063f340fa0114610a2e576102e4565b8063c8509d81146106d8578063d86222d51461097d578063daacdb6614610992578063dc927faf146109a7578063e086c7b1146109bc578063e1c7392a146109d1576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108d0578063b7ab4db514610903578063bf9f4995146104c0578063c81b166214610968576102e4565b8063aaf5eb68146107db578063ab51bb96146107f0578063ac43175114610805576102e4565b8063862498821461075d57806396713da9146107725780639dc0926214610787578063a1a11bf51461079c578063a5422d5c146107b1578063a78abc16146107c6576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa14610699576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610aa8565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610aad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610c9a565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610ca3565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610ca9565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cae565b005b3480156104b757600080fd5b5061044f610fc2565b3480156104cc57600080fd5b506104d5610fc8565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fcd565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fd3565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fd8565b34801561056957600080fd5b5061044f610fdd565b34801561057e57600080fd5b50610500610fe3565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610fe9565b3480156105c657600080fd5b506104d561103b565b3480156105db57600080fd5b506102fe611040565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b5035611045565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110a9565b34801561067b57600080fd5b506104d56110af565b34801561069057600080fd5b506105006110b4565b3480156106a557600080fd5b5061044f6110ba565b3480156106ba57600080fd5b506104d56110c0565b3480156106cf57600080fd5b506102fe6110c5565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110ca565b34801561076957600080fd5b5061044f61117d565b34801561077e57600080fd5b506104d5611183565b34801561079357600080fd5b50610500611188565b3480156107a857600080fd5b5061050061118e565b3480156107bd57600080fd5b5061039c611194565b3480156107d257600080fd5b506104266111b3565b3480156107e757600080fd5b5061044f6111bc565b3480156107fc57600080fd5b506102fe61103b565b34801561081157600080fd5b506104a96004803603604081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460018302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460018302840111600160201b831117156108c557600080fd5b5090925090506111c5565b3480156108dc57600080fd5b5061044f600480360360208110156108f357600080fd5b50356001600160a01b03166115bc565b34801561090f57600080fd5b506109186115ce565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561095457818101518382015260200161093c565b505050509050019250505060405180910390f35b34801561097457600080fd5b506105006116f4565b34801561098957600080fd5b5061044f6116fa565b34801561099e57600080fd5b5061044f611706565b3480156109b357600080fd5b5061050061170c565b3480156109c857600080fd5b5061044f611712565b3480156109dd57600080fd5b506104a9611717565b3480156109f257600080fd5b506104a960048036036020811015610a0957600080fd5b50356001600160a01b031661191a565b348015610a2557600080fd5b506102fe611ae9565b6104a960048036036020811015610a4457600080fd5b50356001600160a01b0316611aee565b348015610a6057600080fd5b50610500611df3565b348015610a7557600080fd5b506104d5611df9565b348015610a8a57600080fd5b50610500611dfe565b348015610a9f57600080fd5b50610500611e04565b606481565b60005460609060ff16610b03576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b435760405162461bcd60e51b815260040180806020018281038252602f815260200180614951602f913960400191505060405180910390fd5b610b4b614158565b6000610b8c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e0a92505050565b9150915080610ba857610b9f6064611f63565b92505050610c93565b815160009060ff16610bc857610bc18360200151611fc4565b9050610c5f565b825160ff1660011415610c5b57826020015151600114610c35577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806142866025913960400191505060405180910390a1506067610c56565b610bc18360200151600081518110610c4957fe5b6020026020010151612dca565b610c5f565b5060655b63ffffffff8116610c845750506040805160008152602081019091529150610c939050565b610c8d81611f63565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610cee5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ad6029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d125750610fbf565b600181039050600060018281548110610d2757fe5b60009182526020909120600360049092020101546001549091506000190180610d7657600060018481548110610d5957fe5b906000526020600020906004020160030181905550505050610fbf565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610ef857600180546000198101908110610ded57fe5b906000526020600020906004020160018481548110610e0857fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ecd57fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f0357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f5657fe5b0490508015610fba5760015460005b81811015610fb7578260018281548110610f7b57fe5b9060005260206000209060040201600301540160018281548110610f9b57fe5b6000918252602090912060036004909202010155600101610f65565b50505b505050505b50565b61271081565b600181565b61100181565b603881565b600881565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611011576000915050611036565b60018082038154811061102057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061105257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b606681565b336120001461110a5760405162461bcd60e51b815260040180806020018281038252602f815260200180614951602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600981565b61100781565b61100681565b6040518061062001604052806105ef81526020016143626105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611218576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146112585760405162461bcd60e51b815260040180806020018281038252602e8152602001806142cc602e913960400191505060405180910390fd5b6112c284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f419050565b1561139d57602081146113065760405162461bcd60e51b815260040180806020018281038252602681526020018061431b6026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113449185858083850183828082843760009201919091525061302992505050565b90506064811015801561135a5750620186a08111155b6113955760405162461bcd60e51b815260040180806020018281038252602781526020018061425f6027913960400191505060405180910390fd5b60025561152a565b6113fd84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f419050565b156114ed5760208114611457576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114959185858083850183828082843760009201919091525061302992505050565b90506127108111156114d85760405162461bcd60e51b815260040180806020018281038252602b815260200180614209602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561152a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561161f57600181815481106115ed57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611617576001909101905b6001016115d8565b5060608160405190808252806020026020018201604052801561164c578160200160208202803683370190505b50600092509050815b838110156116ec576001818154811061166a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116e4576001818154811061169a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116c557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611655565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561176f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611777614158565b600061179d6040518061062001604052806105ef81526020016143626105ef9139611e0a565b91509150806117dd5760405162461bcd60e51b81526004018080602001828103825260218152602001806143416021913960400191505060405180910390fd5b60005b826020015151811015611902576001836020015182815181106117ff57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118d557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117e0565b50506103e8600255506000805460ff19166001179055565b336110011461195a5760405162461bcd60e51b81526004018080602001828103825260298152602001806149ad6029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061197e5750610fbf565b60018103905060006001828154811061199357fe5b90600052602060002090600402016003015490506000600183815481106119b657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a2557505050610fbf565b6000818381611a3057fe5b0490508015610fba5760005b84811015611a8e578160018281548110611a5257fe5b9060005260206000209060040201600301540160018281548110611a7257fe5b6000918252602090912060036004909202010155600101611a3c565b50600180549085015b81811015610fb7578260018281548110611aad57fe5b9060005260206000209060040201600301540160018281548110611acd57fe5b6000918252602090912060036004909202010155600101611a97565b606581565b334114611b2c5760405162461bcd60e51b815260040180806020018281038252602d815260200180614980602d913960400191505060405180910390fd5b60005460ff16611b7f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bcc576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615611bfc57506006545b600083118015611c0c5750600081115b15611cb5576000611c35612710611c29868563ffffffff61302e16565b9063ffffffff61308716565b90508015611cb35760405161dead9082156108fc029083906000818181858888f19350505050158015611c6c573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cb0848263ffffffff6130c916565b93505b505b8115611dad576000600180840381548110611ccc57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d37576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611da7565b600354611d4a908563ffffffff61310b16565b6003908155810154611d62908563ffffffff61310b16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611ded565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e12614158565b6000611e1c614158565b611e24614170565b611e35611e3086613165565b61318a565b90506000805b611e44836131d4565b15611f555780611e6957611e5f611e5a846131f5565b613243565b60ff168452611f4d565b8060011415611f48576060611e85611e80856131f5565b6132fa565b90508051604051908082528060200260200182016040528015611ec257816020015b611eaf614190565b815260200190600190039081611ea75790505b50602086015260005b8151811015611f3d57611edc614190565b6000611efa848481518110611eed57fe5b60200260200101516133cb565b9150915080611f1757876000995099505050505050505050611f5e565b8188602001518481518110611f2857fe5b60209081029190910101525050600101611ecb565b506001925050611f4d565b611f55565b600101611e3b565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f7d579050509050611fa38363ffffffff166134a8565b81600081518110611fb057fe5b6020026020010181905250610c93816134bb565b6000806060611fd284613545565b915091508161207f577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561203a578181015183820152602001612022565b50505050905090810190601f1680156120675780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050611036565b600080805b6001548110156120fc5767016345785d8a0000600182815481106120a457fe5b906000526020600020906004020160030154106120c6576001909201916120f4565b6000600182815481106120d557fe5b90600052602060002090600402016003015411156120f4576001909101905b600101612084565b50606082604051908082528060200260200182016040528015612129578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612158578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612187578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121e7578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612216578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d602081101561228d57600080fd5b5051905067016345785d8a0000811115612302577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806142fa6021913960400191505060405180910390a160689d5050505050505050505050505050611036565b60005b6001548110156125755767016345785d8a00006001828154811061232557fe5b906000526020600020906004020160030154106124ab576001818154811061234957fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061237a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123af57fe5b906000526020600020906004020160030154816123c857fe5b06600183815481106123d657fe5b9060005260206000209060040201600301540390506123fe83826130c990919063ffffffff16565b8a8e8151811061240a57fe5b6020026020010181815250506001828154811061242357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248157fe5b602090810291909101015261249c878263ffffffff61310b16565b6001909d019c965061256d9050565b6000600182815481106124ba57fe5b906000526020600020906004020160030154111561256d57600181815481106124df57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061253d57fe5b906000526020600020906004020160030154848c8151811061255b57fe5b60209081029190910101526001909a01995b600101612305565b50600085156129b3576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126075781810151838201526020016125ef565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b505050509050019750505050505050506020604051808303818588803b1580156126ae57600080fd5b505af1935050505080156126d457506040513d60208110156126cf57600080fd5b505160015b61290f576040516000815260443d10156126f05750600061278b565b60046000803e60005160e01c6308c379a0811461271157600091505061278b565b60043d036004833e81513d60248201116001600160401b038211171561273c5760009250505061278b565b80830180516001600160401b0381111561275d57600094505050505061278b565b8060208301013d860181111561277b5760009550505050505061278b565b601f01601f191660405250925050505b80612796575061283a565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127fa5781810151838201526020016127e2565b50505050905090810190601f1680156128275780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061290a565b3d808015612864576040519150601f19603f3d011682016040523d82523d6000602084013e612869565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128ce5781810151838201526020016128b6565b50505050905090810190601f1680156128fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129b3565b801561294d576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129b1565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b695760005b8851811015612b675760008982815181106129d357fe5b602002602001015190506000600182815481106129ec57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a1d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ad95760018281548110612a5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612aad57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b5d565b60018281548110612ae657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b3557fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129bc565b505b845115612cb35760005b8551811015612cb1576000868281518110612b8a57fe5b60200260200101516001600160a01b03166108fc878481518110612baa57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4057868281518110612be057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c1e57fe5b60200260200101516040518082815260200191505060405180910390a2612ca8565b868281518110612c4c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c8a57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b73565b505b4715612d1c576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d1a573d6000803e3d6000fd5b505b60006003819055600555825115612d3657612d3683613627565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e1b5750600180820381548110612dfb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e615782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050611036565b600154600554600019820111801590612eb75784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050611036565b600580546001908101909155805481906000198601908110612ed557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f765780518252601f199092019160209182019101612f57565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fe45780518252601f199092019160209182019101612fc5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60008261303d57506000613023565b8282028284828161304a57fe5b0414610c935760405162461bcd60e51b81526004018080602001828103825260218152602001806142ab6021913960400191505060405180910390fd5b6000610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ae8565b6000610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8a565b600082820183811015610c93576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61316d6141c5565b506040805180820190915281518152602082810190820152919050565b613192614170565b61319b82613be4565b6131a457600080fd5b60006131b38360200151613c1e565b60208085015160408051808201909152868152920190820152915050919050565b60006131de6141c5565b505080518051602091820151919092015191011190565b6131fd6141c5565b613206826131d4565b61320f57600080fd5b6020820151600061321f82613c81565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061325857508151602110155b61326157600080fd5b60006132708360200151613c1e565b905080836000015110156132cb576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132f157826020036101000a820491505b50949350505050565b606061330582613be4565b61330e57600080fd5b600061331983613db4565b905060608160405190808252806020026020018201604052801561335757816020015b6133446141c5565b81526020019060019003908161333c5790505b50905060006133698560200151613c1e565b60208601510190506000805b848110156133c05761338683613c81565b91506040518060400160405280838152602001848152508482815181106133a957fe5b602090810291909101015291810191600101613375565b509195945050505050565b6133d3614190565b60006133dd614190565b6133e5614170565b6133ee8561318a565b90506000805b6133fd836131d4565b15611f55578061342857613418613413846131f5565b613e10565b6001600160a01b031684526134a0565b80600114156134505761343d613413846131f5565b6001600160a01b031660208501526134a0565b806002141561347857613465613413846131f5565b6001600160a01b031660408501526134a0565b8060031415611f485761348d611e5a846131f5565b6001600160401b03166060850152600191505b6001016133f4565b60606130236134b683613e2a565b613f10565b60608151600014156134dc5750604080516000815260208101909152611036565b6060826000815181106134eb57fe5b602002602001015190506000600190505b835181101561352c576135228285838151811061351557fe5b6020026020010151613f62565b91506001016134fc565b50610c9361353f825160c060ff16613fdf565b82613f62565b600060606029835111156135775760006040518060600160405280602981526020016141e06029913991509150611f5e565b60005b835181101561360d5760005b818110156136045784818151811061359a57fe5b6020026020010151600001516001600160a01b03168583815181106135bb57fe5b6020026020010151600001516001600160a01b031614156135fc5760006040518060600160405280602b8152602001614234602b9139935093505050611f5e565b600101613586565b5060010161357a565b505060408051602081019091526000815260019150915091565b600154815160005b82811015613744576001613641614190565b6001838154811061364e57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613718578681815181106136de57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156137105760009250613718565b6001016136ca565b50811561373a5780516001600160a01b03166000908152600460205260408120555b505060010161362f565b50808211156137b957805b828110156137b757600180548061376257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b031916905560039091019190915591550161374f565b505b60008183106137c857816137ca565b825b905060005b818110156139c45761387c8582815181106137e657fe5b6020026020010151600183815481106137fb57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140d7565b61399757806001016004600087848151811061389457fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138d057fe5b6020026020010151600182815481106138e557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139bc565b6000600182815481106139a657fe5b9060005260206000209060040201600301819055505b6001016137cf565b5082821115611ded57825b82811015610fba5760018582815181106139e557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613abb57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139cf565b60008183613b745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b39578181015183820152602001613b21565b50505050905090810190601f168015613b665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8057fe5b0495945050505050565b60008184841115613bdc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b39578181015183820152602001613b21565b505050900390565b8051600090613bf557506000611036565b6020820151805160001a9060c0821015613c1457600092505050611036565b5060019392505050565b8051600090811a6080811015613c38576000915050611036565b60b8811080613c53575060c08110801590613c53575060f881105b15613c62576001915050611036565b60c0811015613c765760b519019050611036565b60f519019050611036565b80516000908190811a6080811015613c9c5760019150613dad565b60b8811015613cb157607e1981019150613dad565b60c0811015613d2b57600060b78203600186019550806020036101000a865104915060018101820193505080831015613d25576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613dad565b60f8811015613d405760be1981019150613dad565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613dab576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dc557506000611036565b60008090506000613dd98460200151613c1e565b602085015185519181019250015b80821015613e0757613df882613c81565b60019093019290910190613de7565b50909392505050565b8051600090601514613e2157600080fd5b61302382613243565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e6e57506018613e92565b6fffffffffffffffffffffffffffffffff198416613e8e57506010613e92565b5060005b6020811015613ec857818181518110613ea757fe5b01602001516001600160f81b03191615613ec057613ec8565b600101613e92565b60008160200390506060816040519080825280601f01601f191660200182016040528015613efd576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f425750607f60f81b82600081518110613f3057fe5b01602001516001600160f81b03191611155b15613f4e575080611036565b613023613f608351608060ff16613fdf565b835b6060806040519050835180825260208201818101602087015b81831015613f93578051835260209283019201613f7b565b50855184518101855292509050808201602086015b81831015613fc0578051835260209283019201613fa8565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061402f576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116140895782840160f81b8160008151811061406b57fe5b60200101906001600160f81b031916908160001a9053509050613023565b606061409485613e2a565b90508381510160370160f81b826000815181106140ad57fe5b60200101906001600160f81b031916908160001a9053506140ce8282613f62565b95945050505050565b805182516000916001600160a01b039182169116148015614111575081602001516001600160a01b031683602001516001600160a01b0316145b8015614136575081604001516001600160a01b031683604001516001600160a01b0316145b8015610c935750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806141836141c5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fe746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574f905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a2000746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220b806ba3d9dd9e078bac9726f79b32c9b62db327924a189cc1a9e4e106ffbe50d64736f6c63430006040033", + Code: bruno.MainnetValidatorContract, }, }, } @@ -240,7 +254,7 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/ce622fef469d84ee418fa6181f3ac962412a5f4f", - Code: "6080604052600436106102e45760003560e01c80638624988211610190578063c8509d81116100dc578063eb57e20211610095578063f9a2bbc71161006f578063f9a2bbc714610a54578063fc3e590814610a69578063fccc281314610a7e578063fd6a687914610a93576102e4565b8063eb57e202146109e6578063eda5868c14610a19578063f340fa0114610a2e576102e4565b8063c8509d81146106d8578063d86222d51461097d578063daacdb6614610992578063dc927faf146109a7578063e086c7b1146109bc578063e1c7392a146109d1576102e4565b8063aaf5eb6811610149578063ad3c9da611610123578063ad3c9da6146108d0578063b7ab4db514610903578063bf9f4995146104c0578063c81b166214610968576102e4565b8063aaf5eb68146107db578063ab51bb96146107f0578063ac43175114610805576102e4565b8063862498821461075d57806396713da9146107725780639dc0926214610787578063a1a11bf51461079c578063a5422d5c146107b1578063a78abc16146107c6576102e4565b806351e806721161024f57806370fd5bad116102085780637942fd05116101e25780637942fd05146106ae57806381650b62146106c3578063831d65d1146106d8578063853230aa14610699576102e4565b806370fd5bad1461066f57806375d47a0a1461068457806378dfed4a14610699576102e4565b806351e8067214610572578063565c56b3146105875780635667515a146105ba5780635d77156c146105cf5780636969a25c146105e45780636e47b4821461065a576102e4565b80633de0f0d8116102a15780633de0f0d8146104ab5780633dffc387146104c057806343756e5c146104eb578063493279b11461051c5780634bf6c882146105485780635192c82c1461055d576102e4565b80630bee7a67146102e95780631182b87514610317578063152ad3b8146104115780631ff180691461043a578063219f22d51461046157806335409f7f14610476575b600080fd5b3480156102f557600080fd5b506102fe610aa8565b6040805163ffffffff9092168252519081900360200190f35b34801561032357600080fd5b5061039c6004803603604081101561033a57600080fd5b60ff8235169190810190604081016020820135600160201b81111561035e57600080fd5b82018360208201111561037057600080fd5b803590602001918460018302840111600160201b8311171561039157600080fd5b509092509050610aad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041d57600080fd5b50610426610c9a565b604080519115158252519081900360200190f35b34801561044657600080fd5b5061044f610ca3565b60408051918252519081900360200190f35b34801561046d57600080fd5b506102fe610ca9565b34801561048257600080fd5b506104a96004803603602081101561049957600080fd5b50356001600160a01b0316610cae565b005b3480156104b757600080fd5b5061044f610fc2565b3480156104cc57600080fd5b506104d5610fc8565b6040805160ff9092168252519081900360200190f35b3480156104f757600080fd5b50610500610fcd565b604080516001600160a01b039092168252519081900360200190f35b34801561052857600080fd5b50610531610fd3565b6040805161ffff9092168252519081900360200190f35b34801561055457600080fd5b506104d5610fd8565b34801561056957600080fd5b5061044f610fdd565b34801561057e57600080fd5b50610500610fe3565b34801561059357600080fd5b5061044f600480360360208110156105aa57600080fd5b50356001600160a01b0316610fe9565b3480156105c657600080fd5b506104d561103b565b3480156105db57600080fd5b506102fe611040565b3480156105f057600080fd5b5061060e6004803603602081101561060757600080fd5b5035611045565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b34801561066657600080fd5b506105006110a9565b34801561067b57600080fd5b506104d56110af565b34801561069057600080fd5b506105006110b4565b3480156106a557600080fd5b5061044f6110ba565b3480156106ba57600080fd5b506104d56110c0565b3480156106cf57600080fd5b506102fe6110c5565b3480156106e457600080fd5b506104a9600480360360408110156106fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b5090925090506110ca565b34801561076957600080fd5b5061044f61117d565b34801561077e57600080fd5b506104d5611183565b34801561079357600080fd5b50610500611188565b3480156107a857600080fd5b5061050061118e565b3480156107bd57600080fd5b5061039c611194565b3480156107d257600080fd5b506104266111b3565b3480156107e757600080fd5b5061044f6111bc565b3480156107fc57600080fd5b506102fe61103b565b34801561081157600080fd5b506104a96004803603604081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460018302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460018302840111600160201b831117156108c557600080fd5b5090925090506111c5565b3480156108dc57600080fd5b5061044f600480360360208110156108f357600080fd5b50356001600160a01b03166115bc565b34801561090f57600080fd5b506109186115ce565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561095457818101518382015260200161093c565b505050509050019250505060405180910390f35b34801561097457600080fd5b506105006116f4565b34801561098957600080fd5b5061044f6116fa565b34801561099e57600080fd5b5061044f611706565b3480156109b357600080fd5b5061050061170c565b3480156109c857600080fd5b5061044f611712565b3480156109dd57600080fd5b506104a9611717565b3480156109f257600080fd5b506104a960048036036020811015610a0957600080fd5b50356001600160a01b031661191a565b348015610a2557600080fd5b506102fe611ae9565b6104a960048036036020811015610a4457600080fd5b50356001600160a01b0316611aee565b348015610a6057600080fd5b50610500611df3565b348015610a7557600080fd5b506104d5611df9565b348015610a8a57600080fd5b50610500611dfe565b348015610a9f57600080fd5b50610500611e04565b606481565b60005460609060ff16610b03576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610b435760405162461bcd60e51b815260040180806020018281038252602f81526020018061450d602f913960400191505060405180910390fd5b610b4b614158565b6000610b8c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e0a92505050565b9150915080610ba857610b9f6064611f63565b92505050610c93565b815160009060ff16610bc857610bc18360200151611fc4565b9050610c5f565b825160ff1660011415610c5b57826020015151600114610c35577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260258152602001806144316025913960400191505060405180910390a1506067610c56565b610bc18360200151600081518110610c4957fe5b6020026020010151612dca565b610c5f565b5060655b63ffffffff8116610c845750506040805160008152602081019091529150610c939050565b610c8d81611f63565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b3361100114610cee5760405162461bcd60e51b81526004018080602001828103825260298152602001806145696029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604090205480610d125750610fbf565b600181039050600060018281548110610d2757fe5b60009182526020909120600360049092020101546001549091506000190180610d7657600060018481548110610d5957fe5b906000526020600020906004020160030181905550505050610fbf565b6040805183815290516001600160a01b038616917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038416600090815260046020526040812055600154600019018314610ef857600180546000198101908110610ded57fe5b906000526020600020906004020160018481548110610e0857fe5b6000918252602082208354600492830290910180546001600160a01b03199081166001600160a01b0393841617825560018087015481840180548416918616919091179055600280880180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b199094169390931790556003948501549401939093558254868401939192919087908110610ecd57fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020555b6001805480610f0357fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b03191690556003018190559155818381610f5657fe5b0490508015610fba5760015460005b81811015610fb7578260018281548110610f7b57fe5b9060005260206000209060040201600301540160018281548110610f9b57fe5b6000918252602090912060036004909202010155600101610f65565b50505b505050505b50565b61271081565b600181565b61100181565b606181565b600881565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611011576000915050611036565b60018082038154811061102057fe5b9060005260206000209060040201600301549150505b919050565b600081565b606781565b6001818154811061105257fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b606681565b336120001461110a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061450d602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600981565b61100781565b61100681565b604051806101e001604052806101ab81526020016141e06101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611218576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33611007146112585760405162461bcd60e51b815260040180806020018281038252602e815260200180614477602e913960400191505060405180910390fd5b6112c284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b60208201529150612f419050565b1561139d57602081146113065760405162461bcd60e51b81526004018080602001828103825260268152602001806144c66026913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916113449185858083850183828082843760009201919091525061302992505050565b90506064811015801561135a5750620186a08111155b6113955760405162461bcd60e51b815260040180806020018281038252602781526020018061440a6027913960400191505060405180910390fd5b60025561152a565b6113fd84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b60208201529150612f419050565b156114ed5760208114611457576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916114959185858083850183828082843760009201919091525061302992505050565b90506127108111156114d85760405162461bcd60e51b815260040180806020018281038252602b8152602001806143b4602b913960400191505060405180910390fd5b6006556007805460ff1916600117905561152a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561161f57600181815481106115ed57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611617576001909101905b6001016115d8565b5060608160405190808252806020026020018201604052801561164c578160200160208202803683370190505b50600092509050815b838110156116ec576001818154811061166a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166116e4576001818154811061169a57fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106116c557fe5b6001600160a01b03909216602092830291909101909101526001909201915b600101611655565b509250505090565b61100281565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561176f576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b611777614158565b600061179d604051806101e001604052806101ab81526020016141e06101ab9139611e0a565b91509150806117dd5760405162461bcd60e51b81526004018080602001828103825260218152602001806144ec6021913960400191505060405180910390fd5b60005b826020015151811015611902576001836020015182815181106117ff57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106118d557fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016117e0565b50506103e8600255506000805460ff19166001179055565b336110011461195a5760405162461bcd60e51b81526004018080602001828103825260298152602001806145696029913960400191505060405180910390fd5b6001600160a01b0381166000908152600460205260409020548061197e5750610fbf565b60018103905060006001828154811061199357fe5b90600052602060002090600402016003015490506000600183815481106119b657fe5b906000526020600020906004020160030181905550600060018080549050039050836001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a280611a2557505050610fbf565b6000818381611a3057fe5b0490508015610fba5760005b84811015611a8e578160018281548110611a5257fe5b9060005260206000209060040201600301540160018281548110611a7257fe5b6000918252602090912060036004909202010155600101611a3c565b50600180549085015b81811015610fb7578260018281548110611aad57fe5b9060005260206000209060040201600301540160018281548110611acd57fe5b6000918252602090912060036004909202010155600101611a97565b606581565b334114611b2c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061453c602d913960400191505060405180910390fd5b60005460ff16611b7f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60003411611bcc576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615611bfc57506006545b600083118015611c0c5750600081115b15611cb5576000611c35612710611c29868563ffffffff61302e16565b9063ffffffff61308716565b90508015611cb35760405161dead9082156108fc029083906000818181858888f19350505050158015611c6c573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1611cb0848263ffffffff6130c916565b93505b505b8115611dad576000600180840381548110611ccc57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611d37576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2611da7565b600354611d4a908563ffffffff61310b16565b6003908155810154611d62908563ffffffff61310b16565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50611ded565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b61100081565b600381565b61dead81565b61100481565b611e12614158565b6000611e1c614158565b611e24614170565b611e35611e3086613165565b61318a565b90506000805b611e44836131d4565b15611f555780611e6957611e5f611e5a846131f5565b613243565b60ff168452611f4d565b8060011415611f48576060611e85611e80856131f5565b6132fa565b90508051604051908082528060200260200182016040528015611ec257816020015b611eaf614190565b815260200190600190039081611ea75790505b50602086015260005b8151811015611f3d57611edc614190565b6000611efa848481518110611eed57fe5b60200260200101516133cb565b9150915080611f1757876000995099505050505050505050611f5e565b8188602001518481518110611f2857fe5b60209081029190910101525050600101611ecb565b506001925050611f4d565b611f55565b600101611e3b565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081611f7d579050509050611fa38363ffffffff166134a8565b81600081518110611fb057fe5b6020026020010181905250610c93816134bb565b6000806060611fd284613545565b915091508161207f577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561203a578181015183820152602001612022565b50505050905090810190601f1680156120675780820380516001836020036101000a031916815260200191505b509250505060405180910390a1606692505050611036565b600080805b6001548110156120fc5767016345785d8a0000600182815481106120a457fe5b906000526020600020906004020160030154106120c6576001909201916120f4565b6000600182815481106120d557fe5b90600052602060002090600402016003015411156120f4576001909101905b600101612084565b50606082604051908082528060200260200182016040528015612129578160200160208202803683370190505b509050606083604051908082528060200260200182016040528015612158578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015612187578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156121b6578160200160208202803683370190505b50905060006060866040519080825280602002602001820160405280156121e7578160200160208202803683370190505b509050606087604051908082528060200260200182016040528015612216578160200160208202803683370190505b509050600098506000975060608d905060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561226357600080fd5b505afa158015612277573d6000803e3d6000fd5b505050506040513d602081101561228d57600080fd5b5051905067016345785d8a0000811115612302577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb26040518080602001828103825260218152602001806144a56021913960400191505060405180910390a160689d5050505050505050505050505050611036565b60005b6001548110156125755767016345785d8a00006001828154811061232557fe5b906000526020600020906004020160030154106124ab576001818154811061234957fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b03168a8d8151811061237a57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106123af57fe5b906000526020600020906004020160030154816123c857fe5b06600183815481106123d657fe5b9060005260206000209060040201600301540390506123fe83826130c990919063ffffffff16565b8a8e8151811061240a57fe5b6020026020010181815250506001828154811061242357fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316888e8151811061245457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081898e8151811061248157fe5b602090810291909101015261249c878263ffffffff61310b16565b6001909d019c965061256d9050565b6000600182815481106124ba57fe5b906000526020600020906004020160030154111561256d57600181815481106124df57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316858c8151811061251057fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061253d57fe5b906000526020600020906004020160030154848c8151811061255b57fe5b60209081029190910101526001909a01995b600101612305565b50600085156129b3576110046001600160a01b0316636e056520878c8c8b60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156126075781810151838201526020016125ef565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b505050509050019750505050505050506020604051808303818588803b1580156126ae57600080fd5b505af1935050505080156126d457506040513d60208110156126cf57600080fd5b505160015b61290f576040516000815260443d10156126f05750600061278b565b60046000803e60005160e01c6308c379a0811461271157600091505061278b565b60043d036004833e81513d60248201116001600160401b038211171561273c5760009250505061278b565b80830180516001600160401b0381111561275d57600094505050505061278b565b8060208301013d860181111561277b5760009550505050505061278b565b601f01601f191660405250925050505b80612796575061283a565b60019150867fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127fa5781810151838201526020016127e2565b50505050905090810190601f1680156128275780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061290a565b3d808015612864576040519150601f19603f3d011682016040523d82523d6000602084013e612869565b606091505b5060019150867fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128ce5781810151838201526020016128b6565b50505050905090810190601f1680156128fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6129b3565b801561294d576040805188815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a16129b1565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905188917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015612b695760005b8851811015612b675760008982815181106129d357fe5b602002602001015190506000600182815481106129ec57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110612a1d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015612ad95760018281548110612a5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110612aad57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2612b5d565b60018281548110612ae657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110612b3557fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b50506001016129bc565b505b845115612cb35760005b8551811015612cb1576000868281518110612b8a57fe5b60200260200101516001600160a01b03166108fc878481518110612baa57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015612c4057868281518110612be057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d878481518110612c1e57fe5b60200260200101516040518082815260200191505060405180910390a2612ca8565b868281518110612c4c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d878481518110612c8a57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101612b73565b505b4715612d1c576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015612d1a573d6000803e3d6000fd5b505b60006003819055600555825115612d3657612d3683613627565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612d7357600080fd5b505af1158015612d87573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009f9e505050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580612e1b5750600180820381548110612dfb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15612e615782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000915050611036565b600154600554600019820111801590612eb75784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009350505050611036565b600580546001908101909155805481906000198601908110612ed557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000816040516020018082805190602001908083835b60208310612f765780518252601f199092019160209182019101612f57565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612fe45780518252601f199092019160209182019101612fc5565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60008261303d57506000613023565b8282028284828161304a57fe5b0414610c935760405162461bcd60e51b81526004018080602001828103825260218152602001806144566021913960400191505060405180910390fd5b6000610c9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ae8565b6000610c9383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8a565b600082820183811015610c93576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61316d6141c5565b506040805180820190915281518152602082810190820152919050565b613192614170565b61319b82613be4565b6131a457600080fd5b60006131b38360200151613c1e565b60208085015160408051808201909152868152920190820152915050919050565b60006131de6141c5565b505080518051602091820151919092015191011190565b6131fd6141c5565b613206826131d4565b61320f57600080fd5b6020820151600061321f82613c81565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061325857508151602110155b61326157600080fd5b60006132708360200151613c1e565b905080836000015110156132cb576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156132f157826020036101000a820491505b50949350505050565b606061330582613be4565b61330e57600080fd5b600061331983613db4565b905060608160405190808252806020026020018201604052801561335757816020015b6133446141c5565b81526020019060019003908161333c5790505b50905060006133698560200151613c1e565b60208601510190506000805b848110156133c05761338683613c81565b91506040518060400160405280838152602001848152508482815181106133a957fe5b602090810291909101015291810191600101613375565b509195945050505050565b6133d3614190565b60006133dd614190565b6133e5614170565b6133ee8561318a565b90506000805b6133fd836131d4565b15611f55578061342857613418613413846131f5565b613e10565b6001600160a01b031684526134a0565b80600114156134505761343d613413846131f5565b6001600160a01b031660208501526134a0565b806002141561347857613465613413846131f5565b6001600160a01b031660408501526134a0565b8060031415611f485761348d611e5a846131f5565b6001600160401b03166060850152600191505b6001016133f4565b60606130236134b683613e2a565b613f10565b60608151600014156134dc5750604080516000815260208101909152611036565b6060826000815181106134eb57fe5b602002602001015190506000600190505b835181101561352c576135228285838151811061351557fe5b6020026020010151613f62565b91506001016134fc565b50610c9361353f825160c060ff16613fdf565b82613f62565b6000606060298351111561357757600060405180606001604052806029815260200161438b6029913991509150611f5e565b60005b835181101561360d5760005b818110156136045784818151811061359a57fe5b6020026020010151600001516001600160a01b03168583815181106135bb57fe5b6020026020010151600001516001600160a01b031614156135fc5760006040518060600160405280602b81526020016143df602b9139935093505050611f5e565b600101613586565b5060010161357a565b505060408051602081019091526000815260019150915091565b600154815160005b82811015613744576001613641614190565b6001838154811061364e57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015613718578681815181106136de57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156137105760009250613718565b6001016136ca565b50811561373a5780516001600160a01b03166000908152600460205260408120555b505060010161362f565b50808211156137b957805b828110156137b757600180548061376257fe5b60008281526020812060046000199093019283020180546001600160a01b03199081168255600182810180549092169091556002820180546001600160e81b031916905560039091019190915591550161374f565b505b60008183106137c857816137ca565b825b905060005b818110156139c45761387c8582815181106137e657fe5b6020026020010151600183815481106137fb57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526140d7565b61399757806001016004600087848151811061389457fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508481815181106138d057fe5b6020026020010151600182815481106138e557fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101556139bc565b6000600182815481106139a657fe5b9060005260206000209060040201600301819055505b6001016137cf565b5082821115611ded57825b82811015610fba5760018582815181106139e557fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782559585015181840180549184169188169190911790556040850151600282018054606088015160808901511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590971692909a169190911792909216939093171695909517905560a09092015160039093019290925587519084019290889085908110613abb57fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016139cf565b60008183613b745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b39578181015183820152602001613b21565b50505050905090810190601f168015613b665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613b8057fe5b0495945050505050565b60008184841115613bdc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613b39578181015183820152602001613b21565b505050900390565b8051600090613bf557506000611036565b6020820151805160001a9060c0821015613c1457600092505050611036565b5060019392505050565b8051600090811a6080811015613c38576000915050611036565b60b8811080613c53575060c08110801590613c53575060f881105b15613c62576001915050611036565b60c0811015613c765760b519019050611036565b60f519019050611036565b80516000908190811a6080811015613c9c5760019150613dad565b60b8811015613cb157607e1981019150613dad565b60c0811015613d2b57600060b78203600186019550806020036101000a865104915060018101820193505080831015613d25576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50613dad565b60f8811015613d405760be1981019150613dad565b600060f78203600186019550806020036101000a865104915060018101820193505080831015613dab576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090613dc557506000611036565b60008090506000613dd98460200151613c1e565b602085015185519181019250015b80821015613e0757613df882613c81565b60019093019290910190613de7565b50909392505050565b8051600090601514613e2157600080fd5b61302382613243565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613e6e57506018613e92565b6fffffffffffffffffffffffffffffffff198416613e8e57506010613e92565b5060005b6020811015613ec857818181518110613ea757fe5b01602001516001600160f81b03191615613ec057613ec8565b600101613e92565b60008160200390506060816040519080825280601f01601f191660200182016040528015613efd576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613f425750607f60f81b82600081518110613f3057fe5b01602001516001600160f81b03191611155b15613f4e575080611036565b613023613f608351608060ff16613fdf565b835b6060806040519050835180825260208201818101602087015b81831015613f93578051835260209283019201613f7b565b50855184518101855292509050808201602086015b81831015613fc0578051835260209283019201613fa8565b508651929092011591909101601f01601f191660405250905092915050565b606068010000000000000000831061402f576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116140895782840160f81b8160008151811061406b57fe5b60200101906001600160f81b031916908160001a9053509050613023565b606061409485613e2a565b90508381510160370160f81b826000815181106140ad57fe5b60200101906001600160f81b031916908160001a9053506140ce8282613f62565b95945050505050565b805182516000916001600160a01b039182169116148015614111575081602001516001600160a01b031683602001516001600160a01b0316145b8015614136575081604001516001600160a01b031683604001516001600160a01b0316145b8015610c935750506060908101519101516001600160401b0390811691161490565b60408051808201909152600081526060602082015290565b60405180604001604052806141836141c5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60405180604001604052806000815260200160008152509056fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a78410000000746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e67656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374666565206973206c6172676572207468616e2044555354595f494e434f4d494e476c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463686661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a26469706673582212206138cbef6a4ba7db6b97f06990dc0d96f124bc0b841fa4a56690968e7b85982b64736f6c63430006040033", + Code: bruno.ChapelValidatorContract, }, }, } @@ -251,12 +265,12 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "6080604052600436106104055760003560e01c80638d19a41011610213578063c81b166211610123578063eb57e202116100ab578063f9a2bbc71161007a578063f9a2bbc714610d55578063fc3e590814610d6a578063fccc281314610d7f578063fd4ad81f14610d94578063fd6a687914610dd757610405565b8063eb57e20214610cd2578063eda5868c14610d05578063f340fa0114610d1a578063f92eb86b14610d4057610405565b8063daacdb66116100f2578063daacdb6614610c69578063dc927faf14610c7e578063e086c7b114610c93578063e1c7392a14610ca8578063e40716a114610cbd57610405565b8063c81b166214610c2a578063c8509d8114610939578063d68fb56a14610c3f578063d86222d514610c5457610405565b8063a78abc16116101a6578063ad3c9da611610175578063ad3c9da614610bb8578063b7ab4db514610beb578063b8cf4ef114610c00578063bf9f49951461065f578063c6d3394514610c1557610405565b8063a78abc1614610aae578063aaf5eb6814610ac3578063ab51bb9614610ad8578063ac43175114610aed57610405565b80639fe0f816116101e25780639fe0f81614610a5a578063a0dc275814610a6f578063a1a11bf514610a84578063a5422d5c14610a9957610405565b80638d19a410146109e85780639369d7de14610a1b57806396713da914610a305780639dc0926214610a4557610405565b80635192c82c1161031957806375d47a0a116102a157806381650b621161027057806381650b6214610924578063831d65d114610939578063853230aa146108e557806386249882146109be5780638b5ad0c9146109d357610405565b806375d47a0a146108d057806378dfed4a146108e55780637942fd05146108fa5780637a84ca2a1461090f57610405565b80635667515a116102e85780635667515a146108065780635d77156c1461081b5780636969a25c146108305780636e47b482146108a657806370fd5bad146108bb57610405565b80635192c82c1461077657806351e806721461078b57806355614fcc146107a0578063565c56b3146107d357610405565b80633365af3a1161039c57806343756e5c1161036b57806343756e5c1461068a57806345cf9daf146106bb578063493279b1146106d05780634bf6c882146106fc5780634df6e0c31461071157610405565b80633365af3a146105ed57806335409f7f146106175780633de0f0d81461064a5780633dffc3871461065f57610405565b8063152ad3b8116103d8578063152ad3b8146105705780631ff1806914610599578063219f22d5146105ae578063321d398a146105c357610405565b806304c4fec61461040a57806307a56847146104215780630bee7a67146104485780631182b87514610476575b600080fd5b34801561041657600080fd5b5061041f610dec565b005b34801561042d57600080fd5b50610436610e7f565b60408051918252519081900360200190f35b34801561045457600080fd5b5061045d610e85565b6040805163ffffffff9092168252519081900360200190f35b34801561048257600080fd5b506104fb6004803603604081101561049957600080fd5b60ff8235169190810190604081016020820135600160201b8111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111600160201b831117156104f057600080fd5b509092509050610e8a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053557818101518382015260200161051d565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b5061058561111c565b604080519115158252519081900360200190f35b3480156105a557600080fd5b50610436611125565b3480156105ba57600080fd5b5061045d61112b565b3480156105cf57600080fd5b50610585600480360360208110156105e657600080fd5b5035611130565b3480156105f957600080fd5b506105856004803603602081101561061057600080fd5b50356111ff565b34801561062357600080fd5b5061041f6004803603602081101561063a57600080fd5b50356001600160a01b03166112b0565b34801561065657600080fd5b5061043661140f565b34801561066b57600080fd5b50610674611415565b6040805160ff9092168252519081900360200190f35b34801561069657600080fd5b5061069f61141a565b604080516001600160a01b039092168252519081900360200190f35b3480156106c757600080fd5b50610436611420565b3480156106dc57600080fd5b506106e5611426565b6040805161ffff9092168252519081900360200190f35b34801561070857600080fd5b5061067461142b565b34801561071d57600080fd5b50610726611430565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561076257818101518382015260200161074a565b505050509050019250505060405180910390f35b34801561078257600080fd5b5061043661152b565b34801561079757600080fd5b5061069f611531565b3480156107ac57600080fd5b50610585600480360360208110156107c357600080fd5b50356001600160a01b0316611537565b3480156107df57600080fd5b50610436600480360360208110156107f657600080fd5b50356001600160a01b031661156c565b34801561081257600080fd5b506106746115bd565b34801561082757600080fd5b5061045d6115c2565b34801561083c57600080fd5b5061085a6004803603602081101561085357600080fd5b50356115c7565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156108b257600080fd5b5061069f61162b565b3480156108c757600080fd5b50610674611631565b3480156108dc57600080fd5b5061069f611636565b3480156108f157600080fd5b5061043661163c565b34801561090657600080fd5b50610674611642565b34801561091b57600080fd5b50610436611647565b34801561093057600080fd5b5061045d61164d565b34801561094557600080fd5b5061041f6004803603604081101561095c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460018302840111600160201b831117156109b357600080fd5b509092509050611652565b3480156109ca57600080fd5b50610436611705565b3480156109df57600080fd5b5061043661170b565b3480156109f457600080fd5b5061043660048036036020811015610a0b57600080fd5b50356001600160a01b0316611711565b348015610a2757600080fd5b5061041f611786565b348015610a3c57600080fd5b506106746118a0565b348015610a5157600080fd5b5061069f6118a5565b348015610a6657600080fd5b506104366118ab565b348015610a7b57600080fd5b506104366118b0565b348015610a9057600080fd5b5061069f6118b5565b348015610aa557600080fd5b506104fb6118bb565b348015610aba57600080fd5b506105856118da565b348015610acf57600080fd5b506104366118e3565b348015610ae457600080fd5b5061045d6115bd565b348015610af957600080fd5b5061041f60048036036040811015610b1057600080fd5b810190602081018135600160201b811115610b2a57600080fd5b820183602082011115610b3c57600080fd5b803590602001918460018302840111600160201b83111715610b5d57600080fd5b919390929091602081019035600160201b811115610b7a57600080fd5b820183602082011115610b8c57600080fd5b803590602001918460018302840111600160201b83111715610bad57600080fd5b5090925090506118ec565b348015610bc457600080fd5b5061043660048036036020811015610bdb57600080fd5b50356001600160a01b0316612329565b348015610bf757600080fd5b5061072661233b565b348015610c0c57600080fd5b5061043661241e565b348015610c2157600080fd5b50610436611631565b348015610c3657600080fd5b5061069f612423565b348015610c4b57600080fd5b50610436612429565b348015610c6057600080fd5b50610436612468565b348015610c7557600080fd5b50610436612474565b348015610c8a57600080fd5b5061069f61247a565b348015610c9f57600080fd5b50610436612480565b348015610cb457600080fd5b5061041f612485565b348015610cc957600080fd5b50610436612688565b348015610cde57600080fd5b5061041f60048036036020811015610cf557600080fd5b50356001600160a01b031661268e565b348015610d1157600080fd5b5061045d61279c565b61041f60048036036020811015610d3057600080fd5b50356001600160a01b03166127a1565b348015610d4c57600080fd5b50610436612aa6565b348015610d6157600080fd5b5061069f612aac565b348015610d7657600080fd5b506106746118ab565b348015610d8b57600080fd5b5061069f612ab2565b348015610da057600080fd5b50610dbe60048036036020811015610db757600080fd5b5035612ab8565b6040805192835290151560208301528051918290030190f35b348015610de357600080fd5b5061069f612ae6565b6000610df733611711565b9050600b8181548110610e0657fe5b600091825260209091206001601690920201015460ff16610e63576040805162461bcd60e51b81526020600482015260126024820152716e6f7420696e206d61696e74656e616e636560701b604482015290519081900360640190fd5b6000610e6d612429565b9050610e7a338383612aec565b505050565b60095481565b606481565b60005460609060ff16610ee0576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610f205760405162461bcd60e51b815260040180806020018281038252602f81526020018061648b602f913960400191505060405180910390fd5b600b54610fc557610f2f6159e0565b60015460005b81811015610fc157600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff191691151591909117905560408501518592610fb391600080516020615e5b833981519152909101906014615a04565b505050806001019050610f35565b5050505b610fcd615a3e565b600061100e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce092505050565b915091508061102a576110216064612e39565b92505050611115565b815160009060ff1661104a576110438360200151612e9a565b90506110e1565b825160ff16600114156110dd578260200151516001146110b7577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180615d5b6025913960400191505060405180910390a15060676110d8565b61104383602001516000815181106110cb57fe5b6020026020010151613caa565b6110e1565b5060655b63ffffffff811661110657505060408051600081526020810190915291506111159050565b61110f81612e39565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b6001546000908210611144575060006111fa565b60006001600160a01b03166001838154811061115c57fe5b60009182526020909120600490910201546001600160a01b0316148061118c5750600854158061118c5750600a54155b8061119b575060085460095410155b806111ac57506111aa826111ff565b155b806111d557506000600b83815481106111c157fe5b906000526020600020906016020160000154115b806111e9575060016111e561233b565b5111155b156111f6575060006111fa565b5060015b919050565b6001546000908210611213575060006111fa565b600b548210611250576001828154811061122957fe5b9060005260206000209060040201600201601c9054906101000a900460ff161590506111fa565b6001828154811061125d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156112aa5750600b828154811061129157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146112f05760405162461bcd60e51b81526004018080602001828103825260298152602001806165346029913960400191505060405180910390fd5b600b54611395576112ff6159e0565b60015460005b8181101561139157600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261138391600080516020615e5b833981519152909101906014615a04565b505050806001019050611305565b5050505b6001600160a01b038116600090815260046020526040902054806113b9575061140c565b6001810390506000600b82815481106113ce57fe5b600091825260209091206001601690920201015460ff1690506113f18383613e21565b80156113fa5750805b15610e7a576009805460001901905550505b50565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c546060919080611443575060155b606061144d61233b565b905081815111611461579250611528915050565b82828251031015611473578181510392505b82156114a75760c8430461148e82828686036000888861419d565b6114a582828686038787038889898951030161419d565b505b6060826040519080825280602002602001820160405280156114d3578160200160208202803683370190505b50905060005b83811015611521578281815181106114ed57fe5b602002602001015182828151811061150157fe5b6001600160a01b03909216602092830291909101909101526001016114d9565b5093505050505b90565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061155f5760009150506111fa565b60001901611115816111ff565b6001600160a01b038116600090815260046020526040812054806115945760009150506111fa565b6001808203815481106115a357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600181815481106115d457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b600c5481565b606681565b33612000146116925760405162461bcd60e51b815260040180806020018281038252602f81526020018061648b602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600a5481565b6001600160a01b0381166000908152600460205260408120548061177c576040805162461bcd60e51b815260206004820152601760248201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604482015290519081900360640190fd5b6000190192915050565b600b5461182b576117956159e0565b60015460005b8181101561182757600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261181991600080516020615e5b833981519152909101906014615a04565b50505080600101905061179b565b5050505b6008546118385760036008555b600a54611845576002600a555b600061185033611711565b905061185b81611130565b6118965760405162461bcd60e51b8152600401808060200182810382526023815260200180615d386023913960400191505060405180910390fd5b61140c338261428c565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001615e9c6105ef913981565b60005460ff1681565b6402540be40081565b60005460ff1661193f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461197f5760405162461bcd60e51b815260040180806020018281038252602e815260200180615da1602e913960400191505060405180910390fd5b6119e984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506143249050565b15611ac45760208114611a2d5760405162461bcd60e51b8152600401808060200182810382526026815260200180615e356026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611a6b9185858083850183828082843760009201919091525061440b92505050565b905060648110158015611a815750620186a08111155b611abc5760405162461bcd60e51b8152600401808060200182810382526027815260200180615cc86027913960400191505060405180910390fd5b600255612297565b611b2484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506143249050565b15611c145760208114611b7e576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611bbc9185858083850183828082843760009201919091525061440b92505050565b9050612710811115611bff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615c72602b913960400191505060405180910390fd5b6006556007805460ff19166001179055612297565b611c7e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506143249050565b15611d565760208114611cc25760405162461bcd60e51b8152600401808060200182810382526026815260200180615b396026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611d009185858083850183828082843760009201919091525061440b92505050565b600c5490915080611d0f575060155b808210611d4d5760405162461bcd60e51b8152600401808060200182810382526038815260200180615bb06038913960400191505060405180910390fd5b50600855612297565b611dbf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506143249050565b15611e8a5760208114611e035760405162461bcd60e51b8152600401808060200182810382526025815260200180615b8b6025913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611e419185858083850183828082843760009201919091525061440b92505050565b905060008111611e825760405162461bcd60e51b815260040180806020018281038252602d8152602001806164e7602d913960400191505060405180910390fd5b600a55612297565b611efe84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506143249050565b15611fcb5760208114611f425760405162461bcd60e51b815260040180806020018281038252602c815260200180615b5f602c913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611f809185858083850183828082843760009201919091525061440b92505050565b9050600d54811115611fc35760405162461bcd60e51b8152600401808060200182810382526049815260200180615cef6049913960600191505060405180910390fd5b600e55612297565b61203484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506143249050565b156120d557602081146120785760405162461bcd60e51b8152600401808060200182810382526025815260200180615dcf6025913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916120b69185858083850183828082843760009201919091525061440b92505050565b600d819055600e549091508110156120cf57600d54600e555b50612297565b61213984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506143249050565b1561225a5760208114612193576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121d19185858083850183828082843760009201919091525061440b92505050565b9050600081116122125760405162461bcd60e51b8152600401808060200182810382526028815260200180615be86028913960400191505060405180910390fd5b60298111156122525760405162461bcd60e51b8152600401808060200182810382526039815260200180615c106039913960400191505060405180910390fd5b600c55612297565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561236a57612356816111ff565b15612362576001909101905b600101612345565b50606081604051908082528060200260200182016040528015612397578160200160208202803683370190505b5090506000915060005b83811015612416576123b2816111ff565b1561240e57600181815481106123c457fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106123ef57fe5b6001600160a01b03909216602092830291909101909101526001909201915b6001016123a1565b509250505090565b601581565b61100281565b600061243361233b565b519050600080600c541161244857601561244c565b600c545b90508082111561245a578091505b8161246457600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156124dd576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6124e5615a3e565b600061250b6040518061062001604052806105ef8152602001615e9c6105ef9139612ce0565b915091508061254b5760405162461bcd60e51b8152600401808060200182810382526021815260200180615e7b6021913960400191505060405180910390fd5b60005b8260200151518110156126705760018360200151828151811061256d57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061264357fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161254e565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146126ce5760405162461bcd60e51b81526004018080602001828103825260298152602001806165346029913960400191505060405180910390fd5b600b54612773576126dd6159e0565b60015460005b8181101561276f57600b80546001810182556000919091528351600080516020615e15833981519152601690920291820190815560208501516000805160206165148339815191528301805460ff19169115159190911790556040850151859261276191600080516020615e5b833981519152909101906014615a04565b5050508060010190506126e3565b5050505b600061277e82614410565b905061278981611130565b1561279857612798828261428c565b5050565b606581565b3341146127df5760405162461bcd60e51b815260040180806020018281038252602d8152602001806164ba602d913960400191505060405180910390fd5b60005460ff16612832576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b6000341161287f576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff16156128af57506006545b6000831180156128bf5750600081115b156129685760006128e86127106128dc868563ffffffff6145b416565b9063ffffffff61460d16565b905080156129665760405161dead9082156108fc029083906000818181858888f1935050505015801561291f573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1612963848263ffffffff61464f16565b93505b505b8115612a6057600060018084038154811061297f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156129ea576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2612a5a565b6003546129fd908563ffffffff61469116565b6003908155810154612a15908563ffffffff61469116565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50612aa0565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612ac557fe5b60009182526020909120601690910201805460019091015490915060ff1682565b61100481565b6000600a5460001480612afd575081155b80612b085750600954155b15612b1557506000611115565b600960008154809291906001900391905055506000612b62600a546128dc856128dc600b8981548110612b4457fe5b6000918252602090912060169091020154439063ffffffff61464f16565b90506000600b8581548110612b7357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612bd857600080fd5b505afa158015612bec573d6000803e3d6000fd5b505050506040513d6040811015612c0257600080fd5b508051602090910151600095509092509050808310612c9057612c258787613e21565b50604080516305bfb49960e41b81526001600160a01b0389166004820152905161100191635bfb499091602480830192600092919082900301818387803b158015612c6f57600080fd5b505af1158015612c83573d6000803e3d6000fd5b5050505060019350612ca2565b818310612ca257612ca087614410565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612ce8615a3e565b6000612cf2615a3e565b612cfa615a56565b612d0b612d06866146eb565b614710565b90506000805b612d1a8361475a565b15612e2b5780612d3f57612d35612d308461477b565b6147c9565b60ff168452612e23565b8060011415612e1e576060612d5b612d568561477b565b614880565b90508051604051908082528060200260200182016040528015612d9857816020015b612d85615a76565b815260200190600190039081612d7d5790505b50602086015260005b8151811015612e1357612db2615a76565b6000612dd0848481518110612dc357fe5b6020026020010151614951565b9150915080612ded57876000995099505050505050505050612e34565b8188602001518481518110612dfe57fe5b60209081029190910101525050600101612da1565b506001925050612e23565b612e2b565b600101612d11565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081612e53579050509050612e798363ffffffff16614a2e565b81600081518110612e8657fe5b602002602001018190525061111581614a41565b6000806060612ea884614acb565b9150915081612f55577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612f10578181015183820152602001612ef8565b50505050905090810190601f168015612f3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066925050506111fa565b50506060612f6283614bad565b6001549091506000908190815b81811015612fe55767016345785d8a000060018281548110612f8d57fe5b90600052602060002090600402016003015410612faf57600190930192612fdd565b600060018281548110612fbe57fe5b9060005260206000209060040201600301541115612fdd576001909201915b600101612f6f565b50606083604051908082528060200260200182016040528015613012578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613041578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613070578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561309f578160200160208202803683370190505b50905060006060876040519080825280602002602001820160405280156130d0578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156130ff578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561314757600080fd5b505afa15801561315b573d6000803e3d6000fd5b505050506040513d602081101561317157600080fd5b5051905067016345785d8a00008111156131e5577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180615df46021913960400191505060405180910390a160689c505050505050505050505050506111fa565b60005b898110156134565767016345785d8a00006001828154811061320657fe5b9060005260206000209060040201600301541061338c576001818154811061322a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061325b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061329057fe5b906000526020600020906004020160030154816132a957fe5b06600183815481106132b757fe5b9060005260206000209060040201600301540390506132df838261464f90919063ffffffff16565b898e815181106132eb57fe5b6020026020010181815250506001828154811061330457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e8151811061333557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061336257fe5b602090810291909101015261337d868263ffffffff61469116565b6001909d019c955061344e9050565b60006001828154811061339b57fe5b906000526020600020906004020160030154111561344e57600181815481106133c057fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c815181106133f157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061341e57fe5b906000526020600020906004020160030154838c8151811061343c57fe5b60209081029190910101526001909a01995b6001016131e8565b5060008415613894576110046001600160a01b0316636e056520868b8b8a60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156134e85781810151838201526020016134d0565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561352757818101518382015260200161350f565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561356657818101518382015260200161354e565b505050509050019750505050505050506020604051808303818588803b15801561358f57600080fd5b505af1935050505080156135b557506040513d60208110156135b057600080fd5b505160015b6137f0576040516000815260443d10156135d15750600061366c565b60046000803e60005160e01c6308c379a081146135f257600091505061366c565b60043d036004833e81513d60248201116001600160401b038211171561361d5760009250505061366c565b80830180516001600160401b0381111561363e57600094505050505061366c565b8060208301013d860181111561365c5760009550505050505061366c565b601f01601f191660405250925050505b80613677575061371b565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156136db5781810151838201526020016136c3565b50505050905090810190601f1680156137085780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506137eb565b3d808015613745576040519150601f19603f3d011682016040523d82523d6000602084013e61374a565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156137af578181015183820152602001613797565b50505050905090810190601f1680156137dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b613894565b801561382e576040805187815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1613892565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905187917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015613a4a5760005b8751811015613a485760008882815181106138b457fe5b602002602001015190506000600182815481106138cd57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106138fe57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156139ba576001828154811061393f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061398e57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2613a3e565b600182815481106139c757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613a1657fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161389d565b505b835115613b945760005b8451811015613b92576000858281518110613a6b57fe5b60200260200101516001600160a01b03166108fc868481518110613a8b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613b2157858281518110613ac157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613aff57fe5b60200260200101516040518082815260200191505060405180910390a2613b89565b858281518110613b2d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613b6b57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101613a54565b505b4715613bfd576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015613bfb573d6000803e3d6000fd5b505b600060038190556005558c5115613c1757613c178d614d7d565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c5457600080fd5b505af1158015613c68573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009e9d5050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580613cfb5750600180820381548110613cdb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613d415782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009150506111fa565b600154600554600019820111801590613d975784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600093505050506111fa565b600580546001908101909155805481906000198601908110613db557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b60008060018381548110613e3157fe5b90600052602060002090600402016003015490506000600180805490500390506001613e5b61233b565b5111613e9057600060018581548110613e7057fe5b9060005260206000209060040201600301819055506000925050506112aa565b6040805183815290516001600160a01b038716917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561408d5760018160010181548110613f0857fe5b906000526020600020906004020160018281548110613f2357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b805490918301908110613fe457fe5b9060005260206000209060160201600b8281548110613fff57fe5b600091825260209091208254601690920201908155600180830154908201805460ff191660ff909216151591909117905561404260028083019084016014615aab565b5090505080600101600460006001848154811061405b57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101613eea565b50600180548061409957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806140ec57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061411e6002830182615ad6565b50509055600081838161412d57fe5b04905080156141915760015460005b8181101561418e57826001828154811061415257fe5b906000526020600020906004020160030154016001828154811061417257fe5b600091825260209091206003600490920201015560010161413c565b50505b50600195945050505050565b60005b828110156142835760408051602080820189905287840182840152825180830384018152606090920190925280519101206000908390816141dd57fe5b0690508085018287011461427a57600088838801815181106141fb57fe5b60200260200101519050888287018151811061421357fe5b6020026020010151898489018151811061422957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080898388018151811061425857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b506001016141a0565b50505050505050565b600980546001908101909155600b8054839081106142a657fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106142dc57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020018082805190602001908083835b602083106143595780518252601f19909201916020918201910161433a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106143c75780518252601f1990920191602091820191016143a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526004602052604081205480614439575060001990506111fa565b60018103905060006001828154811061444e57fe5b906000526020600020906004020160030154905060006001838154811061447157fe5b906000526020600020906004020160030181905550600060018080549050039050846001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a2806144e3578293505050506111fa565b60008183816144ee57fe5b04905080156145aa5760005b8481101561454c57816001828154811061451057fe5b906000526020600020906004020160030154016001828154811061453057fe5b60009182526020909120600360049092020101556001016144fa565b50600180549085015b818110156145a757826001828154811061456b57fe5b906000526020600020906004020160030154016001828154811061458b57fe5b6000918252602090912060036004909202010155600101614555565b50505b5091949350505050565b6000826145c3575060006112aa565b828202828482816145d057fe5b04146111155760405162461bcd60e51b8152600401808060200182810382526021815260200180615d806021913960400191505060405180910390fd5b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615370565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615412565b600082820183811015611115576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6146f3615ae5565b506040805180820190915281518152602082810190820152919050565b614718615a56565b6147218261546c565b61472a57600080fd5b600061473983602001516154a6565b60208085015160408051808201909152868152920190820152915050919050565b6000614764615ae5565b505080518051602091820151919092015191011190565b614783615ae5565b61478c8261475a565b61479557600080fd5b602082015160006147a582615509565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906147de57508151602110155b6147e757600080fd5b60006147f683602001516154a6565b90508083600001511015614851576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561487757826020036101000a820491505b50949350505050565b606061488b8261546c565b61489457600080fd5b600061489f8361563c565b90506060816040519080825280602002602001820160405280156148dd57816020015b6148ca615ae5565b8152602001906001900390816148c25790505b50905060006148ef85602001516154a6565b60208601510190506000805b848110156149465761490c83615509565b915060405180604001604052808381526020018481525084828151811061492f57fe5b6020908102919091010152918101916001016148fb565b509195945050505050565b614959615a76565b6000614963615a76565b61496b615a56565b61497485614710565b90506000805b6149838361475a565b15612e2b57806149ae5761499e6149998461477b565b615698565b6001600160a01b03168452614a26565b80600114156149d6576149c36149998461477b565b6001600160a01b03166020850152614a26565b80600214156149fe576149eb6149998461477b565b6001600160a01b03166040850152614a26565b8060031415612e1e57614a13612d308461477b565b6001600160401b03166060850152600191505b60010161497a565b60606112aa614a3c836156b2565b615798565b6060815160001415614a6257506040805160008152602081019091526111fa565b606082600081518110614a7157fe5b602002602001015190506000600190505b8351811015614ab257614aa882858381518110614a9b57fe5b60200260200101516157ea565b9150600101614a82565b50611115614ac5825160c060ff16615867565b826157ea565b60006060602983511115614afd576000604051806060016040528060298152602001615c496029913991509150612e34565b60005b8351811015614b935760005b81811015614b8a57848181518110614b2057fe5b6020026020010151600001516001600160a01b0316858381518110614b4157fe5b6020026020010151600001516001600160a01b03161415614b825760006040518060600160405280602b8152602001615c9d602b9139935093505050612e34565b600101614b0c565b50600101614b00565b505060408051602081019091526000815260019150915091565b6060600080808080614bbd612429565b6001549091505b8015614ccb57600181039250600b8381548110614bdd57fe5b600091825260209091206001601690920201015460ff16614bfd57614cc2565b60018381548110614c0a57fe5b60009182526020909120600490910201546001600160a01b03169450614c31858484612aec565b9350831580614c44575060018851038610155b15614c4e57614cc2565b60005b8851811015614cc057856001600160a01b0316898281518110614c7057fe5b6020026020010151600001516001600160a01b03161415614cb8576001898281518110614c9957fe5b6020908102919091010151901515608090910152600190960195614cc0565b600101614c51565b505b60001901614bc4565b5084875103604051908082528060200260200182016040528015614d0957816020015b614cf6615a76565b815260200190600190039081614cee5790505b5095506000915060005b8751811015614d7257878181518110614d2857fe5b602002602001015160800151614d6a57878181518110614d4457fe5b6020026020010151878481518110614d5857fe5b60209081029190910101526001909201915b600101614d13565b505050505050919050565b600154815160005b82811015614e9a576001614d97615a76565b60018381548110614da457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614e6e57868181518110614e3457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614e665760009250614e6e565b600101614e20565b508115614e905780516001600160a01b03166000908152600460205260408120555b5050600101614d85565b5080821115614f4b57805b82811015614f49576001805480614eb857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480614f0b57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590614f3d6002830182615ad6565b50509055600101614ea5565b505b6000818310614f5a5781614f5c565b825b905060005b818110156151565761500e858281518110614f7857fe5b602002602001015160018381548110614f8d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261595f565b61512957806001016004600087848151811061502657fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061506257fe5b60200260200101516001828154811061507757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561514e565b60006001828154811061513857fe5b9060005260206000209060040201600301819055505b600101614f61565b50828211156152fb576151676159e0565b835b838110156152f857600186828151811061517f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020615e158339815191528101918255918501516000805160206165148339815191528301805491151560ff19909216919091179055918401518492916152b491600080516020615e5b833981519152909101906014615a04565b50505080600101600460008884815181106152cb57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615169565b50505b6000600981905560015493505b83811015615369576000600b828154811061531f57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061535057fe5b6000918252602090912060169091020155600101615308565b5050505050565b600081836153fc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153c15781810151838201526020016153a9565b50505050905090810190601f1680156153ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161540857fe5b0495945050505050565b600081848411156154645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156153c15781810151838201526020016153a9565b505050900390565b805160009061547d575060006111fa565b6020820151805160001a9060c082101561549c576000925050506111fa565b5060019392505050565b8051600090811a60808110156154c05760009150506111fa565b60b88110806154db575060c081108015906154db575060f881105b156154ea5760019150506111fa565b60c08110156154fe5760b5190190506111fa565b60f5190190506111fa565b80516000908190811a60808110156155245760019150615635565b60b881101561553957607e1981019150615635565b60c08110156155b357600060b78203600186019550806020036101000a8651049150600181018201935050808310156155ad576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615635565b60f88110156155c85760be1981019150615635565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615633576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061564d575060006111fa565b6000809050600061566184602001516154a6565b602085015185519181019250015b8082101561568f5761568082615509565b6001909301929091019061566f565b50909392505050565b80516000906015146156a957600080fd5b6112aa826147c9565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166156f65750601861571a565b6fffffffffffffffffffffffffffffffff1984166157165750601061571a565b5060005b60208110156157505781818151811061572f57fe5b01602001516001600160f81b0319161561574857615750565b60010161571a565b60008160200390506060816040519080825280601f01601f191660200182016040528015615785576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156157ca5750607f60f81b826000815181106157b857fe5b01602001516001600160f81b03191611155b156157d65750806111fa565b6112aa6157e88351608060ff16615867565b835b6060806040519050835180825260208201818101602087015b8183101561581b578051835260209283019201615803565b50855184518101855292509050808201602086015b81831015615848578051835260209283019201615830565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106158b7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116159115782840160f81b816000815181106158f357fe5b60200101906001600160f81b031916908160001a90535090506112aa565b606061591c856156b2565b90508381510160370160f81b8260008151811061593557fe5b60200101906001600160f81b031916908160001a90535061595682826157ea565b95945050505050565b805182516000916001600160a01b039182169116148015615999575081602001516001600160a01b031683602001516001600160a01b0316145b80156159be575081604001516001600160a01b031683604001516001600160a01b0316145b80156111155750506060908101519101516001600160401b0390811691161490565b60408051606081018252600080825260208201529081016159ff615aff565b905290565b8260148101928215615a32579160200282015b82811115615a32578251825591602001919060010190615a17565b50612464929150615b1e565b60408051808201909152600081526060602082015290565b6040518060400160405280615a69615ae5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8260148101928215615a32579182015b82811115615a32578254825591600101919060010190615abb565b5061140c906014810190615b1e565b604051806040016040528060008152602001600081525090565b6040518061028001604052806014906020820280368337509192915050565b61152891905b808211156124645760008155600101615b2456fe6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d69736d617463686c656e677468206f66206d61784e756d4f66576f726b696e6743616e64696461746573206d69736d617463686c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736d61746368746865206d61784e756d4f664d61696e7461696e696e67206d757374206265206c657373207468616e206e756d4f6643616e696e61746573746865206e756d4f66436162696e657473206d7573742062652067726561746572207468616e2030746865206e756d4f66436162696e657473206d757374206265206c657373207468616e204d41585f4e554d5f4f465f56414c494441544f5253746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e6765746865206d61784e756d4f66576f726b696e6743616e64696461746573206d757374206265206e6f742067726561746572207468616e206d61784e756d4f6643616e6469646174657363616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616e63656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736d61746368666565206973206c6172676572207468616e2044555354595f494e434f4d494e470175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db96c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463680175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb6661696c656420746f20706172736520696e69742076616c696461746f72536574f905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a2000746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d61696e7461696e536c6173685363616c65206d7573742062652067726561746572207468616e20300175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a264697066735822122091dd90b1dd27923c787e9f55bd1bebe31e8416465e6ce432022dfeb252e6701e64736f6c63430006040033", + Code: euler.MainnetValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "608060405234801561001057600080fd5b506004361061023d5760003560e01c80638256ace61161013b578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a1461071d578063f9a2bbc714610725578063fc3e59081461072d578063fc4333cd14610735578063fd6a68791461073d5761023d565b8063c80d4b8f14610667578063c81b16621461066f578063c8509d8114610677578063c96be4cb146106ef578063dc927faf146107155761023d565b8063a1a11bf5116100ff578063a1a11bf514610575578063a78abc161461057d578063ab51bb9614610599578063ac0af629146105a1578063ac431751146105a95761023d565b80638256ace6146104dd578063831d65d1146104e557806396713da91461055d5780639bc8e4f2146105655780639dc092621461056d5761023d565b80634bf6c882116101c95780636e47b4821161018d5780636e47b482146104b557806370fd5bad146104bd57806375d47a0a146104c55780637912a65d146104cd5780637942fd05146104d55761023d565b80634bf6c8821461046d57806351e8067214610475578063567a372d1461047d5780635bfb49901461048557806362b72cf5146104ad5761023d565b806337c8dab91161021057806337c8dab9146103cf578063389f4f711461040e5780633dffc3871461042857806343756e5c14610446578063493279b11461044e5761023d565b80630bee7a67146102425780631182b8751461026357806323bac5a21461035057806335aa2e4414610396575b600080fd5b61024a610745565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603604081101561027957600080fd5b60ff8235169190810190604081016020820135600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460018302840111600160201b831117156102d057600080fd5b50909250905061074a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103766004803603602081101561036657600080fd5b50356001600160a01b031661081e565b604080519384526020840192909252151582820152519081900360600190f35b6103b3600480360360208110156103ac57600080fd5b5035610841565b604080516001600160a01b039092168252519081900360200190f35b6103f5600480360360208110156103e557600080fd5b50356001600160a01b0316610868565b6040805192835260208301919091528051918290030190f35b6104166108bf565b60408051918252519081900360200190f35b6104306108c5565b6040805160ff9092168252519081900360200190f35b6103b36108ca565b6104566108d0565b6040805161ffff9092168252519081900360200190f35b6104306108d5565b6103b36108da565b6104166108e0565b6104ab6004803603602081101561049b57600080fd5b50356001600160a01b03166108e6565b005b610416610a47565b6103b3610a4d565b610430610a53565b6103b3610a58565b610416610a5e565b610430610a63565b6103f5610a68565b6104ab600480360360408110156104fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561051f57600080fd5b82018360208201111561053157600080fd5b803590602001918460018302840111600160201b8311171561055257600080fd5b509092509050610a72565b610430610bcc565b610416610bd1565b6103b3610bdc565b6103b3610be2565b610585610be8565b604080519115158252519081900360200190f35b61024a610bf1565b610416610bf6565b6104ab600480360360408110156105bf57600080fd5b810190602081018135600160201b8111156105d957600080fd5b8201836020820111156105eb57600080fd5b803590602001918460018302840111600160201b8311171561060c57600080fd5b919390929091602081019035600160201b81111561062957600080fd5b82018360208201111561063b57600080fd5b803590602001918460018302840111600160201b8311171561065c57600080fd5b509092509050610bfb565b610416610fe9565b6103b3610fee565b6104ab6004803603604081101561068d57600080fd5b60ff8235169190810190604081016020820135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b509092509050610ff4565b6104ab6004803603602081101561070557600080fd5b50356001600160a01b03166110a7565b6103b361154a565b6104ab611550565b6103b36115c1565b6104306115c7565b6104ab6115cc565b6103b3611a57565b606481565b6060336120001461078c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff166107d1576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061084e57fe5b6000918252602090912001546001600160a01b0316905081565b600080610873612372565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146109265760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff1661096b576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b61200063f7a251d7600b61097e84611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a2c57600080fd5b505af1158015610a40573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ab25760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16610af7576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b610aff612395565b6000610b4084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b2f92505050565b915091508015610b8a5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a40565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c40576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b3361100714610c805760405162461bcd60e51b815260040180806020018281038252602e815260200180612439602e913960400191505060405180910390fd5b610ceb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611baf9050565b15610dc45760208114610d2f5760405162461bcd60e51b81526004018080602001828103825260278152602001806123e26027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d6d91858580838501838280828437600092019190915250611c9792505050565b905060018110158015610d81575060055481105b610dbc5760405162461bcd60e51b81526004018080602001828103825260258152602001806124896025913960400191505060405180910390fd5b600455610f57565b610e2a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611baf9050565b15610f1a5760208114610e6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806124676022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610eac91858580838501838280828437600092019190915250611c9792505050565b90506103e88111158015610ec1575060045481115b610f12576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f57565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16611079576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146110e55760405162461bcd60e51b815260040180806020018281038252602d8152602001806124dd602d913960400191505060405180910390fd5b60005460ff1661112a576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6003544311611180576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111ca576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b505161124757611543565b61124f612372565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112aa576020810180516001019052611303565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161131557fe5b0661146757600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561136857600080fd5b505af115801561137c573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b61139c85611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113fc5781810151838201526020016113e4565b50505050905090810190601f1680156114295780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506114dd565b60045481602001518161147657fe5b066114dd57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156115a8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461160c5760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff16611651576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b60015461165d57611a55565b600154600090600019015b808211611a29576000805b8284101561178c57611683612372565b600260006001878154811061169457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156117765760046005548161170157fe5b0481602001510381602001818152505080600260006001888154811061172357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611780565b600192505061178c565b50600190930192611673565b8284116119235761179b612372565b60026000600186815481106117ac57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118945760046005548161181957fe5b0481602001510381602001818152505080600260006001878154811061183b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506119239050565b60026000600186815481106118a557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806118e957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119165750611923565b506000199092019161178c565b81801561192d5750805b15611a0c57600260006001868154811061194357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061198a57fe5b600091825260209091200154600180546001600160a01b0390921691869081106119b057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806119e957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611a18575050611a29565b505060019091019060001901611668565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611a78579050509050611aa1836001600160a01b0316611c9c565b81600081518110611aae57fe5b6020026020010181905250611ac243611cbf565b81600181518110611acf57fe5b6020908102919091010152611ae46038611cbf565b81600281518110611af157fe5b6020026020010181905250611b0542611cbf565b81600381518110611b1257fe5b6020026020010181905250611b2681611cd2565b9150505b919050565b611b37612395565b6000611b41612395565b611b496123a7565b611b5a611b5586611d5c565b611d81565b90506000805b611b6983611dcb565b15611ba25780611b9557611b84611b7f84611dec565b611e3a565b63ffffffff16845260019150611b9a565b611ba2565b600101611b60565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611be45780518252601f199092019160209182019101611bc5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611c525780518252601f199092019160209182019101611c33565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611b2681611ef1565b6060611c91611ccd83611f47565b611ef1565b6060815160001415611cf35750604080516000815260208101909152611b2a565b606082600081518110611d0257fe5b602002602001015190506000600190505b8351811015611d4357611d3982858381518110611d2c57fe5b602002602001015161202d565b9150600101611d13565b50611b26611d56825160c060ff166120aa565b8261202d565b611d646123c7565b506040805180820190915281518152602082810190820152919050565b611d896123a7565b611d92826121a2565b611d9b57600080fd5b6000611daa83602001516121dc565b60208085015160408051808201909152868152920190820152915050919050565b6000611dd56123c7565b505080518051602091820151919092015191011190565b611df46123c7565b611dfd82611dcb565b611e0657600080fd5b60208201516000611e168261223f565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611e4f57508151602110155b611e5857600080fd5b6000611e6783602001516121dc565b90508083600001511015611ec2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ee857826020036101000a820491505b50949350505050565b606081516001148015611f235750607f60f81b82600081518110611f1157fe5b01602001516001600160f81b03191611155b15611f2f575080611b2a565b611c91611f418351608060ff166120aa565b8361202d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f8b57506018611faf565b6fffffffffffffffffffffffffffffffff198416611fab57506010611faf565b5060005b6020811015611fe557818181518110611fc457fe5b01602001516001600160f81b03191615611fdd57611fe5565b600101611faf565b60008160200390506060816040519080825280601f01601f19166020018201604052801561201a576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561205e578051835260209283019201612046565b50855184518101855292509050808201602086015b8183101561208b578051835260209283019201612073565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106120fa576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116121545782840160f81b8160008151811061213657fe5b60200101906001600160f81b031916908160001a9053509050611c91565b606061215f85611f47565b90508381510160370160f81b8260008151811061217857fe5b60200101906001600160f81b031916908160001a905350612199828261202d565b95945050505050565b80516000906121b357506000611b2a565b6020820151805160001a9060c08210156121d257600092505050611b2a565b5060019392505050565b8051600090811a60808110156121f6576000915050611b2a565b60b8811080612211575060c08110801590612211575060f881105b15612220576001915050611b2a565b60c08110156122345760b519019050611b2a565b60f519019050611b2a565b80516000908190811a608081101561225a576001915061236b565b60b881101561226f57607e198101915061236b565b60c08110156122e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156122e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061236b565b60f88110156122fe5760be198101915061236b565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612369576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806123ba6123c7565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a264697066735822122018b8714d9e81a204e6cb56a28d2122ac3178937ed053b34fef2460106855598d64736f6c63430006040033", + Code: euler.MainnetSlashContract, }, }, } @@ -267,12 +281,12 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "6080604052600436106104055760003560e01c80638d19a41011610213578063c81b166211610123578063eb57e202116100ab578063f9a2bbc71161007a578063f9a2bbc714610d55578063fc3e590814610d6a578063fccc281314610d7f578063fd4ad81f14610d94578063fd6a687914610dd757610405565b8063eb57e20214610cd2578063eda5868c14610d05578063f340fa0114610d1a578063f92eb86b14610d4057610405565b8063daacdb66116100f2578063daacdb6614610c69578063dc927faf14610c7e578063e086c7b114610c93578063e1c7392a14610ca8578063e40716a114610cbd57610405565b8063c81b166214610c2a578063c8509d8114610939578063d68fb56a14610c3f578063d86222d514610c5457610405565b8063a78abc16116101a6578063ad3c9da611610175578063ad3c9da614610bb8578063b7ab4db514610beb578063b8cf4ef114610c00578063bf9f49951461065f578063c6d3394514610c1557610405565b8063a78abc1614610aae578063aaf5eb6814610ac3578063ab51bb9614610ad8578063ac43175114610aed57610405565b80639fe0f816116101e25780639fe0f81614610a5a578063a0dc275814610a6f578063a1a11bf514610a84578063a5422d5c14610a9957610405565b80638d19a410146109e85780639369d7de14610a1b57806396713da914610a305780639dc0926214610a4557610405565b80635192c82c1161031957806375d47a0a116102a157806381650b621161027057806381650b6214610924578063831d65d114610939578063853230aa146108e557806386249882146109be5780638b5ad0c9146109d357610405565b806375d47a0a146108d057806378dfed4a146108e55780637942fd05146108fa5780637a84ca2a1461090f57610405565b80635667515a116102e85780635667515a146108065780635d77156c1461081b5780636969a25c146108305780636e47b482146108a657806370fd5bad146108bb57610405565b80635192c82c1461077657806351e806721461078b57806355614fcc146107a0578063565c56b3146107d357610405565b80633365af3a1161039c57806343756e5c1161036b57806343756e5c1461068a57806345cf9daf146106bb578063493279b1146106d05780634bf6c882146106fc5780634df6e0c31461071157610405565b80633365af3a146105ed57806335409f7f146106175780633de0f0d81461064a5780633dffc3871461065f57610405565b8063152ad3b8116103d8578063152ad3b8146105705780631ff1806914610599578063219f22d5146105ae578063321d398a146105c357610405565b806304c4fec61461040a57806307a56847146104215780630bee7a67146104485780631182b87514610476575b600080fd5b34801561041657600080fd5b5061041f610dec565b005b34801561042d57600080fd5b50610436610e7f565b60408051918252519081900360200190f35b34801561045457600080fd5b5061045d610e85565b6040805163ffffffff9092168252519081900360200190f35b34801561048257600080fd5b506104fb6004803603604081101561049957600080fd5b60ff8235169190810190604081016020820135600160201b8111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111600160201b831117156104f057600080fd5b509092509050610e8a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053557818101518382015260200161051d565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b5061058561111c565b604080519115158252519081900360200190f35b3480156105a557600080fd5b50610436611125565b3480156105ba57600080fd5b5061045d61112b565b3480156105cf57600080fd5b50610585600480360360208110156105e657600080fd5b5035611130565b3480156105f957600080fd5b506105856004803603602081101561061057600080fd5b50356111ff565b34801561062357600080fd5b5061041f6004803603602081101561063a57600080fd5b50356001600160a01b03166112b0565b34801561065657600080fd5b5061043661140f565b34801561066b57600080fd5b50610674611415565b6040805160ff9092168252519081900360200190f35b34801561069657600080fd5b5061069f61141a565b604080516001600160a01b039092168252519081900360200190f35b3480156106c757600080fd5b50610436611420565b3480156106dc57600080fd5b506106e5611426565b6040805161ffff9092168252519081900360200190f35b34801561070857600080fd5b5061067461142b565b34801561071d57600080fd5b50610726611430565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561076257818101518382015260200161074a565b505050509050019250505060405180910390f35b34801561078257600080fd5b5061043661152b565b34801561079757600080fd5b5061069f611531565b3480156107ac57600080fd5b50610585600480360360208110156107c357600080fd5b50356001600160a01b0316611537565b3480156107df57600080fd5b50610436600480360360208110156107f657600080fd5b50356001600160a01b031661156c565b34801561081257600080fd5b506106746115bd565b34801561082757600080fd5b5061045d6115c2565b34801561083c57600080fd5b5061085a6004803603602081101561085357600080fd5b50356115c7565b604080516001600160a01b039788168152958716602087015293909516848401526001600160401b0390911660608401521515608083015260a082019290925290519081900360c00190f35b3480156108b257600080fd5b5061069f61162b565b3480156108c757600080fd5b50610674611631565b3480156108dc57600080fd5b5061069f611636565b3480156108f157600080fd5b5061043661163c565b34801561090657600080fd5b50610674611642565b34801561091b57600080fd5b50610436611647565b34801561093057600080fd5b5061045d61164d565b34801561094557600080fd5b5061041f6004803603604081101561095c57600080fd5b60ff8235169190810190604081016020820135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460018302840111600160201b831117156109b357600080fd5b509092509050611652565b3480156109ca57600080fd5b50610436611705565b3480156109df57600080fd5b5061043661170b565b3480156109f457600080fd5b5061043660048036036020811015610a0b57600080fd5b50356001600160a01b0316611711565b348015610a2757600080fd5b5061041f611786565b348015610a3c57600080fd5b506106746118a0565b348015610a5157600080fd5b5061069f6118a5565b348015610a6657600080fd5b506104366118ab565b348015610a7b57600080fd5b506104366118b0565b348015610a9057600080fd5b5061069f6118b5565b348015610aa557600080fd5b506104fb6118bb565b348015610aba57600080fd5b506105856118da565b348015610acf57600080fd5b506104366118e3565b348015610ae457600080fd5b5061045d6115bd565b348015610af957600080fd5b5061041f60048036036040811015610b1057600080fd5b810190602081018135600160201b811115610b2a57600080fd5b820183602082011115610b3c57600080fd5b803590602001918460018302840111600160201b83111715610b5d57600080fd5b919390929091602081019035600160201b811115610b7a57600080fd5b820183602082011115610b8c57600080fd5b803590602001918460018302840111600160201b83111715610bad57600080fd5b5090925090506118ec565b348015610bc457600080fd5b5061043660048036036020811015610bdb57600080fd5b50356001600160a01b0316612329565b348015610bf757600080fd5b5061072661233b565b348015610c0c57600080fd5b5061043661241e565b348015610c2157600080fd5b50610436611631565b348015610c3657600080fd5b5061069f612423565b348015610c4b57600080fd5b50610436612429565b348015610c6057600080fd5b50610436612468565b348015610c7557600080fd5b50610436612474565b348015610c8a57600080fd5b5061069f61247a565b348015610c9f57600080fd5b50610436612480565b348015610cb457600080fd5b5061041f612485565b348015610cc957600080fd5b50610436612688565b348015610cde57600080fd5b5061041f60048036036020811015610cf557600080fd5b50356001600160a01b031661268e565b348015610d1157600080fd5b5061045d61279c565b61041f60048036036020811015610d3057600080fd5b50356001600160a01b03166127a1565b348015610d4c57600080fd5b50610436612aa6565b348015610d6157600080fd5b5061069f612aac565b348015610d7657600080fd5b506106746118ab565b348015610d8b57600080fd5b5061069f612ab2565b348015610da057600080fd5b50610dbe60048036036020811015610db757600080fd5b5035612ab8565b6040805192835290151560208301528051918290030190f35b348015610de357600080fd5b5061069f612ae6565b6000610df733611711565b9050600b8181548110610e0657fe5b600091825260209091206001601690920201015460ff16610e63576040805162461bcd60e51b81526020600482015260126024820152716e6f7420696e206d61696e74656e616e636560701b604482015290519081900360640190fd5b6000610e6d612429565b9050610e7a338383612aec565b505050565b60095481565b606481565b60005460609060ff16610ee0576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361200014610f205760405162461bcd60e51b815260040180806020018281038252602f815260200180616047602f913960400191505060405180910390fd5b600b54610fc557610f2f6159e0565b60015460005b81811015610fc157600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff191691151591909117905560408501518592610fb391600080516020616006833981519152909101906014615a04565b505050806001019050610f35565b5050505b610fcd615a3e565b600061100e85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ce092505050565b915091508061102a576110216064612e39565b92505050611115565b815160009060ff1661104a576110438360200151612e9a565b90506110e1565b825160ff16600114156110dd578260200151516001146110b7577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526025815260200180615f066025913960400191505060405180910390a15060676110d8565b61104383602001516000815181106110cb57fe5b6020026020010151613caa565b6110e1565b5060655b63ffffffff811661110657505060408051600081526020810190915291506111159050565b61110f81612e39565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b6001546000908210611144575060006111fa565b60006001600160a01b03166001838154811061115c57fe5b60009182526020909120600490910201546001600160a01b0316148061118c5750600854158061118c5750600a54155b8061119b575060085460095410155b806111ac57506111aa826111ff565b155b806111d557506000600b83815481106111c157fe5b906000526020600020906016020160000154115b806111e9575060016111e561233b565b5111155b156111f6575060006111fa565b5060015b919050565b6001546000908210611213575060006111fa565b600b548210611250576001828154811061122957fe5b9060005260206000209060040201600201601c9054906101000a900460ff161590506111fa565b6001828154811061125d57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156112aa5750600b828154811061129157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146112f05760405162461bcd60e51b81526004018080602001828103825260298152602001806160f06029913960400191505060405180910390fd5b600b54611395576112ff6159e0565b60015460005b8181101561139157600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261138391600080516020616006833981519152909101906014615a04565b505050806001019050611305565b5050505b6001600160a01b038116600090815260046020526040902054806113b9575061140c565b6001810390506000600b82815481106113ce57fe5b600091825260209091206001601690920201015460ff1690506113f18383613e21565b80156113fa5750805b15610e7a576009805460001901905550505b50565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c546060919080611443575060155b606061144d61233b565b905081815111611461579250611528915050565b82828251031015611473578181510392505b82156114a75760c8430461148e82828686036000888861419d565b6114a582828686038787038889898951030161419d565b505b6060826040519080825280602002602001820160405280156114d3578160200160208202803683370190505b50905060005b83811015611521578281815181106114ed57fe5b602002602001015182828151811061150157fe5b6001600160a01b03909216602092830291909101909101526001016114d9565b5093505050505b90565b60065481565b61200081565b6001600160a01b0381166000908152600460205260408120548061155f5760009150506111fa565b60001901611115816111ff565b6001600160a01b038116600090815260046020526040812054806115945760009150506111fa565b6001808203815481106115a357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600181815481106115d457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b61100881565b6103e881565b600b81565b600c5481565b606681565b33612000146116925760405162461bcd60e51b815260040180806020018281038252602f815260200180616047602f913960400191505060405180910390fd5b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b60025481565b600a5481565b6001600160a01b0381166000908152600460205260408120548061177c576040805162461bcd60e51b815260206004820152601760248201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604482015290519081900360640190fd5b6000190192915050565b600b5461182b576117956159e0565b60015460005b8181101561182757600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261181991600080516020616006833981519152909101906014615a04565b50505080600101905061179b565b5050505b6008546118385760036008555b600a54611845576002600a555b600061185033611711565b905061185b81611130565b6118965760405162461bcd60e51b8152600401808060200182810382526023815260200180615ee36023913960400191505060405180910390fd5b61140c338261428c565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001615b396101ab913981565b60005460ff1681565b6402540be40081565b60005460ff1661193f576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461197f5760405162461bcd60e51b815260040180806020018281038252602e815260200180615f4c602e913960400191505060405180910390fd5b6119e984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506143249050565b15611ac45760208114611a2d5760405162461bcd60e51b8152600401808060200182810382526026815260200180615fe06026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611a6b9185858083850183828082843760009201919091525061440b92505050565b905060648110158015611a815750620186a08111155b611abc5760405162461bcd60e51b8152600401808060200182810382526027815260200180615e736027913960400191505060405180910390fd5b600255612297565b611b2484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506143249050565b15611c145760208114611b7e576040805162461bcd60e51b815260206004820152601c60248201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611bbc9185858083850183828082843760009201919091525061440b92505050565b9050612710811115611bff5760405162461bcd60e51b815260040180806020018281038252602b815260200180615e1d602b913960400191505060405180910390fd5b6006556007805460ff19166001179055612297565b611c7e84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506143249050565b15611d565760208114611cc25760405162461bcd60e51b8152600401808060200182810382526026815260200180615ce46026913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611d009185858083850183828082843760009201919091525061440b92505050565b600c5490915080611d0f575060155b808210611d4d5760405162461bcd60e51b8152600401808060200182810382526038815260200180615d5b6038913960400191505060405180910390fd5b50600855612297565b611dbf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506143249050565b15611e8a5760208114611e035760405162461bcd60e51b8152600401808060200182810382526025815260200180615d366025913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611e419185858083850183828082843760009201919091525061440b92505050565b905060008111611e825760405162461bcd60e51b815260040180806020018281038252602d8152602001806160a3602d913960400191505060405180910390fd5b600a55612297565b611efe84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506143249050565b15611fcb5760208114611f425760405162461bcd60e51b815260040180806020018281038252602c815260200180615d0a602c913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091611f809185858083850183828082843760009201919091525061440b92505050565b9050600d54811115611fc35760405162461bcd60e51b8152600401808060200182810382526049815260200180615e9a6049913960600191505060405180910390fd5b600e55612297565b61203484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506143249050565b156120d557602081146120785760405162461bcd60e51b8152600401808060200182810382526025815260200180615f7a6025913960400191505060405180910390fd5b604080516020601f84018190048102820181019092528281526000916120b69185858083850183828082843760009201919091525061440b92505050565b600d819055600e549091508110156120cf57600d54600e555b50612297565b61213984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506143249050565b1561225a5760208114612193576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121d19185858083850183828082843760009201919091525061440b92505050565b9050600081116122125760405162461bcd60e51b8152600401808060200182810382526028815260200180615d936028913960400191505060405180910390fd5b60298111156122525760405162461bcd60e51b8152600401808060200182810382526039815260200180615dbb6039913960400191505060405180910390fd5b600c55612297565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60046020526000908152604090205481565b6001546060906000805b8281101561236a57612356816111ff565b15612362576001909101905b600101612345565b50606081604051908082528060200260200182016040528015612397578160200160208202803683370190505b5090506000915060005b83811015612416576123b2816111ff565b1561240e57600181815481106123c457fe5b600091825260209091206004909102015482516001600160a01b03909116908390859081106123ef57fe5b6001600160a01b03909216602092830291909101909101526001909201915b6001016123a1565b509250505090565b601581565b61100281565b600061243361233b565b519050600080600c541161244857601561244c565b600c545b90508082111561245a578091505b8161246457600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156124dd576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6124e5615a3e565b600061250b604051806101e001604052806101ab8152602001615b396101ab9139612ce0565b915091508061254b5760405162461bcd60e51b81526004018080602001828103825260218152602001806160266021913960400191505060405180910390fd5b60005b8260200151518110156126705760018360200151828151811061256d57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061264357fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161254e565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146126ce5760405162461bcd60e51b81526004018080602001828103825260298152602001806160f06029913960400191505060405180910390fd5b600b54612773576126dd6159e0565b60015460005b8181101561276f57600b80546001810182556000919091528351600080516020615fc0833981519152601690920291820190815560208501516000805160206160d08339815191528301805460ff19169115159190911790556040850151859261276191600080516020616006833981519152909101906014615a04565b5050508060010190506126e3565b5050505b600061277e82614410565b905061278981611130565b1561279857612798828261428c565b5050565b606581565b3341146127df5760405162461bcd60e51b815260040180806020018281038252602d815260200180616076602d913960400191505060405180910390fd5b60005460ff16612832576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b6000341161287f576040805162461bcd60e51b81526020600482015260156024820152746465706f7369742076616c7565206973207a65726f60581b604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff16156128af57506006545b6000831180156128bf5750600081115b156129685760006128e86127106128dc868563ffffffff6145b416565b9063ffffffff61460d16565b905080156129665760405161dead9082156108fc029083906000818181858888f1935050505015801561291f573d6000803e3d6000fd5b506040805182815290517f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee59181900360200190a1612963848263ffffffff61464f16565b93505b505b8115612a6057600060018084038154811061297f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156129ea576040805185815290516001600160a01b038716917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a2612a5a565b6003546129fd908563ffffffff61469116565b6003908155810154612a15908563ffffffff61469116565b60038201556040805185815290516001600160a01b038716917f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc055919081900360200190a25b50612aa0565b6040805184815290516001600160a01b038616917ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4919081900360200190a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612ac557fe5b60009182526020909120601690910201805460019091015490915060ff1682565b61100481565b6000600a5460001480612afd575081155b80612b085750600954155b15612b1557506000611115565b600960008154809291906001900391905055506000612b62600a546128dc856128dc600b8981548110612b4457fe5b6000918252602090912060169091020154439063ffffffff61464f16565b90506000600b8581548110612b7357fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612bd857600080fd5b505afa158015612bec573d6000803e3d6000fd5b505050506040513d6040811015612c0257600080fd5b508051602090910151600095509092509050808310612c9057612c258787613e21565b50604080516305bfb49960e41b81526001600160a01b0389166004820152905161100191635bfb499091602480830192600092919082900301818387803b158015612c6f57600080fd5b505af1158015612c83573d6000803e3d6000fd5b5050505060019350612ca2565b818310612ca257612ca087614410565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612ce8615a3e565b6000612cf2615a3e565b612cfa615a56565b612d0b612d06866146eb565b614710565b90506000805b612d1a8361475a565b15612e2b5780612d3f57612d35612d308461477b565b6147c9565b60ff168452612e23565b8060011415612e1e576060612d5b612d568561477b565b614880565b90508051604051908082528060200260200182016040528015612d9857816020015b612d85615a76565b815260200190600190039081612d7d5790505b50602086015260005b8151811015612e1357612db2615a76565b6000612dd0848481518110612dc357fe5b6020026020010151614951565b9150915080612ded57876000995099505050505050505050612e34565b8188602001518481518110612dfe57fe5b60209081029190910101525050600101612da1565b506001925050612e23565b612e2b565b600101612d11565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081612e53579050509050612e798363ffffffff16614a2e565b81600081518110612e8657fe5b602002602001018190525061111581614a41565b6000806060612ea884614acb565b9150915081612f55577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015612f10578181015183820152602001612ef8565b50505050905090810190601f168015612f3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066925050506111fa565b50506060612f6283614bad565b6001549091506000908190815b81811015612fe55767016345785d8a000060018281548110612f8d57fe5b90600052602060002090600402016003015410612faf57600190930192612fdd565b600060018281548110612fbe57fe5b9060005260206000209060040201600301541115612fdd576001909201915b600101612f6f565b50606083604051908082528060200260200182016040528015613012578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613041578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613070578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561309f578160200160208202803683370190505b50905060006060876040519080825280602002602001820160405280156130d0578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156130ff578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561314757600080fd5b505afa15801561315b573d6000803e3d6000fd5b505050506040513d602081101561317157600080fd5b5051905067016345785d8a00008111156131e5577f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2604051808060200182810382526021815260200180615f9f6021913960400191505060405180910390a160689c505050505050505050505050506111fa565b60005b898110156134565767016345785d8a00006001828154811061320657fe5b9060005260206000209060040201600301541061338c576001818154811061322a57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061325b57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061329057fe5b906000526020600020906004020160030154816132a957fe5b06600183815481106132b757fe5b9060005260206000209060040201600301540390506132df838261464f90919063ffffffff16565b898e815181106132eb57fe5b6020026020010181815250506001828154811061330457fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e8151811061333557fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061336257fe5b602090810291909101015261337d868263ffffffff61469116565b6001909d019c955061344e9050565b60006001828154811061339b57fe5b906000526020600020906004020160030154111561344e57600181815481106133c057fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c815181106133f157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061341e57fe5b906000526020600020906004020160030154838c8151811061343c57fe5b60209081029190910101526001909a01995b6001016131e8565b5060008415613894576110046001600160a01b0316636e056520868b8b8a60025442016040518663ffffffff1660e01b815260040180806020018060200180602001856001600160401b03166001600160401b03168152602001848103845288818151815260200191508051906020019060200280838360005b838110156134e85781810151838201526020016134d0565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561352757818101518382015260200161350f565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561356657818101518382015260200161354e565b505050509050019750505050505050506020604051808303818588803b15801561358f57600080fd5b505af1935050505080156135b557506040513d60208110156135b057600080fd5b505160015b6137f0576040516000815260443d10156135d15750600061366c565b60046000803e60005160e01c6308c379a081146135f257600091505061366c565b60043d036004833e81513d60248201116001600160401b038211171561361d5760009250505061366c565b80830180516001600160401b0381111561363e57600094505050505061366c565b8060208301013d860181111561365c5760009550505050505061366c565b601f01601f191660405250925050505b80613677575061371b565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280826040518080602001828103825283818151815260200191508051906020019080838360005b838110156136db5781810151838201526020016136c3565b50505050905090810190601f1680156137085780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506137eb565b3d808015613745576040519150601f19603f3d011682016040523d82523d6000602084013e61374a565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040518080602001828103825283818151815260200191508051906020019080838360005b838110156137af578181015183820152602001613797565b50505050905090810190601f1680156137dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b613894565b801561382e576040805187815290517fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b709181900360200190a1613892565b604080516020808252601b908201527f6261746368207472616e736665722072657475726e2066616c7365000000000081830152905187917fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280919081900360600190a25b505b8015613a4a5760005b8751811015613a485760008882815181106138b457fe5b602002602001015190506000600182815481106138cd57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106138fe57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f19350505050905080156139ba576001828154811061393f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d918590811061398e57fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a2613a3e565b600182815481106139c757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613a1657fe5b9060005260206000209060040201600301546040518082815260200191505060405180910390a25b505060010161389d565b505b835115613b945760005b8451811015613b92576000858281518110613a6b57fe5b60200260200101516001600160a01b03166108fc868481518110613a8b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613b2157858281518110613ac157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613aff57fe5b60200260200101516040518082815260200191505060405180910390a2613b89565b858281518110613b2d57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613b6b57fe5b60200260200101516040518082815260200191505060405180910390a25b50600101613a54565b505b4715613bfd576040805147815290517f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d9181900360200190a1604051611002904780156108fc02916000818181858888f19350505050158015613bfb573d6000803e3d6000fd5b505b600060038190556005558c5115613c1757613c178d614d7d565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613c5457600080fd5b505af1158015613c68573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a15060009e9d5050505050505050505050505050565b80516001600160a01b0316600090815260046020526040812054801580613cfb5750600180820381548110613cdb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613d415782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a260009150506111fa565b600154600554600019820111801590613d975784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600093505050506111fa565b600580546001908101909155805481906000198601908110613db557fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b60008060018381548110613e3157fe5b90600052602060002090600402016003015490506000600180805490500390506001613e5b61233b565b5111613e9057600060018581548110613e7057fe5b9060005260206000209060040201600301819055506000925050506112aa565b6040805183815290516001600160a01b038716917f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70919081900360200190a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561408d5760018160010181548110613f0857fe5b906000526020600020906004020160018281548110613f2357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b805490918301908110613fe457fe5b9060005260206000209060160201600b8281548110613fff57fe5b600091825260209091208254601690920201908155600180830154908201805460ff191660ff909216151591909117905561404260028083019084016014615aab565b5090505080600101600460006001848154811061405b57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101613eea565b50600180548061409957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806140ec57fe5b60008281526020812060166000199093019283020181815560018101805460ff191690559061411e6002830182615ad6565b50509055600081838161412d57fe5b04905080156141915760015460005b8181101561418e57826001828154811061415257fe5b906000526020600020906004020160030154016001828154811061417257fe5b600091825260209091206003600490920201015560010161413c565b50505b50600195945050505050565b60005b828110156142835760408051602080820189905287840182840152825180830384018152606090920190925280519101206000908390816141dd57fe5b0690508085018287011461427a57600088838801815181106141fb57fe5b60200260200101519050888287018151811061421357fe5b6020026020010151898489018151811061422957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505080898388018151811061425857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050505b506001016141a0565b50505050505050565b600980546001908101909155600b8054839081106142a657fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106142dc57fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020018082805190602001908083835b602083106143595780518252601f19909201916020918201910161433a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106143c75780518252601f1990920191602091820191016143a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526004602052604081205480614439575060001990506111fa565b60018103905060006001828154811061444e57fe5b906000526020600020906004020160030154905060006001838154811061447157fe5b906000526020600020906004020160030181905550600060018080549050039050846001600160a01b03167f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d836040518082815260200191505060405180910390a2806144e3578293505050506111fa565b60008183816144ee57fe5b04905080156145aa5760005b8481101561454c57816001828154811061451057fe5b906000526020600020906004020160030154016001828154811061453057fe5b60009182526020909120600360049092020101556001016144fa565b50600180549085015b818110156145a757826001828154811061456b57fe5b906000526020600020906004020160030154016001828154811061458b57fe5b6000918252602090912060036004909202010155600101614555565b50505b5091949350505050565b6000826145c3575060006112aa565b828202828482816145d057fe5b04146111155760405162461bcd60e51b8152600401808060200182810382526021815260200180615f2b6021913960400191505060405180910390fd5b600061111583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615370565b600061111583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615412565b600082820183811015611115576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6146f3615ae5565b506040805180820190915281518152602082810190820152919050565b614718615a56565b6147218261546c565b61472a57600080fd5b600061473983602001516154a6565b60208085015160408051808201909152868152920190820152915050919050565b6000614764615ae5565b505080518051602091820151919092015191011190565b614783615ae5565b61478c8261475a565b61479557600080fd5b602082015160006147a582615509565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906147de57508151602110155b6147e757600080fd5b60006147f683602001516154a6565b90508083600001511015614851576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561487757826020036101000a820491505b50949350505050565b606061488b8261546c565b61489457600080fd5b600061489f8361563c565b90506060816040519080825280602002602001820160405280156148dd57816020015b6148ca615ae5565b8152602001906001900390816148c25790505b50905060006148ef85602001516154a6565b60208601510190506000805b848110156149465761490c83615509565b915060405180604001604052808381526020018481525084828151811061492f57fe5b6020908102919091010152918101916001016148fb565b509195945050505050565b614959615a76565b6000614963615a76565b61496b615a56565b61497485614710565b90506000805b6149838361475a565b15612e2b57806149ae5761499e6149998461477b565b615698565b6001600160a01b03168452614a26565b80600114156149d6576149c36149998461477b565b6001600160a01b03166020850152614a26565b80600214156149fe576149eb6149998461477b565b6001600160a01b03166040850152614a26565b8060031415612e1e57614a13612d308461477b565b6001600160401b03166060850152600191505b60010161497a565b60606112aa614a3c836156b2565b615798565b6060815160001415614a6257506040805160008152602081019091526111fa565b606082600081518110614a7157fe5b602002602001015190506000600190505b8351811015614ab257614aa882858381518110614a9b57fe5b60200260200101516157ea565b9150600101614a82565b50611115614ac5825160c060ff16615867565b826157ea565b60006060602983511115614afd576000604051806060016040528060298152602001615df46029913991509150612e34565b60005b8351811015614b935760005b81811015614b8a57848181518110614b2057fe5b6020026020010151600001516001600160a01b0316858381518110614b4157fe5b6020026020010151600001516001600160a01b03161415614b825760006040518060600160405280602b8152602001615e48602b9139935093505050612e34565b600101614b0c565b50600101614b00565b505060408051602081019091526000815260019150915091565b6060600080808080614bbd612429565b6001549091505b8015614ccb57600181039250600b8381548110614bdd57fe5b600091825260209091206001601690920201015460ff16614bfd57614cc2565b60018381548110614c0a57fe5b60009182526020909120600490910201546001600160a01b03169450614c31858484612aec565b9350831580614c44575060018851038610155b15614c4e57614cc2565b60005b8851811015614cc057856001600160a01b0316898281518110614c7057fe5b6020026020010151600001516001600160a01b03161415614cb8576001898281518110614c9957fe5b6020908102919091010151901515608090910152600190960195614cc0565b600101614c51565b505b60001901614bc4565b5084875103604051908082528060200260200182016040528015614d0957816020015b614cf6615a76565b815260200190600190039081614cee5790505b5095506000915060005b8751811015614d7257878181518110614d2857fe5b602002602001015160800151614d6a57878181518110614d4457fe5b6020026020010151878481518110614d5857fe5b60209081029190910101526001909201915b600101614d13565b505050505050919050565b600154815160005b82811015614e9a576001614d97615a76565b60018381548110614da457fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614e6e57868181518110614e3457fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614e665760009250614e6e565b600101614e20565b508115614e905780516001600160a01b03166000908152600460205260408120555b5050600101614d85565b5080821115614f4b57805b82811015614f49576001805480614eb857fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480614f0b57fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590614f3d6002830182615ad6565b50509055600101614ea5565b505b6000818310614f5a5781614f5c565b825b905060005b818110156151565761500e858281518110614f7857fe5b602002602001015160018381548110614f8d57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261595f565b61512957806001016004600087848151811061502657fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555084818151811061506257fe5b60200260200101516001828154811061507757fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015561514e565b60006001828154811061513857fe5b9060005260206000209060040201600301819055505b600101614f61565b50828211156152fb576151676159e0565b835b838110156152f857600186828151811061517f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020615fc08339815191528101918255918501516000805160206160d08339815191528301805491151560ff19909216919091179055918401518492916152b491600080516020616006833981519152909101906014615a04565b50505080600101600460008884815181106152cb57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615169565b50505b6000600981905560015493505b83811015615369576000600b828154811061531f57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061535057fe5b6000918252602090912060169091020155600101615308565b5050505050565b600081836153fc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153c15781810151838201526020016153a9565b50505050905090810190601f1680156153ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161540857fe5b0495945050505050565b600081848411156154645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156153c15781810151838201526020016153a9565b505050900390565b805160009061547d575060006111fa565b6020820151805160001a9060c082101561549c576000925050506111fa565b5060019392505050565b8051600090811a60808110156154c05760009150506111fa565b60b88110806154db575060c081108015906154db575060f881105b156154ea5760019150506111fa565b60c08110156154fe5760b5190190506111fa565b60f5190190506111fa565b80516000908190811a60808110156155245760019150615635565b60b881101561553957607e1981019150615635565b60c08110156155b357600060b78203600186019550806020036101000a8651049150600181018201935050808310156155ad576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615635565b60f88110156155c85760be1981019150615635565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615633576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061564d575060006111fa565b6000809050600061566184602001516154a6565b602085015185519181019250015b8082101561568f5761568082615509565b6001909301929091019061566f565b50909392505050565b80516000906015146156a957600080fd5b6112aa826147c9565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166156f65750601861571a565b6fffffffffffffffffffffffffffffffff1984166157165750601061571a565b5060005b60208110156157505781818151811061572f57fe5b01602001516001600160f81b0319161561574857615750565b60010161571a565b60008160200390506060816040519080825280601f01601f191660200182016040528015615785576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156157ca5750607f60f81b826000815181106157b857fe5b01602001516001600160f81b03191611155b156157d65750806111fa565b6112aa6157e88351608060ff16615867565b835b6060806040519050835180825260208201818101602087015b8183101561581b578051835260209283019201615803565b50855184518101855292509050808201602086015b81831015615848578051835260209283019201615830565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106158b7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116159115782840160f81b816000815181106158f357fe5b60200101906001600160f81b031916908160001a90535090506112aa565b606061591c856156b2565b90508381510160370160f81b8260008151811061593557fe5b60200101906001600160f81b031916908160001a90535061595682826157ea565b95945050505050565b805182516000916001600160a01b039182169116148015615999575081602001516001600160a01b031683602001516001600160a01b0316145b80156159be575081604001516001600160a01b031683604001516001600160a01b0316145b80156111155750506060908101519101516001600160401b0390811691161490565b60408051606081018252600080825260208201529081016159ff615aff565b905290565b8260148101928215615a32579160200282015b82811115615a32578251825591602001919060010190615a17565b50612464929150615b1e565b60408051808201909152600081526060602082015290565b6040518060400160405280615a69615ae5565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8260148101928215615a32579182015b82811115615a32578254825591600101919060010190615abb565b5061140c906014810190615b1e565b604051806040016040528060008152602001600081525090565b6040518061028001604052806014906020820280368337509192915050565b61152891905b808211156124645760008155600101615b2456fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a784100000006c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d69736d617463686c656e677468206f66206d61784e756d4f66576f726b696e6743616e64696461746573206d69736d617463686c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736d61746368746865206d61784e756d4f664d61696e7461696e696e67206d757374206265206c657373207468616e206e756d4f6643616e696e61746573746865206e756d4f66436162696e657473206d7573742062652067726561746572207468616e2030746865206e756d4f66436162696e657473206d757374206265206c657373207468616e204d41585f4e554d5f4f465f56414c494441544f5253746865206e756d626572206f662076616c696461746f72732065786365656420746865206c696d6974746865206275726e526174696f206d757374206265206e6f2067726561746572207468616e2031303030306475706c696361746520636f6e73656e7375732061646472657373206f662076616c696461746f725365747468652065787069726554696d655365636f6e64476170206973206f7574206f662072616e6765746865206d61784e756d4f66576f726b696e6743616e64696461746573206d757374206265206e6f742067726561746572207468616e206d61784e756d4f6643616e6469646174657363616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616e63656c656e677468206f66206a61696c2076616c696461746f7273206d757374206265206f6e65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736d61746368666565206973206c6172676572207468616e2044555354595f494e434f4d494e470175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db96c656e677468206f662065787069726554696d655365636f6e64476170206d69736d617463680175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb6661696c656420746f20706172736520696e69742076616c696461746f72536574746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f6475636572746865206d61696e7461696e536c6173685363616c65206d7573742062652067726561746572207468616e20300175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba746865206d6573736167652073656e646572206d75737420626520736c61736820636f6e7472616374a2646970667358221220c0dc878fd08b0a4bf6659ead68604aefff201930a1931eca7eb88ebdf3b0a03e64736f6c63430006040033", + Code: euler.ChapelValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/db8bb560ac5a1265c685b719c7e976dced162310", - Code: "608060405234801561001057600080fd5b506004361061023d5760003560e01c80638256ace61161013b578063c80d4b8f116100b8578063e1c7392a1161007c578063e1c7392a1461071d578063f9a2bbc714610725578063fc3e59081461072d578063fc4333cd14610735578063fd6a68791461073d5761023d565b8063c80d4b8f14610667578063c81b16621461066f578063c8509d8114610677578063c96be4cb146106ef578063dc927faf146107155761023d565b8063a1a11bf5116100ff578063a1a11bf514610575578063a78abc161461057d578063ab51bb9614610599578063ac0af629146105a1578063ac431751146105a95761023d565b80638256ace6146104dd578063831d65d1146104e557806396713da91461055d5780639bc8e4f2146105655780639dc092621461056d5761023d565b80634bf6c882116101c95780636e47b4821161018d5780636e47b482146104b557806370fd5bad146104bd57806375d47a0a146104c55780637912a65d146104cd5780637942fd05146104d55761023d565b80634bf6c8821461046d57806351e8067214610475578063567a372d1461047d5780635bfb49901461048557806362b72cf5146104ad5761023d565b806337c8dab91161021057806337c8dab9146103cf578063389f4f711461040e5780633dffc3871461042857806343756e5c14610446578063493279b11461044e5761023d565b80630bee7a67146102425780631182b8751461026357806323bac5a21461035057806335aa2e4414610396575b600080fd5b61024a610745565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603604081101561027957600080fd5b60ff8235169190810190604081016020820135600160201b81111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460018302840111600160201b831117156102d057600080fd5b50909250905061074a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103766004803603602081101561036657600080fd5b50356001600160a01b031661081e565b604080519384526020840192909252151582820152519081900360600190f35b6103b3600480360360208110156103ac57600080fd5b5035610841565b604080516001600160a01b039092168252519081900360200190f35b6103f5600480360360208110156103e557600080fd5b50356001600160a01b0316610868565b6040805192835260208301919091528051918290030190f35b6104166108bf565b60408051918252519081900360200190f35b6104306108c5565b6040805160ff9092168252519081900360200190f35b6103b36108ca565b6104566108d0565b6040805161ffff9092168252519081900360200190f35b6104306108d5565b6103b36108da565b6104166108e0565b6104ab6004803603602081101561049b57600080fd5b50356001600160a01b03166108e6565b005b610416610a47565b6103b3610a4d565b610430610a53565b6103b3610a58565b610416610a5e565b610430610a63565b6103f5610a68565b6104ab600480360360408110156104fb57600080fd5b60ff8235169190810190604081016020820135600160201b81111561051f57600080fd5b82018360208201111561053157600080fd5b803590602001918460018302840111600160201b8311171561055257600080fd5b509092509050610a72565b610430610bcc565b610416610bd1565b6103b3610bdc565b6103b3610be2565b610585610be8565b604080519115158252519081900360200190f35b61024a610bf1565b610416610bf6565b6104ab600480360360408110156105bf57600080fd5b810190602081018135600160201b8111156105d957600080fd5b8201836020820111156105eb57600080fd5b803590602001918460018302840111600160201b8311171561060c57600080fd5b919390929091602081019035600160201b81111561062957600080fd5b82018360208201111561063b57600080fd5b803590602001918460018302840111600160201b8311171561065c57600080fd5b509092509050610bfb565b610416610fe9565b6103b3610fee565b6104ab6004803603604081101561068d57600080fd5b60ff8235169190810190604081016020820135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b509092509050610ff4565b6104ab6004803603602081101561070557600080fd5b50356001600160a01b03166110a7565b6103b361154a565b6104ab611550565b6103b36115c1565b6104306115c7565b6104ab6115cc565b6103b3611a57565b606481565b6060336120001461078c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff166107d1576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061084e57fe5b6000918252602090912001546001600160a01b0316905081565b600080610873612372565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146109265760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff1661096b576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b61200063f7a251d7600b61097e84611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156109de5781810151838201526020016109c6565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a2c57600080fd5b505af1158015610a40573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ab25760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16610af7576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b610aff612395565b6000610b4084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b2f92505050565b915091508015610b8a5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a40565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c40576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b3361100714610c805760405162461bcd60e51b815260040180806020018281038252602e815260200180612439602e913960400191505060405180910390fd5b610ceb84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611baf9050565b15610dc45760208114610d2f5760405162461bcd60e51b81526004018080602001828103825260278152602001806123e26027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d6d91858580838501838280828437600092019190915250611c9792505050565b905060018110158015610d81575060055481105b610dbc5760405162461bcd60e51b81526004018080602001828103825260258152602001806124896025913960400191505060405180910390fd5b600455610f57565b610e2a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611baf9050565b15610f1a5760208114610e6e5760405162461bcd60e51b81526004018080602001828103825260228152602001806124676022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610eac91858580838501838280828437600092019190915250611c9792505050565b90506103e88111158015610ec1575060045481115b610f12576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f57565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110345760405162461bcd60e51b815260040180806020018281038252602f8152602001806124ae602f913960400191505060405180910390fd5b60005460ff16611079576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146110e55760405162461bcd60e51b815260040180806020018281038252602d8152602001806124dd602d913960400191505060405180910390fd5b60005460ff1661112a576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b6003544311611180576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111ca576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d602081101561123c57600080fd5b505161124757611543565b61124f612372565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112aa576020810180516001019052611303565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161131557fe5b0661146757600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561136857600080fd5b505af115801561137c573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b61139c85611a5d565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156113fc5781810151838201526020016113e4565b50505050905090810190601f1680156114295780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561144a57600080fd5b505af115801561145e573d6000803e3d6000fd5b505050506114dd565b60045481602001518161147657fe5b066114dd57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156115a8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461160c5760405162461bcd60e51b81526004018080602001828103825260308152602001806124096030913960400191505060405180910390fd5b60005460ff16611651576040805162461bcd60e51b8152602060048201526019602482015260008051602061250a833981519152604482015290519081900360640190fd5b60015461165d57611a55565b600154600090600019015b808211611a29576000805b8284101561178c57611683612372565b600260006001878154811061169457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156117765760046005548161170157fe5b0481602001510381602001818152505080600260006001888154811061172357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611780565b600192505061178c565b50600190930192611673565b8284116119235761179b612372565b60026000600186815481106117ac57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118945760046005548161181957fe5b0481602001510381602001818152505080600260006001878154811061183b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506119239050565b60026000600186815481106118a557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806118e957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119165750611923565b506000199092019161178c565b81801561192d5750805b15611a0c57600260006001868154811061194357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548490811061198a57fe5b600091825260209091200154600180546001600160a01b0390921691869081106119b057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806119e957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611a18575050611a29565b505060019091019060001901611668565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611a78579050509050611aa1836001600160a01b0316611c9c565b81600081518110611aae57fe5b6020026020010181905250611ac243611cbf565b81600181518110611acf57fe5b6020908102919091010152611ae46061611cbf565b81600281518110611af157fe5b6020026020010181905250611b0542611cbf565b81600381518110611b1257fe5b6020026020010181905250611b2681611cd2565b9150505b919050565b611b37612395565b6000611b41612395565b611b496123a7565b611b5a611b5586611d5c565b611d81565b90506000805b611b6983611dcb565b15611ba25780611b9557611b84611b7f84611dec565b611e3a565b63ffffffff16845260019150611b9a565b611ba2565b600101611b60565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611be45780518252601f199092019160209182019101611bc5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611c525780518252601f199092019160209182019101611c33565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611b2681611ef1565b6060611c91611ccd83611f47565b611ef1565b6060815160001415611cf35750604080516000815260208101909152611b2a565b606082600081518110611d0257fe5b602002602001015190506000600190505b8351811015611d4357611d3982858381518110611d2c57fe5b602002602001015161202d565b9150600101611d13565b50611b26611d56825160c060ff166120aa565b8261202d565b611d646123c7565b506040805180820190915281518152602082810190820152919050565b611d896123a7565b611d92826121a2565b611d9b57600080fd5b6000611daa83602001516121dc565b60208085015160408051808201909152868152920190820152915050919050565b6000611dd56123c7565b505080518051602091820151919092015191011190565b611df46123c7565b611dfd82611dcb565b611e0657600080fd5b60208201516000611e168261223f565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611e4f57508151602110155b611e5857600080fd5b6000611e6783602001516121dc565b90508083600001511015611ec2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ee857826020036101000a820491505b50949350505050565b606081516001148015611f235750607f60f81b82600081518110611f1157fe5b01602001516001600160f81b03191611155b15611f2f575080611b2a565b611c91611f418351608060ff166120aa565b8361202d565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611f8b57506018611faf565b6fffffffffffffffffffffffffffffffff198416611fab57506010611faf565b5060005b6020811015611fe557818181518110611fc457fe5b01602001516001600160f81b03191615611fdd57611fe5565b600101611faf565b60008160200390506060816040519080825280601f01601f19166020018201604052801561201a576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561205e578051835260209283019201612046565b50855184518101855292509050808201602086015b8183101561208b578051835260209283019201612073565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106120fa576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116121545782840160f81b8160008151811061213657fe5b60200101906001600160f81b031916908160001a9053509050611c91565b606061215f85611f47565b90508381510160370160f81b8260008151811061217857fe5b60200101906001600160f81b031916908160001a905350612199828261202d565b95945050505050565b80516000906121b357506000611b2a565b6020820151805160001a9060c08210156121d257600092505050611b2a565b5060019392505050565b8051600090811a60808110156121f6576000915050611b2a565b60b8811080612211575060c08110801590612211575060f881105b15612220576001915050611b2a565b60c08110156122345760b519019050611b2a565b60f519019050611b2a565b80516000908190811a608081101561225a576001915061236b565b60b881101561226f57607e198101915061236b565b60c08110156122e957600060b78203600186019550806020036101000a8651049150600181018201935050808310156122e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061236b565b60f88110156122fe5760be198101915061236b565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612369576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806123ba6123c7565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220a288eb0fb37b1f80ed70929944f149856fbe848d775f3fe9d6a2f46faa67754564736f6c63430006040033", + Code: euler.ChapelSlashContract, }, }, } @@ -283,12 +297,12 @@ func init() { { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/8cfa94e657670d60ac1ff0563cddcf4664f77227", - Code: "60806040526004361061036f5760003560e01c80639a854bbd116101c6578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610d58578063fc3e590814610a3b578063fd6a687914610d8b578063ff9c0027146106ec576103b7565b8063f014847214610d19578063f9a2bbc714610d2e578063fa9e915914610d43576103b7565b8063d9e6dae9116100d1578063d9e6dae91461066e578063dc927faf14610cda578063e1c7392a14610cef578063ebf71d5314610d04576103b7565b8063bd46646114610c0d578063c81b166214610c40578063c8509d8114610c55576103b7565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610b77578063b9fd21e314610bb0578063ba35ead614610bc5578063bbface1f14610bda576103b7565b8063aa7415f514610a50578063ab51bb9614610a97578063ac43175114610aac576103b7565b8063a1a11bf5116101a0578063a1a11bf5146109fc578063a496fba214610a11578063a78abc1614610a26578063a7c9f02d14610a3b576103b7565b80639a854bbd146109995780639a99b4f0146109ae5780639dc09262146109e7576103b7565b806361368475116102a0578063727be1f81161023e578063831d65d111610218578063831d65d1146108c05780638b87b21f146105ed5780638eff336c1461094557806396713da914610984576103b7565b8063727be1f81461086c57806375d47a0a146108965780637942fd05146108ab576103b7565b80636e47b4821161027a5780636e47b4821461082d57806370fd5bad146106ec578063718a8aa81461084257806371d3086314610857576103b7565b8063613684751461066e57806366dea52a146106ec5780636e05652014610701576103b7565b806343a368b91161030d57806350432d32116102e757806350432d321461068357806351e806721461069857806359b92789146106ad5780635d499b1b146106d7576103b7565b806343a368b91461062d578063493279b1146106425780634bf6c8821461066e576103b7565b8063149d14d911610349578063149d14d9146105155780633d7132231461053c5780633dffc387146105ed57806343756e5c14610618576103b7565b80630bee7a67146103bc5780630e2374a5146103ea5780631182b8751461041b576103b7565b366103b75734156103b5576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b3480156103c857600080fd5b506103d1610da0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f657600080fd5b506103ff610da5565b604080516001600160a01b039092168252519081900360200190f35b34801561042757600080fd5b506104a06004803603604081101561043e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561046257600080fd5b82018360208201111561047457600080fd5b803590602001918460018302840111600160201b8311171561049557600080fd5b509092509050610dab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104da5781810151838201526020016104c2565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052157600080fd5b5061052a610ed9565b60408051918252519081900360200190f35b34801561054857600080fd5b506103ff6004803603602081101561055f57600080fd5b810190602081018135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610edf945050505050565b3480156105f957600080fd5b50610602610f03565b6040805160ff9092168252519081900360200190f35b34801561062457600080fd5b506103ff610f08565b34801561063957600080fd5b5061052a610f0e565b34801561064e57600080fd5b50610657610f1a565b6040805161ffff9092168252519081900360200190f35b34801561067a57600080fd5b50610602610f1f565b34801561068f57600080fd5b5061052a610f24565b3480156106a457600080fd5b506103ff610f2f565b3480156106b957600080fd5b506103ff600480360360208110156106d057600080fd5b5035610f35565b3480156106e357600080fd5b5061052a610f50565b3480156106f857600080fd5b50610602610f59565b6108196004803603608081101561071757600080fd5b810190602081018135600160201b81111561073157600080fd5b82018360208201111561074357600080fd5b803590602001918460208302840111600160201b8311171561076457600080fd5b919390929091602081019035600160201b81111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460208302840111600160201b831117156107b457600080fd5b919390929091602081019035600160201b8111156107d157600080fd5b8201836020820111156107e357600080fd5b803590602001918460208302840111600160201b8311171561080457600080fd5b91935091503567ffffffffffffffff16610f5e565b604080519115158252519081900360200190f35b34801561083957600080fd5b506103ff611433565b34801561084e57600080fd5b50610602611439565b34801561086357600080fd5b5061052a61143e565b34801561087857600080fd5b506108196004803603602081101561088f57600080fd5b5035611444565b3480156108a257600080fd5b506103ff6114c5565b3480156108b757600080fd5b506106026114cb565b3480156108cc57600080fd5b506103b5600480360360408110156108e357600080fd5b60ff8235169190810190604081016020820135600160201b81111561090757600080fd5b82018360208201111561091957600080fd5b803590602001918460018302840111600160201b8311171561093a57600080fd5b5090925090506114d0565b34801561095157600080fd5b506103b56004803603606081101561096857600080fd5b508035906001600160a01b036020820135169060400135611619565b34801561099057600080fd5b5061060261169f565b3480156109a557600080fd5b5061052a6116a4565b3480156109ba57600080fd5b5061052a600480360360408110156109d157600080fd5b506001600160a01b0381351690602001356116b0565b3480156109f357600080fd5b506103ff6117ee565b348015610a0857600080fd5b506103ff6117f4565b348015610a1d57600080fd5b506106026117fa565b348015610a3257600080fd5b506108196117ff565b348015610a4757600080fd5b50610602611808565b61081960048036036080811015610a6657600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff1661180d565b348015610aa357600080fd5b506103d16117fa565b348015610ab857600080fd5b506103b560048036036040811015610acf57600080fd5b810190602081018135600160201b811115610ae957600080fd5b820183602082011115610afb57600080fd5b803590602001918460018302840111600160201b83111715610b1c57600080fd5b919390929091602081019035600160201b811115610b3957600080fd5b820183602082011115610b4b57600080fd5b803590602001918460018302840111600160201b83111715610b6c57600080fd5b509092509050611ece565b348015610b8357600080fd5b506103b560048036036040811015610b9a57600080fd5b50803590602001356001600160a01b031661213d565b348015610bbc57600080fd5b5061052a6121b3565b348015610bd157600080fd5b5061052a6121bd565b348015610be657600080fd5b5061052a60048036036020811015610bfd57600080fd5b50356001600160a01b03166121c3565b348015610c1957600080fd5b5061052a60048036036020811015610c3057600080fd5b50356001600160a01b03166121d5565b348015610c4c57600080fd5b506103ff6121f0565b348015610c6157600080fd5b506103b560048036036040811015610c7857600080fd5b60ff8235169190810190604081016020820135600160201b811115610c9c57600080fd5b820183602082011115610cae57600080fd5b803590602001918460018302840111600160201b83111715610ccf57600080fd5b5090925090506121f6565b348015610ce657600080fd5b506103ff6122c6565b348015610cfb57600080fd5b506103b56122cc565b348015610d1057600080fd5b5061060261236c565b348015610d2557600080fd5b50610602612371565b348015610d3a57600080fd5b506103ff612376565b348015610d4f57600080fd5b5061052a61237c565b348015610d6457600080fd5b506104a060048036036020811015610d7b57600080fd5b50356001600160a01b0316612382565b348015610d9757600080fd5b506103ff6124a9565b606481565b61200181565b60005460609060ff16610df3576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b3361200014610e335760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff841660021415610e8557610e7e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124af92505050565b9050610ed2565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b603881565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610fa4576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b868514610fe25760405162461bcd60e51b815260040180806020018281038252603b81526020018061487f603b913960400191505060405180910390fd5b8683146110205760405162461bcd60e51b815260040180806020018281038252603f815260200180614752603f913960400191505060405180910390fd5b426078018267ffffffffffffffff16101561106c5760405162461bcd60e51b81526004018080602001828103825260248152602001806146426024913960400191505060405180910390fd5b6402540be4003406156110b05760405162461bcd60e51b81526004018080602001828103825260408152602001806149826040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156110e3578160200160208202803683370190505b50905060005b848110156111be576402540be4008b8b8381811061110357fe5b905060200201358161111157fe5b061561114e5760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b6111738b8b8381811061115d57fe5b90506020020135856125d390919063ffffffff16565b935061119f6402540be4008c8c8481811061118a57fe5b9050602002013561262d90919063ffffffff16565b8282815181106111ab57fe5b60209081029190910101526001016110e9565b506001546111e3906111d6908663ffffffff61266f16565b849063ffffffff6125d316565b3410156112215760405162461bcd60e51b815260040180806020018281038252605681526020018061492c6056913960600191505060405180910390fd5b611231348463ffffffff6126c816565b915061123b614468565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036112ff8461270a565b611314876402540be40063ffffffff61262d16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137257818101518382015260200161135a565b50505050905090810190601f16801561139f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b600033612001146114865760405162461bcd60e51b81526004018080602001828103825260338152602001806145826033913960400191505060405180910390fd5b81156114bd576040516120019083156108fc029084906000818181858888f193505050501580156114bb573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff16611515576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b33612000146115555760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff8316600314156115a5576115a082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129c592505050565b611614565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146116595760405162461bcd60e51b81526004018080602001828103825260238152602001806148e96023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166116f6576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b33611005146117365760405162461bcd60e51b815260040180806020018281038252602f8152602001806145b5602f913960400191505060405180910390fd5b60004783106117455747611747565b825b9050670de0b6b3a76400008111156117635760009150506117e8565b80156117e5576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561179f573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611853576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff16101561189f5760405162461bcd60e51b81526004018080602001828103825260248152602001806146426024913960400191505060405180910390fd5b6402540be4003406156118e35760405162461bcd60e51b81526004018080602001828103825260408152602001806149826040913960400191505060405180910390fd5b600080806001600160a01b0388166119c25760015461190990879063ffffffff6125d316565b3410156119475760405162461bcd60e51b81526004018080602001828103825260618152602001806146cc6061913960800191505060405180910390fd5b6402540be40086061561198b5760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b61199b348763ffffffff6126c816565b90506119b2866402540be40063ffffffff61262d16565b6221272160e91b93509150611c65565b6001600160a01b038816600090815260036020526040902054925082611a195760405162461bcd60e51b815260040180806020018281038252603181526020018061469b6031913960400191505060405180910390fd5b600154341015611a5a5760405162461bcd60e51b815260040180806020018281038252603f8152602001806147ee603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611aa55750600881118015611aa55750611aa3876007198301600a0a63ffffffff612a2116565b155b611ae05760405162461bcd60e51b815260040180806020018281038252603c815260200180614791603c913960400191505060405180910390fd5b611aea8782612a63565b9250611af584612aa3565b15611b3d576305f5e100831015611b3d5760405162461bcd60e51b815260040180806020018281038252603a8152602001806145e4603a913960400191505060405180910390fd5b600881101580611b575750600881108015611b5757508683115b611b925760405162461bcd60e51b815260040180806020018281038252602581526020018061472d6025913960400191505060405180910390fd5b677ce66c50e2840000831115611bd95760405162461bcd60e51b81526004018080602001828103825260358152602001806146666035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611c2e57600080fd5b505af1158015611c42573d6000803e3d6000fd5b505050506040513d6020811015611c5857600080fd5b5051611c6357600080fd5b505b611c6d614468565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611d1b57fe5b602002602001018181525050878160600151600081518110611d3957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611d6b57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611d968461270a565b611dab866402540be40063ffffffff61262d16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e09578181015183820152602001611df1565b50505050905090810190601f168015611e365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5757600080fd5b505af1158015611e6b573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611f0e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061482d602e913960400191505060405180910390fd5b60208114611f63576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561206b576020820151670de0b6b3a7640000811180159061201257506402540be4008106155b612063576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b6001556120a8565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461217d5760405162461bcd60e51b81526004018080602001828103825260238152602001806148e96023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff1661223b576040805162461bcd60e51b8152602060048201526019602482015260008051602061490c833981519152604482015290519081900360640190fd5b336120001461227b5760405162461bcd60e51b815260040180806020018281038252602f8152602001806148ba602f913960400191505060405180910390fd5b60ff8316600314156115a5576115a082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba992505050565b61100381565b60005460ff1615612324576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff16101561241257828160ff16815181106123e657fe5b01602001516001600160f81b031916156124055760019091019061240a565b612412565b6001016123cb565b5060608160ff166040519080825280601f01601f191660200182016040528015612443576020820181803683370190505b50905060005b8260ff168160ff16101561249f57838160ff168151811061246657fe5b602001015160f81c60f81b828260ff168151811061248057fe5b60200101906001600160f81b031916908160001a905350600101612449565b5095945050505050565b61100481565b60606124b96144b4565b60006124c484612ca7565b915091508061251a576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b600061252583612de6565b905063ffffffff8116156125b9576040808401516020808601516001600160a01b031660009081526002909152918220546125609190612a63565b905061256a6144e9565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff1681525090506125ad81613133565b95505050505050610efe565b50506040805160008152602081019091529150610efe9050565b6000828201838110156117e5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006117e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061320f565b60008261267e575060006117e8565b8282028284828161268b57fe5b04146117e55760405162461bcd60e51b81526004018080602001828103825260218152602001806147cd6021913960400191505060405180910390fd5b60006117e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132b1565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161272557505083519091506127479061330b565b8160008151811061275457fe5b602002602001018190525061277583602001516001600160a01b031661331e565b8160018151811061278257fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156127cd57816020015b60608152602001906001900390816127b85790505b50905060005b8281101561281a576127fb866040015182815181106127ee57fe5b602002602001015161330b565b82828151811061280757fe5b60209081029190910101526001016127d3565b5061282481613341565b8360028151811061283157fe5b602002602001018190525060608260405190808252806020026020018201604052801561287257816020015b606081526020019060019003908161285d5790505b50905060005b838110156128c8576128a98760600151828151811061289357fe5b60200260200101516001600160a01b031661331e565b8282815181106128b557fe5b6020908102919091010152600101612878565b506128d281613341565b846003815181106128df57fe5b602002602001018190525060608360405190808252806020026020018201604052801561292057816020015b606081526020019060019003908161290b5790505b50905060005b84811015612960576129418860800151828151811061289357fe5b82828151811061294d57fe5b6020908102919091010152600101612926565b5061296a81613341565b8560048151811061297757fe5b60200260200101819052506129998760a0015167ffffffffffffffff1661330b565b856005815181106129a657fe5b60200260200101819052506129ba85613341565b979650505050505050565b6129cd614510565b60006129d8836133cb565b9150915080612a185760405162461bcd60e51b815260040180806020018281038252602481526020018061485b6024913960400191505060405180910390fd5b61161482613596565b60006117e583836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613a1a565b60006008821115612a8c57612a85836007198401600a0a63ffffffff61262d16565b90506117e8565b6117e5836008849003600a0a63ffffffff61266f16565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff161015612b1957828160ff1681518110612aed57fe5b01602001516001600160f81b03191615612b0c57600190910190612b11565b612b19565b600101612ad2565b50600760ff82161015612b3157600092505050610efe565b816005820360ff1681518110612b4357fe5b6020910101516001600160f81b031916602d60f81b14612b6857600092505050610efe565b816001820360ff1681518110612b7a57fe5b6020910101516001600160f81b031916604d60f81b14612b9f57600092505050610efe565b5060019392505050565b612bb1614468565b6000612bbc83613a7c565b9150915080612bfc5760405162461bcd60e51b815260040180806020018281038252602481526020018061461e6024913960400191505060405180910390fd5b612c04614510565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612c8557612c6285604001518281518110612c5457fe5b602002602001015183613ce0565b85604001518281518110612c7257fe5b6020908102919091010152600101612c34565b506080840151604083015260056060830152612ca082613596565b5050505050565b612caf6144b4565b6000612cb96144b4565b612cc1614547565b612cd2612ccd86613d19565b613d3e565b90506000805b612ce183613d88565b15612dd95780612d0357612cfc612cf784613da9565b613df7565b8452612dd1565b8060011415612d3057612d1d612d1884613da9565b613eae565b6001600160a01b03166020850152612dd1565b8060021415612d4f57612d45612cf784613da9565b6040850152612dd1565b8060031415612d7757612d64612d1884613da9565b6001600160a01b03166060850152612dd1565b8060041415612d9f57612d8c612d1884613da9565b6001600160a01b03166080850152612dd1565b8060051415612dcc57612db4612cf784613da9565b67ffffffffffffffff1660a085015260019150612dd1565b612dd9565b600101612cd8565b5091935090915050915091565b60208101516000906001600160a01b0316612f1d578160a0015167ffffffffffffffff16421115612e1957506001610efe565b8160400151471015612e2d57506003610efe565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612e84576040519150601f19603f3d011682016040523d82523d6000602084013e612e89565b606091505b5050905080612e9c575060049050610efe565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610efe565b8160a0015167ffffffffffffffff16421115612f3b57506001610efe565b81516020808401516001600160a01b031660009081526003909152604090205414612f6857506002610efe565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612fb857600080fd5b5086fa158015612fcc573d6000803e3d6000fd5b50505050506040513d6020811015612fe357600080fd5b50516040840151909150811015612ffe575060039050610efe565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561306f57600080fd5b5087f1158015613083573d6000803e3d6000fd5b50505050506040513d602081101561309a57600080fd5b505190508015613127577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610efe9050565b5060059150610efe9050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161314e57505083519091506131709061330b565b8160008151811061317d57fe5b6020026020010181905250613195836020015161330b565b816001815181106131a257fe5b60200260200101819052506131c383604001516001600160a01b031661331e565b816002815181106131d057fe5b60200260200101819052506131ee836060015163ffffffff1661330b565b816003815181106131fb57fe5b6020026020010181905250610ed281613341565b6000818361329b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613260578181015183820152602001613248565b50505050905090810190601f16801561328d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132a757fe5b0495945050505050565b600081848411156133035760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613260578181015183820152602001613248565b505050900390565b60606117e861331983613ec8565b613fae565b60408051600560a21b8318601482015260348101909152606090610ed281613fae565b60608151600014156133625750604080516000815260208101909152610efe565b60608260008151811061337157fe5b602002602001015190506000600190505b83518110156133b2576133a88285838151811061339b57fe5b6020026020010151614000565b9150600101613382565b50610ed26133c5825160c060ff1661407d565b82614000565b6133d3614510565b60006133dd614510565b6133e5614547565b6133f1612ccd86613d19565b90506000805b61340083613d88565b15612dd9578061342657613416612d1884613da9565b6001600160a01b0316845261358e565b80600114156134c757606061344261343d85613da9565b614175565b9050805160405190808252806020026020018201604052801561346f578160200160208202803683370190505b50602086015260005b81518110156134c05761349d82828151811061349057fe5b6020026020010151613df7565b866020015182815181106134ad57fe5b6020908102919091010152600101613478565b505061358e565b80600214156135695760606134de61343d85613da9565b9050805160405190808252806020026020018201604052801561350b578160200160208202803683370190505b50604086015260005b81518110156134c05761353982828151811061352c57fe5b6020026020010151613eae565b8660400151828151811061354957fe5b6001600160a01b0390921660209283029190910190910152600101613514565b8060031415612dcc5761357e612cf784613da9565b63ffffffff166060850152600191505b6001016133f7565b80516001600160a01b03166137c05760005b8160200151518110156137ba576000826040015182815181106135c757fe5b60200260200101516001600160a01b0316612710846020015184815181106135eb57fe5b60209081029190910101516040516000818181858888f193505050503d8060008114613633576040519150601f19603f3d011682016040523d82523d6000602084013e613638565b606091505b50509050806136fb577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061367757fe5b60200260200101518560200151858151811061368f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16137b1565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061373157fe5b60200260200101518560200151858151811061374957fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016135a8565b50613a17565b60005b816020015151811015613a1557600082600001516001600160a01b031663a9059cbb61c350856040015185815181106137f857fe5b60200260200101518660200151868151811061381057fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561386757600080fd5b5087f115801561387b573d6000803e3d6000fd5b50505050506040513d602081101561389257600080fd5b505190508015613956577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106138d257fe5b6020026020010151856020015185815181106138ea57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613a0c565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061398c57fe5b6020026020010151856020015185815181106139a457fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016137c3565b505b50565b60008183613a695760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613260578181015183820152602001613248565b50828481613a7357fe5b06949350505050565b613a84614468565b6000613a8e614468565b613a96614547565b613aa2612ccd86613d19565b90506000805b613ab183613d88565b15612dd95780613ace57613ac7612cf784613da9565b8452613cd8565b8060011415613af657613ae3612d1884613da9565b6001600160a01b03166020850152613cd8565b8060021415613b85576060613b0d61343d85613da9565b90508051604051908082528060200260200182016040528015613b3a578160200160208202803683370190505b50604086015260005b8151811015613b7e57613b5b82828151811061349057fe5b86604001518281518110613b6b57fe5b6020908102919091010152600101613b43565b5050613cd8565b8060031415613c1a576060613b9c61343d85613da9565b90508051604051908082528060200260200182016040528015613bc9578160200160208202803683370190505b50606086015260005b8151811015613b7e57613bea82828151811061352c57fe5b86606001518281518110613bfa57fe5b6001600160a01b0390921660209283029190910190910152600101613bd2565b8060041415613caf576060613c3161343d85613da9565b90508051604051908082528060200260200182016040528015613c5e578160200160208202803683370190505b50608086015260005b8151811015613b7e57613c7f82828151811061352c57fe5b86608001518281518110613c8f57fe5b6001600160a01b0390921660209283029190910190910152600101613c67565b8060051415612dcc57613cc4612cf784613da9565b67ffffffffffffffff1660a0850152600191505b600101613aa8565b60006008821115613d0257612a85836007198401600a0a63ffffffff61266f16565b6117e5836008849003600a0a63ffffffff61262d16565b613d21614567565b506040805180820190915281518152602082810190820152919050565b613d46614547565b613d4f82614246565b613d5857600080fd5b6000613d678360200151614276565b60208085015160408051808201909152868152920190820152915050919050565b6000613d92614567565b505080518051602091820151919092015191011190565b613db1614567565b613dba82613d88565b613dc357600080fd5b60208201516000613dd3826142d9565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613e0c57508151602110155b613e1557600080fd5b6000613e248360200151614276565b90508083600001511015613e7f576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613ea557826020036101000a820491505b50949350505050565b8051600090601514613ebf57600080fd5b6117e882613df7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613f0c57506018613f30565b6fffffffffffffffffffffffffffffffff198416613f2c57506010613f30565b5060005b6020811015613f6657818181518110613f4557fe5b01602001516001600160f81b03191615613f5e57613f66565b600101613f30565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f9b576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613fe05750607f60f81b82600081518110613fce57fe5b01602001516001600160f81b03191611155b15613fec575080610efe565b6117e8613ffe8351608060ff1661407d565b835b6060806040519050835180825260208201818101602087015b81831015614031578051835260209283019201614019565b50855184518101855292509050808201602086015b8183101561405e578051835260209283019201614046565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106140cd576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116141275782840160f81b8160008151811061410957fe5b60200101906001600160f81b031916908160001a90535090506117e8565b606061413285613ec8565b90508381510160370160f81b8260008151811061414b57fe5b60200101906001600160f81b031916908160001a90535061416c8282614000565b95945050505050565b606061418082614246565b61418957600080fd5b60006141948361440c565b90506060816040519080825280602002602001820160405280156141d257816020015b6141bf614567565b8152602001906001900390816141b75790505b50905060006141e48560200151614276565b60208601510190506000805b8481101561423b57614201836142d9565b915060405180604001604052808381526020018481525084828151811061422457fe5b6020908102919091010152918101916001016141f0565b509195945050505050565b805160009061425757506000610efe565b6020820151805160001a9060c0821015612b9f57600092505050610efe565b8051600090811a6080811015614290576000915050610efe565b60b88110806142ab575060c081108015906142ab575060f881105b156142ba576001915050610efe565b60c08110156142ce5760b519019050610efe565b60f519019050610efe565b80516000908190811a60808110156142f45760019150614405565b60b881101561430957607e1981019150614405565b60c081101561438357600060b78203600186019550806020036101000a86510491506001810182019350508083101561437d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614405565b60f88110156143985760be1981019150614405565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614403576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061441d57506000610efe565b600080905060006144318460200151614276565b602085015185519181019250015b8082101561445f57614450826142d9565b6001909301929091019061443f565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061455a614567565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea264697066735822122012cb49df8f867c0c8903152f4f4e8058086f9ead137f1a15b2400e401b8e252f64736f6c63430006040033", + Code: gibbs.MainnetTokenHubContract, }, { ContractAddr: common.HexToAddress(StakingContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/8cfa94e657670d60ac1ff0563cddcf4664f77227", - Code: "6080604052600436106103855760003560e01c806370fd5bad116101d1578063b88a802f11610102578063d7ecfcb6116100a0578063f9a2bbc71161006f578063f9a2bbc714610c40578063fa03f79714610c55578063fc3e590814610671578063fd6a687914610c6a5761038c565b8063d7ecfcb614610819578063dc927faf14610bd1578063edc1a5b014610be6578063f45fd80b14610bfb5761038c565b8063c2117d82116100dc578063c2117d8214610ae7578063c81b166214610afc578063c8509d8114610b11578063d61b9b9314610b965761038c565b8063b88a802f14610a82578063baaafd3b14610a97578063bf8546ca14610aac5761038c565b806396713da91161016f578063a78abc1611610149578063a78abc1614610964578063ab51bb961461098d578063ac431751146109a2578063b14315df14610a6d5761038c565b806396713da9146109255780639dc092621461093a578063a1a11bf51461094f5761038c565b806375d47a0a116101ab57806375d47a0a146108765780637942fd051461088b578063831d65d1146108a057806392b888a41461061d5761038c565b806370fd5bad14610819578063718a8aa81461082e57806375aca593146108435761038c565b80633fdfa7e4116102b6578063552aaf931161025457806369b635b61161022357806369b635b6146107865780636bd8f8041461079b5780636e47b482146107d15780636fb7f7eb146107e65761038c565b8063552aaf93146107325780635d17c8bd146107475780635d499b1b1461075c57806362b171d2146107715761038c565b8063493279b111610290578063493279b1146106b05780634bf6c882146106dc5780634d99dd16146106f157806351e806721461071d5761038c565b80633fdfa7e414610671578063413d9c3a1461068657806343756e5c1461069b5761038c565b806311fe9ec6116103235780632fdeb111116102fd5780632fdeb11114610632578063333ad3e71461064757806334c433541461065c5780633dffc3871461061d5761038c565b806311fe9ec6146105bf578063151817e3146105f257806317c9efb01461061d5761038c565b80630bee7a671161035f5780630bee7a67146104515780630c7957151461047f5780630e2374a5146104945780631182b875146104c55761038c565b8063026e402b1461039157806302985992146103bf578063047636d1146103e65761038c565b3661038c57005b600080fd5b6103bd600480360360408110156103a757600080fd5b506001600160a01b038135169060200135610c7f565b005b3480156103cb57600080fd5b506103d46111bc565b60408051918252519081900360200190f35b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b03166111c2565b6040518082606080838360005b8381101561043e578181015183820152602001610426565b5050505090500191505060405180910390f35b34801561045d57600080fd5b50610466611216565b6040805163ffffffff9092168252519081900360200190f35b34801561048b57600080fd5b506103d461121b565b3480156104a057600080fd5b506104a9611221565b604080516001600160a01b039092168252519081900360200190f35b3480156104d157600080fd5b5061054a600480360360408110156104e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561050c57600080fd5b82018360208201111561051e57600080fd5b803590602001918460018302840111600160201b8311171561053f57600080fd5b509092509050611227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561058457818101518382015260200161056c565b50505050905090810190601f1680156105b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cb57600080fd5b506103d4600480360360208110156105e257600080fd5b50356001600160a01b03166113e3565b3480156105fe57600080fd5b506106076113fe565b6040805160ff9092168252519081900360200190f35b34801561062957600080fd5b50610607611403565b34801561063e57600080fd5b506103d4611408565b34801561065357600080fd5b5061046661140e565b34801561066857600080fd5b506103d4611413565b34801561067d57600080fd5b5061060761141e565b34801561069257600080fd5b506103d4611423565b3480156106a757600080fd5b506104a961142a565b3480156106bc57600080fd5b506106c5611430565b6040805161ffff9092168252519081900360200190f35b3480156106e857600080fd5b50610607611435565b6103bd6004803603604081101561070757600080fd5b506001600160a01b03813516906020013561143a565b34801561072957600080fd5b506104a9611a62565b34801561073e57600080fd5b50610607611a68565b34801561075357600080fd5b506103d4611a6d565b34801561076857600080fd5b506103d4611a73565b34801561077d57600080fd5b506103d4611a7c565b34801561079257600080fd5b506103d4611c1c565b6103bd600480360360608110156107b157600080fd5b506001600160a01b03813581169160208101359091169060400135611c22565b3480156107dd57600080fd5b506104a961230b565b3480156107f257600080fd5b506103d46004803603602081101561080957600080fd5b50356001600160a01b0316612311565b34801561082557600080fd5b5061060761232c565b34801561083a57600080fd5b50610607612331565b34801561084f57600080fd5b506103d46004803603602081101561086657600080fd5b50356001600160a01b0316612336565b34801561088257600080fd5b506104a9612351565b34801561089757600080fd5b50610607612357565b3480156108ac57600080fd5b506103bd600480360360408110156108c357600080fd5b60ff8235169190810190604081016020820135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b50909250905061235c565b34801561093157600080fd5b50610607612624565b34801561094657600080fd5b506104a9612629565b34801561095b57600080fd5b506104a961262f565b34801561097057600080fd5b50610979612635565b604080519115158252519081900360200190f35b34801561099957600080fd5b50610466611a68565b3480156109ae57600080fd5b506103bd600480360360408110156109c557600080fd5b810190602081018135600160201b8111156109df57600080fd5b8201836020820111156109f157600080fd5b803590602001918460018302840111600160201b83111715610a1257600080fd5b919390929091602081019035600160201b811115610a2f57600080fd5b820183602082011115610a4157600080fd5b803590602001918460018302840111600160201b83111715610a6257600080fd5b50909250905061263e565b348015610a7957600080fd5b50610607612dd0565b348015610a8e57600080fd5b506103d4612dd5565b348015610aa357600080fd5b506103d4612f72565b348015610ab857600080fd5b506103d460048036036040811015610acf57600080fd5b506001600160a01b0381358116916020013516612f7d565b348015610af357600080fd5b506103d4612faa565b348015610b0857600080fd5b506104a9612fb0565b348015610b1d57600080fd5b506103bd60048036036040811015610b3457600080fd5b60ff8235169190810190604081016020820135600160201b811115610b5857600080fd5b820183602082011115610b6a57600080fd5b803590602001918460018302840111600160201b83111715610b8b57600080fd5b509092509050612fb6565b348015610ba257600080fd5b506103d460048036036040811015610bb957600080fd5b506001600160a01b03813581169160200135166131d9565b348015610bdd57600080fd5b506104a9613204565b348015610bf257600080fd5b506103d461320a565b348015610c0757600080fd5b506103d460048036036060811015610c1e57600080fd5b506001600160a01b038135811691602081013582169160409091013516613217565b348015610c4c57600080fd5b506104a961324c565b348015610c6157600080fd5b506103d4613252565b348015610c7657600080fd5b506104a9613258565b60105460ff1660021415610ccb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cf357506402540be4008106155b610d44576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d87576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600354821015610dde576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610df290839063ffffffff61325e16565b341015610e3d576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b601154604051600091339183818181818787f1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b5050905080610ecf576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610ee6846402540be40063ffffffff6132bf16565b90506000610efa348663ffffffff61330116565b90506000610f136002548361330190919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610f2f579050509050610f4f33613343565b81600081518110610f5c57fe5b6020026020010181905250610f79886001600160a01b0316613343565b81600181518110610f8657fe5b6020026020010181905250610f9a84613366565b81600281518110610fa757fe5b60200260200101819052506060610fc76001610fc284613379565b613403565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083611025876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b5061100492506108fc915061110290508a8663ffffffff61325e16565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561115b573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff1916600117905550505050505050565b60035481565b6111ca615193565b6111d2615193565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b606033612000146112695760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166112ac576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6112b46151b1565b6112fb6112f685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b6134ae565b9050600061131061130b836134f8565b613546565b90506000606060ff8316600414156113355761132b846135fd565b909250905061138c565b60ff83166005141561134a5761132b846137dd565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff8216156113d8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b603881565b600881565b60105460ff1660021415611486576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be40034061580156114ae57506402540be4008106155b6114ff576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611542576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611590576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b60035482101561164b573360009081526005602090815260408083206001600160a01b03871684529091529020548214611602576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b600254821161164b576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156116c3576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461171e91859063ffffffff6139f916565b905080156117665760025481116117665760405162461bcd60e51b81526004018080602001828103825260258152602001806153766025913960400191505060405180910390fd5b600061177d846402540be40063ffffffff6132bf16565b600254909150349060009061179990839063ffffffff61330116565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816117b55790505090506117d533613343565b816000815181106117e257fe5b60200260200101819052506117ff886001600160a01b0316613343565b8160018151811061180c57fe5b602002602001018190525061182084613366565b8160028151811061182d57fe5b602002602001018190525060606118486002610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061189942620a8c0063ffffffff61325e16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836118dd876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561193b578181015183820152602001611923565b50505050905090810190601f1680156119685780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561198957600080fd5b505af115801561199d573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015611a01573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611acb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611b32576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b5050905080611bd5576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b60105460ff1660021415611c6e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611c9657506402540be4008106155b611ce7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611d2a576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611d88576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611dd6576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611e1e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611e8c57503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611edd576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b038916825290915291822054611f3891859063ffffffff6139f916565b90508015611f80576002548111611f805760405162461bcd60e51b815260040180806020018281038252602581526020018061527a6025913960400191505060405180910390fd5b6000611f97846402540be40063ffffffff6132bf16565b6002549091503490600090611fb390839063ffffffff61330116565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611fcf579050509050611fef33613343565b81600081518110611ffc57fe5b6020026020010181905250612019896001600160a01b0316613343565b8160018151811061202657fe5b6020026020010181905250612043886001600160a01b0316613343565b8160028151811061205057fe5b602002602001018190525061206484613366565b8160038151811061207157fe5b6020026020010181905250606061208c6003610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d90935291208054909101905590506120dd42620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908f16845290915290205561212042620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038f81168552908352818420908e16845290915290205561200063f7a251d7601083612170876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121ce5781810151838201526020016121b6565b50505050905090810190601f1680156121fb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561221c57600080fd5b505af1158015612230573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015612263573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015612294573d6000803e3d6000fd5b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158b87604051808381526020018281526020019250505060405180910390a450506010805460ff191660011790555050505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b336120001461239c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166123df576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6123e76151b1565b6124296112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b905060008060606000805b61243d86613a90565b156124a8578061245a5761245361130b876134f8565b94506124a0565b80600114156124765761246f61130b876134f8565b93506124a0565b806002141561249b5761249061248b876134f8565b613ab1565b9250600191506124a0565b6124a8565b600101612434565b816124ee576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6124f783613b21565b61253a576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125466112f684613489565b9550600061255661130b886134f8565b90506125606151b1565b61256988613a90565b1561258c576125856112f661258061248b8b6134f8565b613489565b90506125cd565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff8216600114156125e9576125e4818888613b75565b612617565b60ff821660021415612600576125e4818888613f2c565b60ff82166003141561134a576125e48188886141f9565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff16612695576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146126d55760405162461bcd60e51b815260040180806020018281038252602e8152602001806152ec602e913960400191505060405180910390fd5b61273684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061455e9050565b1561289c5760208114612790576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127ce9185858083850183828082843760009201919091525061464592505050565b905060035481106128105760405162461bcd60e51b815260040180806020018281038252602e81526020018061531a602e913960400191505060405180910390fd5b60025481116128505760405162461bcd60e51b815260040180806020018281038252602e815260200180615348602e913960400191505060405180910390fd5b6402540be4008106156128945760405162461bcd60e51b815260040180806020018281038252602c8152602001806152c0602c913960400191505060405180910390fd5b600155612d3e565b61290084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061455e9050565b15612a62576020811461295a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916129989185858083850183828082843760009201919091525061464592505050565b9050806129d65760405162461bcd60e51b81526004018080602001828103825260228152602001806153ca6022913960400191505060405180910390fd5b6001548110612a165760405162461bcd60e51b815260040180806020018281038252602e81526020018061521b602e913960400191505060405180910390fd5b6402540be400810615612a5a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806151ec602f913960400191505060405180910390fd5b600255612d3e565b612ac684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061455e9050565b15612ba85760208114612b20576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612b5e9185858083850183828082843760009201919091525061464592505050565b90506001548111612ba05760405162461bcd60e51b81526004018080602001828103825260318152602001806152496031913960400191505060405180910390fd5b600355612d3e565b612c0a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b6020820152915061455e9050565b15612d015760208114612c64576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612ca29185858083850183828082843760009201919091525061464592505050565b905060008111612cf9576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612d3e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612e24576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612e88576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d8060008114612ede576040519150601f19603f3d011682016040523d82523d6000602084013e612ee3565b606091505b5050905080612f2b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612ff65760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff16613039576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61307882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2192505050565b6130bb576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6130c36151b1565b6131056112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b9050600061311561130b836134f8565b905061311f6151b1565b61312883613a90565b156131465761313f6112f661258061248b866134f8565b905061318c565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156131a6576131a18161464a565b6131d0565b60ff8216600214156131bb576131a181614864565b60ff82166003141561134a576131a18161498e565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b6000828201838110156132b8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006132b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614af3565b60006132b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139f9565b60408051600560a21b83186014820152603481019091526060906132b881614b58565b6060612fa461337483614bae565b614b58565b606081516000141561339a5750604080516000815260208101909152611211565b6060826000815181106133a957fe5b602002602001015190506000600190505b83518110156133ea576133e0828583815181106133d357fe5b6020026020010151614c94565b91506001016133ba565b506132b86133fd825160c060ff16614d11565b82614c94565b6040805160028082526060828101909352829190816020015b606081526020019060019003908161341c57905050905061343f8460ff16613366565b8160008151811061344c57fe5b602002602001018190525061346083614b58565b8160018151811061346d57fe5b602002602001018190525061348181613379565b949350505050565b6134916151d1565b506040805180820190915281518152602082810190820152919050565b6134b66151b1565b6134bf82614e09565b6134c857600080fd5b60006134d78360200151614e43565b60208085015160408051808201909152868152920190820152915050919050565b6135006151d1565b61350982613a90565b61351257600080fd5b6020820151600061352282614ea6565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061355b57508151602110155b61356457600080fd5b60006135738360200151614e43565b905080836000015110156135ce576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156135f457826020036101000a820491505b50949350505050565b600060606000806000805b61361187613a90565b1561366357826136335761362c613627886134f8565b614fd9565b9150613658565b82600114156136535761364861130b886134f8565b905060019350613658565b613663565b826001019250613608565b836136a9576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156136f357600080fd5b505af1158015613707573d6000803e3d6000fd5b505050506040513d602081101561371d57600080fd5b505190508061374257613734600484846065614ff3565b9650965050505050506137d8565b6001600160a01b03831660009081526006602052604090205461376b908363ffffffff61325e16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6137f388613a90565b1561385c578361381057613809613627896134f8565b9250613851565b836001141561382c57613825613627896134f8565b9150613851565b836002141561384c5761384161130b896134f8565b905060019450613851565b61385c565b8360010193506137ea565b846138a2576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156138ec57600080fd5b505af1158015613900573d6000803e3d6000fd5b505050506040513d602081101561391657600080fd5b505190508061393c5761392d600585846065614ff3565b975097505050505050506137d8565b6001600160a01b038085166000818152600760209081526040808320948816835293815283822082905591815260089091522054613980908363ffffffff61325e16565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b60008184841115613a885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a4d578181015183820152602001613a35565b50505050905090810190601f168015613a7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613a9a6151d1565b505080518051602091820151919092015191011190565b8051606090613abf57600080fd5b6000613ace8360200151614e43565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015613b05576020820181803683370190505b50905060008160200190506135f48487602001510182856150ef565b8051602080830191909120600e546000908152600a9092526040822054808214613b5057600092505050611211565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b613b8788613a90565b15613bf05783613ba457613b9d613627896134f8565b9250613be5565b8360011415613bc057613bb9613627896134f8565b9150613be5565b8360021415613be057613bd561130b896134f8565b905060019450613be5565b613bf0565b836001019350613b7e565b84613c36576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613c4d826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff881660011415613d935760ff871615613cc0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613ce9908263ffffffff61325e16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613d2b908263ffffffff61325e16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613f21565b60ff8816613ee5576001600160a01b038416600090815260086020526040902054613dc4908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613e2057600080fd5b505af1158015613e34573d6000803e3d6000fd5b505050506040513d6020811015613e4a57600080fd5b5051613e93576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613f21565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613f3e88613a90565b15613fa75783613f5b57613f54613627896134f8565b9250613f9c565b8360011415613f7757613f70613627896134f8565b9150613f9c565b8360021415613f9757613f8c61130b896134f8565b905060019450613f9c565b613fa7565b836001019350613f35565b84613fed576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614004826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156141835760ff871615614077576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546140a0908263ffffffff61330116565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546140e2908263ffffffff61330116565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561411b42620a8c0063ffffffff61325e16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613f21565b60ff8816613ee5576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613f21565b6000806000806000805b61420c89613a90565b156142915784614229576142226136278a6134f8565b9350614286565b84600114156142455761423e6136278a6134f8565b9250614286565b84600214156142615761425a6136278a6134f8565b9150614286565b84600314156142815761427661130b8a6134f8565b905060019550614286565b614291565b846001019450614203565b856142d7576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142ee826402540be40063ffffffff61513a16565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156144c15760ff881615614361576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054614397908263ffffffff61330116565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546143d3908261325e565b6001600160a01b0380871660009081526005602090815260408083209388168352929052205561440c42620a8c0063ffffffff61325e16565b6001600160a01b038087166000908152600960209081526040808320898516845282528083209388168352929052205561444f42620a8c0063ffffffff61325e16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614552565b60ff8916613ee5576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106145935780518252601f199092019160209182019101614574565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146015780518252601f1990920191602091820191016145e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61465c86613a90565b156146c5578361467957614672613627876134f8565b92506146ba565b83600114156146955761468e613627876134f8565b91506146ba565b83600214156146b5576146aa61130b876134f8565b9050600194506146ba565b6146c5565b836001019350614653565b8461470b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614722826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150614760908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b505161482f576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b61487686613a90565b156148df57836148935761488c613627876134f8565b92506148d4565b83600114156148af576148a8613627876134f8565b91506148d4565b83600214156148cf576148c461130b876134f8565b9050600194506148d4565b6148df565b83600101935061486d565b84614925576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6149a187613a90565b15614a2657846149be576149b7613627886134f8565b9350614a1b565b84600114156149da576149d3613627886134f8565b9250614a1b565b84600214156149f6576149ef613627886134f8565b9150614a1b565b8460031415614a1657614a0b61130b886134f8565b905060019550614a1b565b614a26565b846001019450614998565b85614a6c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b60008183614b425760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613a4d578181015183820152602001613a35565b506000838581614b4e57fe5b0495945050505050565b606081516001148015614b8a5750607f60f81b82600081518110614b7857fe5b01602001516001600160f81b03191611155b15614b96575080611211565b612fa4614ba88351608060ff16614d11565b83614c94565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614bf257506018614c16565b6fffffffffffffffffffffffffffffffff198416614c1257506010614c16565b5060005b6020811015614c4c57818181518110614c2b57fe5b01602001516001600160f81b03191615614c4457614c4c565b600101614c16565b60008160200390506060816040519080825280601f01601f191660200182016040528015614c81576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614cc5578051835260209283019201614cad565b50855184518101855292509050808201602086015b81831015614cf2578051835260209283019201614cda565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d61576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614dbb5782840160f81b81600081518110614d9d57fe5b60200101906001600160f81b031916908160001a9053509050612fa4565b6060614dc685614bae565b90508381510160370160f81b82600081518110614ddf57fe5b60200101906001600160f81b031916908160001a905350614e008282614c94565b95945050505050565b8051600090614e1a57506000611211565b6020820151805160001a9060c0821015614e3957600092505050611211565b5060019392505050565b8051600090811a6080811015614e5d576000915050611211565b60b8811080614e78575060c08110801590614e78575060f881105b15614e87576001915050611211565b60c0811015614e9b5760b519019050611211565b60f519019050611211565b80516000908190811a6080811015614ec15760019150614fd2565b60b8811015614ed657607e1981019150614fd2565b60c0811015614f5057600060b78203600186019550806020036101000a865104915060018101820193505080831015614f4a576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fd2565b60f8811015614f655760be1981019150614fd2565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fd0576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614fea57600080fd5b612fa482613546565b6000606061500c846402540be40063ffffffff6132bf16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161502857905050905061504b8760ff16613366565b8160008151811061505857fe5b6020026020010181905250615075866001600160a01b0316613343565b8160018151811061508257fe5b602002602001018190525061509685613366565b816002815181106150a357fe5b60200260200101819052506150bd8463ffffffff16613366565b816003815181106150ca57fe5b602002602001018190525060606150e082613379565b94989497509395505050505050565b806150f9576131d4565b5b60208110615119578251825260209283019290910190601f19016150fa565b915181516020939093036101000a6000190180199091169216919091179052565b60008261514957506000612fa4565b8282028284828161515657fe5b04146132b85760405162461bcd60e51b815260040180806020018281038252602181526020018061529f6021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806151c46151d1565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565696e73756666696369656e742062616c616e636520616674657220726564656c6567617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa2646970667358221220f93b7c737ada8f392b296e539e2479e336344a76181ff9ba33d0303334f6a7c064736f6c63430006040033", + Code: gibbs.MainnetStakingContract, }, }, } @@ -299,12 +313,12 @@ func init() { { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d45b31c12b2c04757284717f4351cb44e81a3a7", - Code: "60806040526004361061036f5760003560e01c80639a854bbd116101c6578063bd466461116100f7578063f014847211610095578063fc1a598f1161006f578063fc1a598f14610d58578063fc3e590814610a3b578063fd6a687914610d8b578063ff9c0027146106ec576103b7565b8063f014847214610d19578063f9a2bbc714610d2e578063fa9e915914610d43576103b7565b8063d9e6dae9116100d1578063d9e6dae91461066e578063dc927faf14610cda578063e1c7392a14610cef578063ebf71d5314610d04576103b7565b8063bd46646114610c0d578063c81b166214610c40578063c8509d8114610c55576103b7565b8063aa7415f511610164578063b99328c51161013e578063b99328c514610b77578063b9fd21e314610bb0578063ba35ead614610bc5578063bbface1f14610bda576103b7565b8063aa7415f514610a50578063ab51bb9614610a97578063ac43175114610aac576103b7565b8063a1a11bf5116101a0578063a1a11bf5146109fc578063a496fba214610a11578063a78abc1614610a26578063a7c9f02d14610a3b576103b7565b80639a854bbd146109995780639a99b4f0146109ae5780639dc09262146109e7576103b7565b806361368475116102a0578063727be1f81161023e578063831d65d111610218578063831d65d1146108c05780638b87b21f146105ed5780638eff336c1461094557806396713da914610984576103b7565b8063727be1f81461086c57806375d47a0a146108965780637942fd05146108ab576103b7565b80636e47b4821161027a5780636e47b4821461082d57806370fd5bad146106ec578063718a8aa81461084257806371d3086314610857576103b7565b8063613684751461066e57806366dea52a146106ec5780636e05652014610701576103b7565b806343a368b91161030d57806350432d32116102e757806350432d321461068357806351e806721461069857806359b92789146106ad5780635d499b1b146106d7576103b7565b806343a368b91461062d578063493279b1146106425780634bf6c8821461066e576103b7565b8063149d14d911610349578063149d14d9146105155780633d7132231461053c5780633dffc387146105ed57806343756e5c14610618576103b7565b80630bee7a67146103bc5780630e2374a5146103ea5780631182b8751461041b576103b7565b366103b75734156103b5576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b3480156103c857600080fd5b506103d1610da0565b6040805163ffffffff9092168252519081900360200190f35b3480156103f657600080fd5b506103ff610da5565b604080516001600160a01b039092168252519081900360200190f35b34801561042757600080fd5b506104a06004803603604081101561043e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561046257600080fd5b82018360208201111561047457600080fd5b803590602001918460018302840111600160201b8311171561049557600080fd5b509092509050610dab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104da5781810151838201526020016104c2565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052157600080fd5b5061052a610ed9565b60408051918252519081900360200190f35b34801561054857600080fd5b506103ff6004803603602081101561055f57600080fd5b810190602081018135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610edf945050505050565b3480156105f957600080fd5b50610602610f03565b6040805160ff9092168252519081900360200190f35b34801561062457600080fd5b506103ff610f08565b34801561063957600080fd5b5061052a610f0e565b34801561064e57600080fd5b50610657610f1a565b6040805161ffff9092168252519081900360200190f35b34801561067a57600080fd5b50610602610f1f565b34801561068f57600080fd5b5061052a610f24565b3480156106a457600080fd5b506103ff610f2f565b3480156106b957600080fd5b506103ff600480360360208110156106d057600080fd5b5035610f35565b3480156106e357600080fd5b5061052a610f50565b3480156106f857600080fd5b50610602610f59565b6108196004803603608081101561071757600080fd5b810190602081018135600160201b81111561073157600080fd5b82018360208201111561074357600080fd5b803590602001918460208302840111600160201b8311171561076457600080fd5b919390929091602081019035600160201b81111561078157600080fd5b82018360208201111561079357600080fd5b803590602001918460208302840111600160201b831117156107b457600080fd5b919390929091602081019035600160201b8111156107d157600080fd5b8201836020820111156107e357600080fd5b803590602001918460208302840111600160201b8311171561080457600080fd5b91935091503567ffffffffffffffff16610f5e565b604080519115158252519081900360200190f35b34801561083957600080fd5b506103ff611433565b34801561084e57600080fd5b50610602611439565b34801561086357600080fd5b5061052a61143e565b34801561087857600080fd5b506108196004803603602081101561088f57600080fd5b5035611444565b3480156108a257600080fd5b506103ff6114be565b3480156108b757600080fd5b506106026114c4565b3480156108cc57600080fd5b506103b5600480360360408110156108e357600080fd5b60ff8235169190810190604081016020820135600160201b81111561090757600080fd5b82018360208201111561091957600080fd5b803590602001918460018302840111600160201b8311171561093a57600080fd5b5090925090506114c9565b34801561095157600080fd5b506103b56004803603606081101561096857600080fd5b508035906001600160a01b036020820135169060400135611612565b34801561099057600080fd5b50610602611698565b3480156109a557600080fd5b5061052a61169d565b3480156109ba57600080fd5b5061052a600480360360408110156109d157600080fd5b506001600160a01b0381351690602001356116a9565b3480156109f357600080fd5b506103ff6117e7565b348015610a0857600080fd5b506103ff6117ed565b348015610a1d57600080fd5b506106026117f3565b348015610a3257600080fd5b506108196117f8565b348015610a4757600080fd5b50610602611801565b61081960048036036080811015610a6657600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611806565b348015610aa357600080fd5b506103d16117f3565b348015610ab857600080fd5b506103b560048036036040811015610acf57600080fd5b810190602081018135600160201b811115610ae957600080fd5b820183602082011115610afb57600080fd5b803590602001918460018302840111600160201b83111715610b1c57600080fd5b919390929091602081019035600160201b811115610b3957600080fd5b820183602082011115610b4b57600080fd5b803590602001918460018302840111600160201b83111715610b6c57600080fd5b509092509050611ec7565b348015610b8357600080fd5b506103b560048036036040811015610b9a57600080fd5b50803590602001356001600160a01b0316612136565b348015610bbc57600080fd5b5061052a6121ac565b348015610bd157600080fd5b5061052a6121b6565b348015610be657600080fd5b5061052a60048036036020811015610bfd57600080fd5b50356001600160a01b03166121bc565b348015610c1957600080fd5b5061052a60048036036020811015610c3057600080fd5b50356001600160a01b03166121ce565b348015610c4c57600080fd5b506103ff6121e9565b348015610c6157600080fd5b506103b560048036036040811015610c7857600080fd5b60ff8235169190810190604081016020820135600160201b811115610c9c57600080fd5b820183602082011115610cae57600080fd5b803590602001918460018302840111600160201b83111715610ccf57600080fd5b5090925090506121ef565b348015610ce657600080fd5b506103ff6122bf565b348015610cfb57600080fd5b506103b56122c5565b348015610d1057600080fd5b50610602612365565b348015610d2557600080fd5b5061060261236a565b348015610d3a57600080fd5b506103ff61236f565b348015610d4f57600080fd5b5061052a612375565b348015610d6457600080fd5b506104a060048036036020811015610d7b57600080fd5b50356001600160a01b031661237b565b348015610d9757600080fd5b506103ff6124a2565b606481565b61200181565b60005460609060ff16610df3576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b3361200014610e335760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff841660021415610e8557610e7e83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124a892505050565b9050610ed2565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b60015490565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b61100181565b670de0b6b3a764000081565b606181565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff16610fa4576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b868514610fe25760405162461bcd60e51b815260040180806020018281038252603b815260200180614878603b913960400191505060405180910390fd5b8683146110205760405162461bcd60e51b815260040180806020018281038252603f81526020018061474b603f913960400191505060405180910390fd5b426078018267ffffffffffffffff16101561106c5760405162461bcd60e51b815260040180806020018281038252602481526020018061463b6024913960400191505060405180910390fd5b6402540be4003406156110b05760405162461bcd60e51b815260040180806020018281038252604081526020018061497b6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156110e3578160200160208202803683370190505b50905060005b848110156111be576402540be4008b8b8381811061110357fe5b905060200201358161111157fe5b061561114e5760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b6111738b8b8381811061115d57fe5b90506020020135856125cc90919063ffffffff16565b935061119f6402540be4008c8c8481811061118a57fe5b9050602002013561262690919063ffffffff16565b8282815181106111ab57fe5b60209081029190910101526001016110e9565b506001546111e3906111d6908663ffffffff61266816565b849063ffffffff6125cc16565b3410156112215760405162461bcd60e51b81526004018080602001828103825260568152602001806149256056913960600191505060405180910390fd5b611231348463ffffffff6126c116565b915061123b614461565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036112ff84612703565b611314876402540be40063ffffffff61262616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561137257818101518382015260200161135a565b50505050905090810190601f16801561139f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b600033612001146114865760405162461bcd60e51b815260040180806020018281038252603381526020018061457b6033913960400191505060405180910390fd5b6040516120019083156108fc029084906000818181858888f193505050501580156114b5573d6000803e3d6000fd5b50600192915050565b61100881565b600b81565b60005460ff1661150e576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b336120001461154e5760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff83166003141561159e5761159982828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129be92505050565b61160d565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146116525760405162461bcd60e51b81526004018080602001828103825260238152602001806148e26023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b600981565b677ce66c50e284000081565b6000805460ff166116ef576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b336110051461172f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806145ae602f913960400191505060405180910390fd5b600047831061173e5747611740565b825b9050670de0b6b3a764000081111561175c5760009150506117e1565b80156117de576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611798573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff1661184c576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff1610156118985760405162461bcd60e51b815260040180806020018281038252602481526020018061463b6024913960400191505060405180910390fd5b6402540be4003406156118dc5760405162461bcd60e51b815260040180806020018281038252604081526020018061497b6040913960400191505060405180910390fd5b600080806001600160a01b0388166119bb5760015461190290879063ffffffff6125cc16565b3410156119405760405162461bcd60e51b81526004018080602001828103825260618152602001806146c56061913960800191505060405180910390fd5b6402540be4008606156119845760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b611994348763ffffffff6126c116565b90506119ab866402540be40063ffffffff61262616565b6221272160e91b93509150611c5e565b6001600160a01b038816600090815260036020526040902054925082611a125760405162461bcd60e51b81526004018080602001828103825260318152602001806146946031913960400191505060405180910390fd5b600154341015611a535760405162461bcd60e51b815260040180806020018281038252603f8152602001806147e7603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611a9e5750600881118015611a9e5750611a9c876007198301600a0a63ffffffff612a1a16565b155b611ad95760405162461bcd60e51b815260040180806020018281038252603c81526020018061478a603c913960400191505060405180910390fd5b611ae38782612a5c565b9250611aee84612a9c565b15611b36576305f5e100831015611b365760405162461bcd60e51b815260040180806020018281038252603a8152602001806145dd603a913960400191505060405180910390fd5b600881101580611b505750600881108015611b5057508683115b611b8b5760405162461bcd60e51b81526004018080602001828103825260258152602001806147266025913960400191505060405180910390fd5b677ce66c50e2840000831115611bd25760405162461bcd60e51b815260040180806020018281038252603581526020018061465f6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b158015611c2757600080fd5b505af1158015611c3b573d6000803e3d6000fd5b505050506040513d6020811015611c5157600080fd5b5051611c5c57600080fd5b505b611c66614461565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff168152509050828160400151600081518110611d1457fe5b602002602001018181525050878160600151600081518110611d3257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050338160800151600081518110611d6457fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d76003611d8f84612703565b611da4866402540be40063ffffffff61262616565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611e02578181015183820152602001611dea565b50505050905090810190601f168015611e2f5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611e5057600080fd5b505af1158015611e64573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b3361100714611f075760405162461bcd60e51b815260040180806020018281038252602e815260200180614826602e913960400191505060405180910390fd5b60208114611f5c576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b811415612064576020820151670de0b6b3a7640000811180159061200b57506402540be4008106155b61205c576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b6001556120a1565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146121765760405162461bcd60e51b81526004018080602001828103825260238152602001806148e26023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612234576040805162461bcd60e51b81526020600482015260196024820152600080516020614905833981519152604482015290519081900360640190fd5b33612000146122745760405162461bcd60e51b815260040180806020018281038252602f8152602001806148b3602f913960400191505060405180910390fd5b60ff83166003141561159e5761159982828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba292505050565b61100381565b60005460ff161561231d576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b600481565b600581565b61100081565b61271081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff16101561240b57828160ff16815181106123df57fe5b01602001516001600160f81b031916156123fe57600190910190612403565b61240b565b6001016123c4565b5060608160ff166040519080825280601f01601f19166020018201604052801561243c576020820181803683370190505b50905060005b8260ff168160ff16101561249857838160ff168151811061245f57fe5b602001015160f81c60f81b828260ff168151811061247957fe5b60200101906001600160f81b031916908160001a905350600101612442565b5095945050505050565b61100481565b60606124b26144ad565b60006124bd84612ca0565b9150915080612513576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b600061251e83612ddf565b905063ffffffff8116156125b2576040808401516020808601516001600160a01b031660009081526002909152918220546125599190612a5c565b90506125636144e2565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff1681525090506125a68161312c565b95505050505050610efe565b50506040805160008152602081019091529150610efe9050565b6000828201838110156117de576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006117de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613208565b600082612677575060006117e1565b8282028284828161268457fe5b04146117de5760405162461bcd60e51b81526004018080602001828103825260218152602001806147c66021913960400191505060405180910390fd5b60006117de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132aa565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161271e575050835190915061274090613304565b8160008151811061274d57fe5b602002602001018190525061276e83602001516001600160a01b0316613317565b8160018151811061277b57fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156127c657816020015b60608152602001906001900390816127b15790505b50905060005b82811015612813576127f4866040015182815181106127e757fe5b6020026020010151613304565b82828151811061280057fe5b60209081029190910101526001016127cc565b5061281d8161333a565b8360028151811061282a57fe5b602002602001018190525060608260405190808252806020026020018201604052801561286b57816020015b60608152602001906001900390816128565790505b50905060005b838110156128c1576128a28760600151828151811061288c57fe5b60200260200101516001600160a01b0316613317565b8282815181106128ae57fe5b6020908102919091010152600101612871565b506128cb8161333a565b846003815181106128d857fe5b602002602001018190525060608360405190808252806020026020018201604052801561291957816020015b60608152602001906001900390816129045790505b50905060005b848110156129595761293a8860800151828151811061288c57fe5b82828151811061294657fe5b602090810291909101015260010161291f565b506129638161333a565b8560048151811061297057fe5b60200260200101819052506129928760a0015167ffffffffffffffff16613304565b8560058151811061299f57fe5b60200260200101819052506129b38561333a565b979650505050505050565b6129c6614509565b60006129d1836133c4565b9150915080612a115760405162461bcd60e51b81526004018080602001828103825260248152602001806148546024913960400191505060405180910390fd5b61160d8261358f565b60006117de83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613a13565b60006008821115612a8557612a7e836007198401600a0a63ffffffff61262616565b90506117e1565b6117de836008849003600a0a63ffffffff61266816565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff161015612b1257828160ff1681518110612ae657fe5b01602001516001600160f81b03191615612b0557600190910190612b0a565b612b12565b600101612acb565b50600760ff82161015612b2a57600092505050610efe565b816005820360ff1681518110612b3c57fe5b6020910101516001600160f81b031916602d60f81b14612b6157600092505050610efe565b816001820360ff1681518110612b7357fe5b6020910101516001600160f81b031916604d60f81b14612b9857600092505050610efe565b5060019392505050565b612baa614461565b6000612bb583613a75565b9150915080612bf55760405162461bcd60e51b81526004018080602001828103825260248152602001806146176024913960400191505060405180910390fd5b612bfd614509565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015612c7e57612c5b85604001518281518110612c4d57fe5b602002602001015183613cd9565b85604001518281518110612c6b57fe5b6020908102919091010152600101612c2d565b506080840151604083015260056060830152612c998261358f565b5050505050565b612ca86144ad565b6000612cb26144ad565b612cba614540565b612ccb612cc686613d12565b613d37565b90506000805b612cda83613d81565b15612dd25780612cfc57612cf5612cf084613da2565b613df0565b8452612dca565b8060011415612d2957612d16612d1184613da2565b613ea7565b6001600160a01b03166020850152612dca565b8060021415612d4857612d3e612cf084613da2565b6040850152612dca565b8060031415612d7057612d5d612d1184613da2565b6001600160a01b03166060850152612dca565b8060041415612d9857612d85612d1184613da2565b6001600160a01b03166080850152612dca565b8060051415612dc557612dad612cf084613da2565b67ffffffffffffffff1660a085015260019150612dca565b612dd2565b600101612cd1565b5091935090915050915091565b60208101516000906001600160a01b0316612f16578160a0015167ffffffffffffffff16421115612e1257506001610efe565b8160400151471015612e2657506003610efe565b606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d8060008114612e7d576040519150601f19603f3d011682016040523d82523d6000602084013e612e82565b606091505b5050905080612e95575060049050610efe565b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009050610efe565b8160a0015167ffffffffffffffff16421115612f3457506001610efe565b81516020808401516001600160a01b031660009081526003909152604090205414612f6157506002610efe565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015612fb157600080fd5b5086fa158015612fc5573d6000803e3d6000fd5b50505050506040513d6020811015612fdc57600080fd5b50516040840151909150811015612ff7575060039050610efe565b600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561306857600080fd5b5087f115801561307c573d6000803e3d6000fd5b50505050506040513d602081101561309357600080fd5b505190508015613120577f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5984602001518560600151866040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060009150610efe9050565b5060059150610efe9050565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613147575050835190915061316990613304565b8160008151811061317657fe5b602002602001018190525061318e8360200151613304565b8160018151811061319b57fe5b60200260200101819052506131bc83604001516001600160a01b0316613317565b816002815181106131c957fe5b60200260200101819052506131e7836060015163ffffffff16613304565b816003815181106131f457fe5b6020026020010181905250610ed28161333a565b600081836132945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613259578181015183820152602001613241565b50505050905090810190601f1680156132865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816132a057fe5b0495945050505050565b600081848411156132fc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613259578181015183820152602001613241565b505050900390565b60606117e161331283613ec1565b613fa7565b60408051600560a21b8318601482015260348101909152606090610ed281613fa7565b606081516000141561335b5750604080516000815260208101909152610efe565b60608260008151811061336a57fe5b602002602001015190506000600190505b83518110156133ab576133a18285838151811061339457fe5b6020026020010151613ff9565b915060010161337b565b50610ed26133be825160c060ff16614076565b82613ff9565b6133cc614509565b60006133d6614509565b6133de614540565b6133ea612cc686613d12565b90506000805b6133f983613d81565b15612dd2578061341f5761340f612d1184613da2565b6001600160a01b03168452613587565b80600114156134c057606061343b61343685613da2565b61416e565b90508051604051908082528060200260200182016040528015613468578160200160208202803683370190505b50602086015260005b81518110156134b95761349682828151811061348957fe5b6020026020010151613df0565b866020015182815181106134a657fe5b6020908102919091010152600101613471565b5050613587565b80600214156135625760606134d761343685613da2565b90508051604051908082528060200260200182016040528015613504578160200160208202803683370190505b50604086015260005b81518110156134b95761353282828151811061352557fe5b6020026020010151613ea7565b8660400151828151811061354257fe5b6001600160a01b039092166020928302919091019091015260010161350d565b8060031415612dc557613577612cf084613da2565b63ffffffff166060850152600191505b6001016133f0565b80516001600160a01b03166137b95760005b8160200151518110156137b3576000826040015182815181106135c057fe5b60200260200101516001600160a01b0316612710846020015184815181106135e457fe5b60209081029190910101516040516000818181858888f193505050503d806000811461362c576040519150601f19603f3d011682016040523d82523d6000602084013e613631565b606091505b50509050806136f4577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061367057fe5b60200260200101518560200151858151811061368857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16137aa565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061372a57fe5b60200260200101518560200151858151811061374257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016135a1565b50613a10565b60005b816020015151811015613a0e57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106137f157fe5b60200260200101518660200151868151811061380957fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561386057600080fd5b5087f1158015613874573d6000803e3d6000fd5b50505050506040513d602081101561388b57600080fd5b50519050801561394f577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106138cb57fe5b6020026020010151856020015185815181106138e357fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1613a05565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061398557fe5b60200260200101518560200151858151811061399d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016137bc565b505b50565b60008183613a625760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613259578181015183820152602001613241565b50828481613a6c57fe5b06949350505050565b613a7d614461565b6000613a87614461565b613a8f614540565b613a9b612cc686613d12565b90506000805b613aaa83613d81565b15612dd25780613ac757613ac0612cf084613da2565b8452613cd1565b8060011415613aef57613adc612d1184613da2565b6001600160a01b03166020850152613cd1565b8060021415613b7e576060613b0661343685613da2565b90508051604051908082528060200260200182016040528015613b33578160200160208202803683370190505b50604086015260005b8151811015613b7757613b5482828151811061348957fe5b86604001518281518110613b6457fe5b6020908102919091010152600101613b3c565b5050613cd1565b8060031415613c13576060613b9561343685613da2565b90508051604051908082528060200260200182016040528015613bc2578160200160208202803683370190505b50606086015260005b8151811015613b7757613be382828151811061352557fe5b86606001518281518110613bf357fe5b6001600160a01b0390921660209283029190910190910152600101613bcb565b8060041415613ca8576060613c2a61343685613da2565b90508051604051908082528060200260200182016040528015613c57578160200160208202803683370190505b50608086015260005b8151811015613b7757613c7882828151811061352557fe5b86608001518281518110613c8857fe5b6001600160a01b0390921660209283029190910190910152600101613c60565b8060051415612dc557613cbd612cf084613da2565b67ffffffffffffffff1660a0850152600191505b600101613aa1565b60006008821115613cfb57612a7e836007198401600a0a63ffffffff61266816565b6117de836008849003600a0a63ffffffff61262616565b613d1a614560565b506040805180820190915281518152602082810190820152919050565b613d3f614540565b613d488261423f565b613d5157600080fd5b6000613d60836020015161426f565b60208085015160408051808201909152868152920190820152915050919050565b6000613d8b614560565b505080518051602091820151919092015191011190565b613daa614560565b613db382613d81565b613dbc57600080fd5b60208201516000613dcc826142d2565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590613e0557508151602110155b613e0e57600080fd5b6000613e1d836020015161426f565b90508083600001511015613e78576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015613e9e57826020036101000a820491505b50949350505050565b8051600090601514613eb857600080fd5b6117e182613df0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416613f0557506018613f29565b6fffffffffffffffffffffffffffffffff198416613f2557506010613f29565b5060005b6020811015613f5f57818181518110613f3e57fe5b01602001516001600160f81b03191615613f5757613f5f565b600101613f29565b60008160200390506060816040519080825280601f01601f191660200182016040528015613f94576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015613fd95750607f60f81b82600081518110613fc757fe5b01602001516001600160f81b03191611155b15613fe5575080610efe565b6117e1613ff78351608060ff16614076565b835b6060806040519050835180825260208201818101602087015b8183101561402a578051835260209283019201614012565b50855184518101855292509050808201602086015b8183101561405757805183526020928301920161403f565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106140c6576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116141205782840160f81b8160008151811061410257fe5b60200101906001600160f81b031916908160001a90535090506117e1565b606061412b85613ec1565b90508381510160370160f81b8260008151811061414457fe5b60200101906001600160f81b031916908160001a9053506141658282613ff9565b95945050505050565b60606141798261423f565b61418257600080fd5b600061418d83614405565b90506060816040519080825280602002602001820160405280156141cb57816020015b6141b8614560565b8152602001906001900390816141b05790505b50905060006141dd856020015161426f565b60208601510190506000805b84811015614234576141fa836142d2565b915060405180604001604052808381526020018481525084828151811061421d57fe5b6020908102919091010152918101916001016141e9565b509195945050505050565b805160009061425057506000610efe565b6020820151805160001a9060c0821015612b9857600092505050610efe565b8051600090811a6080811015614289576000915050610efe565b60b88110806142a4575060c081108015906142a4575060f881105b156142b3576001915050610efe565b60c08110156142c75760b519019050610efe565b60f519019050610efe565b80516000908190811a60808110156142ed57600191506143fe565b60b881101561430257607e19810191506143fe565b60c081101561437c57600060b78203600186019550806020036101000a865104915060018101820193505080831015614376576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506143fe565b60f88110156143915760be19810191506143fe565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156143fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b805160009061441657506000610efe565b6000809050600061442a846020015161426f565b602085015185519181019250015b8082101561445857614449826142d2565b60019093019290910190614438565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280614553614560565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220caf56ff249aa6ca806ce69d2892ae51c7530b6d135624d7e27646a2095f0b01964736f6c63430006040033", + Code: gibbs.ChapelTokenHubContract, }, { ContractAddr: common.HexToAddress(StakingContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d45b31c12b2c04757284717f4351cb44e81a3a7", - Code: "60806040526004361061036f5760003560e01c806370fd5bad116101c6578063b88a802f116100f7578063d7ecfcb611610095578063f45fd80b1161006f578063f45fd80b14610bd0578063f9a2bbc714610c15578063fc3e590814610646578063fd6a687914610c2a57610376565b8063d7ecfcb6146107ee578063dc927faf14610ba6578063edc1a5b014610bbb57610376565b8063c2117d82116100d1578063c2117d8214610abc578063c81b166214610ad1578063c8509d8114610ae6578063d61b9b9314610b6b57610376565b8063b88a802f14610a57578063baaafd3b14610a6c578063bf8546ca14610a8157610376565b806396713da911610164578063a78abc161161013e578063a78abc1614610939578063ab51bb9614610962578063ac43175114610977578063b14315df14610a4257610376565b806396713da9146108fa5780639dc092621461090f578063a1a11bf51461092457610376565b806375d47a0a116101a057806375d47a0a1461084b5780637942fd0514610860578063831d65d11461087557806392b888a4146105f257610376565b806370fd5bad146107ee578063718a8aa81461080357806375aca5931461081857610376565b8063413d9c3a116102a05780635d17c8bd1161023e57806369b635b61161021857806369b635b61461075b5780636bd8f804146107705780636e47b482146107a65780636fb7f7eb146107bb57610376565b80635d17c8bd1461071c5780635d499b1b1461073157806362b171d21461074657610376565b80634bf6c8821161027a5780634bf6c882146106b15780634d99dd16146106c657806351e80672146106f2578063552aaf931461070757610376565b8063413d9c3a1461065b57806343756e5c14610670578063493279b11461068557610376565b8063151817e31161030d578063333ad3e7116102e7578063333ad3e71461061c57806334c43354146106315780633dffc387146105f25780633fdfa7e41461064657610376565b8063151817e3146105c757806317c9efb0146105f25780632fdeb1111461060757610376565b80630bee7a67116103495780630bee7a671461043b5780630e2374a5146104695780631182b8751461049a57806311fe9ec61461059457610376565b8063026e402b1461037b57806302985992146103a9578063047636d1146103d057610376565b3661037657005b600080fd5b6103a76004803603604081101561039157600080fd5b506001600160a01b038135169060200135610c3f565b005b3480156103b557600080fd5b506103be611141565b60408051918252519081900360200190f35b3480156103dc57600080fd5b50610403600480360360208110156103f357600080fd5b50356001600160a01b0316611147565b6040518082606080838360005b83811015610428578181015183820152602001610410565b5050505090500191505060405180910390f35b34801561044757600080fd5b5061045061119b565b6040805163ffffffff9092168252519081900360200190f35b34801561047557600080fd5b5061047e6111a0565b604080516001600160a01b039092168252519081900360200190f35b3480156104a657600080fd5b5061051f600480360360408110156104bd57600080fd5b60ff8235169190810190604081016020820135600160201b8111156104e157600080fd5b8201836020820111156104f357600080fd5b803590602001918460018302840111600160201b8311171561051457600080fd5b5090925090506111a6565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610559578181015183820152602001610541565b50505050905090810190601f1680156105865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a057600080fd5b506103be600480360360208110156105b757600080fd5b50356001600160a01b031661135c565b3480156105d357600080fd5b506105dc611377565b6040805160ff9092168252519081900360200190f35b3480156105fe57600080fd5b506105dc61137c565b34801561061357600080fd5b506103be611381565b34801561062857600080fd5b50610450611387565b34801561063d57600080fd5b506103be61138c565b34801561065257600080fd5b506105dc611397565b34801561066757600080fd5b506103be61139c565b34801561067c57600080fd5b5061047e6113a3565b34801561069157600080fd5b5061069a6113a9565b6040805161ffff9092168252519081900360200190f35b3480156106bd57600080fd5b506105dc6113ae565b6103a7600480360360408110156106dc57600080fd5b506001600160a01b0381351690602001356113b3565b3480156106fe57600080fd5b5061047e61199a565b34801561071357600080fd5b506105dc6119a0565b34801561072857600080fd5b506103be6119a5565b34801561073d57600080fd5b506103be6119ab565b34801561075257600080fd5b506103be6119b4565b34801561076757600080fd5b506103be611aec565b6103a76004803603606081101561078657600080fd5b506001600160a01b03813581169160208101359091169060400135611af2565b3480156107b257600080fd5b5061047e612160565b3480156107c757600080fd5b506103be600480360360208110156107de57600080fd5b50356001600160a01b0316612166565b3480156107fa57600080fd5b506105dc612181565b34801561080f57600080fd5b506105dc612186565b34801561082457600080fd5b506103be6004803603602081101561083b57600080fd5b50356001600160a01b031661218b565b34801561085757600080fd5b5061047e6121a6565b34801561086c57600080fd5b506105dc6121ac565b34801561088157600080fd5b506103a76004803603604081101561089857600080fd5b60ff8235169190810190604081016020820135600160201b8111156108bc57600080fd5b8201836020820111156108ce57600080fd5b803590602001918460018302840111600160201b831117156108ef57600080fd5b5090925090506121b1565b34801561090657600080fd5b506105dc612473565b34801561091b57600080fd5b5061047e612478565b34801561093057600080fd5b5061047e61247e565b34801561094557600080fd5b5061094e612484565b604080519115158252519081900360200190f35b34801561096e57600080fd5b506104506119a0565b34801561098357600080fd5b506103a76004803603604081101561099a57600080fd5b810190602081018135600160201b8111156109b457600080fd5b8201836020820111156109c657600080fd5b803590602001918460018302840111600160201b831117156109e757600080fd5b919390929091602081019035600160201b811115610a0457600080fd5b820183602082011115610a1657600080fd5b803590602001918460018302840111600160201b83111715610a3757600080fd5b50909250905061248d565b348015610a4e57600080fd5b506105dc612a8a565b348015610a6357600080fd5b506103be612a8f565b348015610a7857600080fd5b506103be612bc4565b348015610a8d57600080fd5b506103be60048036036040811015610aa457600080fd5b506001600160a01b0381358116916020013516612bcf565b348015610ac857600080fd5b506103be612bfc565b348015610add57600080fd5b5061047e612c02565b348015610af257600080fd5b506103a760048036036040811015610b0957600080fd5b60ff8235169190810190604081016020820135600160201b811115610b2d57600080fd5b820183602082011115610b3f57600080fd5b803590602001918460018302840111600160201b83111715610b6057600080fd5b509092509050612c08565b348015610b7757600080fd5b506103be60048036036040811015610b8e57600080fd5b506001600160a01b0381358116916020013516612e25565b348015610bb257600080fd5b5061047e612e50565b348015610bc757600080fd5b506103be612e56565b348015610bdc57600080fd5b506103be60048036036060811015610bf357600080fd5b506001600160a01b038135811691602081013582169160409091013516612e63565b348015610c2157600080fd5b5061047e612e98565b348015610c3657600080fd5b5061047e612e9e565b60105460ff1660021415610c8b576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cb357506402540be4008106155b610d04576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d41576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600354821015610d98576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610dac90839063ffffffff612ea416565b341015610df7576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b60405133906108fc9060009081818181818888f19350505050610e55576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610e6c836402540be40063ffffffff612f0516565b90506000610e80348563ffffffff612f4716565b90506000610e9960025483612f4790919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610eb5579050509050610ed533612f89565b81600081518110610ee257fe5b6020026020010181905250610eff876001600160a01b0316612f89565b81600181518110610f0c57fe5b6020026020010181905250610f2084612fac565b81600281518110610f2d57fe5b60200260200101819052506060610f4d6001610f4884612fbf565b613049565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083610fab876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611009578181015183820152602001610ff1565b50505050905090810190601f1680156110365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561105757600080fd5b505af115801561106b573d6000803e3d6000fd5b5061100492506108fc91506110889050898663ffffffff612ea416565b6040518115909202916000818181858888f193505050501580156110b0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156110e1573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff19166001179055505050505050565b60035481565b61114f614dd9565b611157614dd9565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b61200181565b606033612000146111e85760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff16611225576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b61122d614df7565b61127461126f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b6130f4565b905060006112896112848361313e565b61318c565b90506000606060ff8316600414156112ae576112a484613243565b9092509050611305565b60ff8316600514156112c3576112a484613423565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615611351576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff16600214156113ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561142757506402540be4008106155b611478576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff166114b5576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b600154341015611503576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210156115be576002548211611556576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b038716845290915290205482146115be576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526005602090815260408083206001600160a01b0387168452909152902054821115611627576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b038716845290915290205442101561169f576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b60006116b6836402540be40063ffffffff612f0516565b60025490915034906000906116d290839063ffffffff612f4716565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816116ee57905050905061170e33612f89565b8160008151811061171b57fe5b6020026020010181905250611738876001600160a01b0316612f89565b8160018151811061174557fe5b602002602001018190525061175984612fac565b8160028151811061176657fe5b602002602001018190525060606117816002610f4884612fbf565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c90935291208054909101905590506117d242620a8c0063ffffffff612ea416565b3360009081526007602090815260408083206001600160a01b038d16845290915290205561200063f7a251d7601083611816876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561187457818101518382015260200161185c565b50505050905090810190601f1680156118a15780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156118c257600080fd5b505af11580156118d6573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015611909573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561193a573d6000803e3d6000fd5b50604080518881526020810185905281516001600160a01b038b169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff19166001179055505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611a03576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611a6a576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290555183156108fc0291849190818181858888f19350505050158015611aa5573d6000803e3d6000fd5b5060408051828152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a26010805460ff1916600117905590565b60035490565b60105460ff1660021415611b3e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611b6657506402540be4008106155b611bb7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611bf4576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611c52576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611ca0576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b6003548210158015611cd557503360009081526005602090815260408083206001600160a01b03881684529091529020548211155b611d17576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611d8557503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611dd6576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b6000611ded836402540be40063ffffffff612f0516565b6002549091503490600090611e0990839063ffffffff612f4716565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611e25579050509050611e4533612f89565b81600081518110611e5257fe5b6020026020010181905250611e6f886001600160a01b0316612f89565b81600181518110611e7c57fe5b6020026020010181905250611e99876001600160a01b0316612f89565b81600281518110611ea657fe5b6020026020010181905250611eba84612fac565b81600381518110611ec757fe5b60200260200101819052506060611ee26003610f4884612fbf565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d9093529120805490910190559050611f3342620a8c0063ffffffff612ea416565b3360009081526009602090815260408083206001600160a01b038d81168552908352818420908e168452909152902055611f7642620a8c0063ffffffff612ea416565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908d16845290915290205561200063f7a251d7601083611fc6876402540be40063ffffffff612f0516565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561202457818101518382015260200161200c565b50505050905090810190601f1680156120515780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561207257600080fd5b505af1158015612086573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156120b9573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156120ea573d6000803e3d6000fd5b50876001600160a01b0316896001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158a87604051808381526020018281526020019250505060405180910390a450506010805460ff1916600117905550505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b33612000146121f15760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff1661222e576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612236614df7565b61227861126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b905060008060606000805b61228c8661363f565b156122f757806122a9576122a26112848761313e565b94506122ef565b80600114156122c5576122be6112848761313e565b93506122ef565b80600214156122ea576122df6122da8761313e565b613660565b9250600191506122ef565b6122f7565b600101612283565b8161233d576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b612346836136d0565b612389576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b61239561126f846130cf565b955060006123a56112848861313e565b90506123af614df7565b6123b88861363f565b156123db576123d461126f6123cf6122da8b61313e565b6130cf565b905061241c565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff82166001141561243857612433818888613724565b612466565b60ff82166002141561244f57612433818888613adb565b60ff8216600314156112c357612433818888613da8565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff166124e4576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146125245760405162461bcd60e51b815260040180806020018281038252602e815260200180614f0d602e913960400191505060405180910390fd5b61258584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061410d9050565b156126eb57602081146125df576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161261d918585808385018382808284376000920191909152506141f492505050565b9050600354811061265f5760405162461bcd60e51b815260040180806020018281038252602e815260200180614f3b602e913960400191505060405180910390fd5b600254811161269f5760405162461bcd60e51b815260040180806020018281038252602e815260200180614f69602e913960400191505060405180910390fd5b6402540be4008106156126e35760405162461bcd60e51b815260040180806020018281038252602c815260200180614ee1602c913960400191505060405180910390fd5b6001556129f8565b61274f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061410d9050565b1561287557602081146127a9576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127e7918585808385018382808284376000920191909152506141f492505050565b905060015481106128295760405162461bcd60e51b815260040180806020018281038252602e815260200180614e61602e913960400191505060405180910390fd5b6402540be40081061561286d5760405162461bcd60e51b815260040180806020018281038252602f815260200180614e32602f913960400191505060405180910390fd5b6002556129f8565b6128d984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061410d9050565b156129bb5760208114612933576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612971918585808385018382808284376000920191909152506141f492505050565b905060015481116129b35760405162461bcd60e51b8152600401808060200182810382526031815260200180614e8f6031913960400191505060405180910390fd5b6003556129f8565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612ade576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612b42576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290555183156108fc0291849190818181858888f19350505050158015612b7d573d6000803e3d6000fd5b5060408051828152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a26010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612c485760405162461bcd60e51b815260040180806020018281038252602f815260200180614f97602f913960400191505060405180910390fd5b60005460ff16612c85576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556000805460ff191690911790555b612cc482828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136d092505050565b612d07576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b612d0f614df7565b612d5161126f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130cf92505050565b90506000612d616112848361313e565b9050612d6b614df7565b612d748361363f565b15612d9257612d8b61126f6123cf6122da8661313e565b9050612dd8565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff821660011415612df257612ded816141f9565b612e1c565b60ff821660021415612e0757612ded81614413565b60ff8216600314156112c357612ded8161453d565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b61100481565b600082820183811015612efe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000612efe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506146a2565b6000612efe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614744565b60408051600560a21b8318601482015260348101909152606090612efe8161479e565b6060612bf6612fba836147f4565b61479e565b6060815160001415612fe05750604080516000815260208101909152611196565b606082600081518110612fef57fe5b602002602001015190506000600190505b8351811015613030576130268285838151811061301957fe5b60200260200101516148da565b9150600101613000565b50612efe613043825160c060ff16614957565b826148da565b6040805160028082526060828101909352829190816020015b60608152602001906001900390816130625790505090506130858460ff16612fac565b8160008151811061309257fe5b60200260200101819052506130a68361479e565b816001815181106130b357fe5b60200260200101819052506130c781612fbf565b949350505050565b6130d7614e17565b506040805180820190915281518152602082810190820152919050565b6130fc614df7565b61310582614a4f565b61310e57600080fd5b600061311d8360200151614a89565b60208085015160408051808201909152868152920190820152915050919050565b613146614e17565b61314f8261363f565b61315857600080fd5b6020820151600061316882614aec565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906131a157508151602110155b6131aa57600080fd5b60006131b98360200151614a89565b90508083600001511015613214576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561323a57826020036101000a820491505b50949350505050565b600060606000806000805b6132578761363f565b156132a957826132795761327261326d8861313e565b614c1f565b915061329e565b82600114156132995761328e6112848861313e565b90506001935061329e565b6132a9565b82600101925061324e565b836132ef576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561333957600080fd5b505af115801561334d573d6000803e3d6000fd5b505050506040513d602081101561336357600080fd5b50519050806133885761337a600484846065614c39565b96509650505050505061341e565b6001600160a01b0383166000908152600660205260409020546133b1908363ffffffff612ea416565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6134398861363f565b156134a257836134565761344f61326d8961313e565b9250613497565b83600114156134725761346b61326d8961313e565b9150613497565b8360021415613492576134876112848961313e565b905060019450613497565b6134a2565b836001019350613430565b846134e8576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561353257600080fd5b505af1158015613546573d6000803e3d6000fd5b505050506040513d602081101561355c57600080fd5b505190508061358257613573600585846065614c39565b9750975050505050505061341e565b6001600160a01b0380851660008181526007602090815260408083209488168352938152838220829055918152600890915220546135c6908363ffffffff612ea416565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b6000613649614e17565b505080518051602091820151919092015191011190565b805160609061366e57600080fd5b600061367d8360200151614a89565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156136b4576020820181803683370190505b509050600081602001905061323a848760200151018285614d35565b8051602080830191909120600e546000908152600a90925260408220548082146136ff57600092505050611196565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6137368861363f565b1561379f57836137535761374c61326d8961313e565b9250613794565b836001141561376f5761376861326d8961313e565b9150613794565b836002141561378f576137846112848961313e565b905060019450613794565b61379f565b83600101935061372d565b846137e5576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006137fc826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156139425760ff87161561386f576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613898908263ffffffff612ea416565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546138da908263ffffffff612ea416565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613ad0565b60ff8816613a94576001600160a01b038416600090815260086020526040902054613973908263ffffffff612ea416565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156139cf57600080fd5b505af11580156139e3573d6000803e3d6000fd5b505050506040513d60208110156139f957600080fd5b5051613a42576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613ad0565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613aed8861363f565b15613b565783613b0a57613b0361326d8961313e565b9250613b4b565b8360011415613b2657613b1f61326d8961313e565b9150613b4b565b8360021415613b4657613b3b6112848961313e565b905060019450613b4b565b613b56565b836001019350613ae4565b84613b9c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613bb3826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff881660011415613d325760ff871615613c26576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613c4f908263ffffffff612f4716565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613c91908263ffffffff612f4716565b6001600160a01b03808616600090815260056020908152604080832093881683529290522055613cca42620a8c0063ffffffff612ea416565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613ad0565b60ff8816613a94576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613ad0565b6000806000806000805b613dbb8961363f565b15613e405784613dd857613dd161326d8a61313e565b9350613e35565b8460011415613df457613ded61326d8a61313e565b9250613e35565b8460021415613e1057613e0961326d8a61313e565b9150613e35565b8460031415613e3057613e256112848a61313e565b905060019550613e35565b613e40565b846001019450613db2565b85613e86576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613e9d826402540be40063ffffffff614d8016565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156140705760ff881615613f10576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054613f46908263ffffffff612f4716565b6001600160a01b03868116600090815260056020908152604080832089851684529091528082209390935590851681522054613f829082612ea4565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613fbb42620a8c0063ffffffff612ea416565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613ffe42620a8c0063ffffffff612ea416565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614101565b60ff8916613a94576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106141425780518252601f199092019160209182019101614123565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106141b05780518252601f199092019160209182019101614191565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61420b8661363f565b1561427457836142285761422161326d8761313e565b9250614269565b83600114156142445761423d61326d8761313e565b9150614269565b8360021415614264576142596112848761313e565b905060019450614269565b614274565b836001019350614202565b846142ba576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142d1826402540be40063ffffffff614d8016565b6001600160a01b0385166000908152600b602090815260408083208054600019019055600890915290205490915061430f908263ffffffff612ea416565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561436b57600080fd5b505af115801561437f573d6000803e3d6000fd5b505050506040513d602081101561439557600080fd5b50516143de576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b6144258661363f565b1561448e57836144425761443b61326d8761313e565b9250614483565b836001141561445e5761445761326d8761313e565b9150614483565b836002141561447e576144736112848761313e565b905060019450614483565b61448e565b83600101935061441c565b846144d4576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6145508761363f565b156145d5578461456d5761456661326d8861313e565b93506145ca565b84600114156145895761458261326d8861313e565b92506145ca565b84600214156145a55761459e61326d8861313e565b91506145ca565b84600314156145c5576145ba6112848861313e565b9050600195506145ca565b6145d5565b846001019450614547565b8561461b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b6000818361472e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156146f35781810151838201526020016146db565b50505050905090810190601f1680156147205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161473a57fe5b0495945050505050565b600081848411156147965760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156146f35781810151838201526020016146db565b505050900390565b6060815160011480156147d05750607f60f81b826000815181106147be57fe5b01602001516001600160f81b03191611155b156147dc575080611196565b612bf66147ee8351608060ff16614957565b836148da565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166148385750601861485c565b6fffffffffffffffffffffffffffffffff1984166148585750601061485c565b5060005b60208110156148925781818151811061487157fe5b01602001516001600160f81b0319161561488a57614892565b60010161485c565b60008160200390506060816040519080825280601f01601f1916602001820160405280156148c7576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561490b5780518352602092830192016148f3565b50855184518101855292509050808201602086015b81831015614938578051835260209283019201614920565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106149a7576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614a015782840160f81b816000815181106149e357fe5b60200101906001600160f81b031916908160001a9053509050612bf6565b6060614a0c856147f4565b90508381510160370160f81b82600081518110614a2557fe5b60200101906001600160f81b031916908160001a905350614a4682826148da565b95945050505050565b8051600090614a6057506000611196565b6020820151805160001a9060c0821015614a7f57600092505050611196565b5060019392505050565b8051600090811a6080811015614aa3576000915050611196565b60b8811080614abe575060c08110801590614abe575060f881105b15614acd576001915050611196565b60c0811015614ae15760b519019050611196565b60f519019050611196565b80516000908190811a6080811015614b075760019150614c18565b60b8811015614b1c57607e1981019150614c18565b60c0811015614b9657600060b78203600186019550806020036101000a865104915060018101820193505080831015614b90576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614c18565b60f8811015614bab5760be1981019150614c18565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614c16576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614c3057600080fd5b612bf68261318c565b60006060614c52846402540be40063ffffffff612f0516565b60408051600480825260a0820190925291955060609190816020015b6060815260200190600190039081614c6e579050509050614c918760ff16612fac565b81600081518110614c9e57fe5b6020026020010181905250614cbb866001600160a01b0316612f89565b81600181518110614cc857fe5b6020026020010181905250614cdc85612fac565b81600281518110614ce957fe5b6020026020010181905250614d038463ffffffff16612fac565b81600381518110614d1057fe5b60200260200101819052506060614d2682612fbf565b94989497509395505050505050565b80614d3f57612e20565b5b60208110614d5f578251825260209283019290910190601f1901614d40565b915181516020939093036101000a6000190180199091169216919091179052565b600082614d8f57506000612bf6565b82820282848281614d9c57fe5b0414612efe5760405162461bcd60e51b8152600401808060200182810382526021815260200180614ec06021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b6040518060400160405280614e0a614e17565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a2646970667358221220066cc7c05d87e3cd20ecf3649deba7ac4ce8b389992969b6006793cbf330c73564736f6c63430006040033", + Code: gibbs.ChapelStakingContract, }, }, } @@ -315,17 +329,17 @@ func init() { { ContractAddr: common.HexToAddress(RelayerHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "6080604052600436106101d85760003560e01c80637ae2308811610102578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610569578063fb7cfdd71461057e578063fc3e590814610593578063fd6a6879146105a8576101d8565b8063c81b166214610515578063dc927faf1461052a578063e1c7392a1461053f578063e79a198f14610554576101d8565b8063a1a11bf5116100d1578063a1a11bf514610407578063a78abc161461041c578063ab51bb9614610431578063ac43175114610446576101d8565b80637ae23088146103b357806395468d26146103c857806396713da9146103dd5780639dc09262146103f2576101d8565b806351e806721161017a57806370fd5bad1161014957806370fd5bad1461035f578063718a8aa81461037457806375d47a0a146103895780637942fd051461039e576101d8565b806351e80672146102c7578063541d5548146102dc5780636a87d780146103235780636e47b4821461034a576101d8565b80633dffc387116101b65780633dffc3871461024657806343756e5c14610271578063493279b1146102865780634bf6c882146102b2576101d8565b80630bee7a67146101dd5780630e2374a51461020b5780631aa3a0081461023c575b600080fd5b3480156101e957600080fd5b506101f26105bd565b6040805163ffffffff9092168252519081900360200190f35b34801561021757600080fd5b506102206105c2565b604080516001600160a01b039092168252519081900360200190f35b6102446105c8565b005b34801561025257600080fd5b5061025b610749565b6040805160ff9092168252519081900360200190f35b34801561027d57600080fd5b5061022061074e565b34801561029257600080fd5b5061029b610754565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b5061025b610759565b3480156102d357600080fd5b5061022061075e565b3480156102e857600080fd5b5061030f600480360360208110156102ff57600080fd5b50356001600160a01b0316610764565b604080519115158252519081900360200190f35b34801561032f57600080fd5b50610338610782565b60408051918252519081900360200190f35b34801561035657600080fd5b50610220610788565b34801561036b57600080fd5b5061025b61078e565b34801561038057600080fd5b5061025b610793565b34801561039557600080fd5b50610220610798565b3480156103aa57600080fd5b5061025b61079e565b3480156103bf57600080fd5b506103386107a3565b3480156103d457600080fd5b506103386107b0565b3480156103e957600080fd5b5061025b6107bc565b3480156103fe57600080fd5b506102206107c1565b34801561041357600080fd5b506102206107c7565b34801561042857600080fd5b5061030f6107cd565b34801561043d57600080fd5b506101f26107d6565b34801561045257600080fd5b506102446004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460018302840111640100000000831117156104b857600080fd5b9193909290916020810190356401000000008111156104d657600080fd5b8201836020820111156104e857600080fd5b8035906020019184600183028401116401000000008311171561050a57600080fd5b5090925090506107db565b34801561052157600080fd5b50610220610bfd565b34801561053657600080fd5b50610220610c03565b34801561054b57600080fd5b50610244610c09565b34801561056057600080fd5b50610244610c8b565b34801561057557600080fd5b50610220610e44565b34801561058a57600080fd5b50610338610e4a565b34801561059f57600080fd5b5061025b610e50565b3480156105b457600080fd5b50610220610e55565b606481565b61200181565b3360009081526004602052604090205460ff1615610625576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610678576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61068133610e5b565b156106bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806110486027913960400191505060405180910390fd5b333214610707576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b6040805162461bcd60e51b81526020600482015260126024820152711c9959da5cdd195c881cdd5cdc195b99195960721b604482015290519081900360640190fd5b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b601081565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661082e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461086e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061106f602e913960400191505060405180910390fd5b6108d484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e619050565b156109d757602081146109185760405162461bcd60e51b815260040180806020018281038252602281526020018061109d6022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161095691858580838501838280828437600092019190915250610f4892505050565b90506001811180156109715750683635c9adc5dea000008111155b801561097e575060025481115b6109cf576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b6b565b610a3284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e619050565b15610b2e5760208114610a8c576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610aca91858580838501838280828437600092019190915250610f4892505050565b9050600081118015610add575060015481105b610b26576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b6b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c61576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610ce6576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d39576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d4161102d565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610d85919063ffffffff610f4d16565b6040518115909202916000818181858888f19350505050158015610dad573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610de3573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610e965780518252601f199092019160209182019101610e77565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f045780518252601f199092019160209182019101610ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610f8f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b9392505050565b600081848411156110255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fea578181015183820152602001610fd2565b50505050905090810190601f1680156110175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a26469706673582212201c4e7448b0b43bce697ca53ce9878e494069d8ceccfdd4081cee4d8b0deb5ae064736f6c63430006040033", + Code: moran.MainnetRelayerHubContract, }, { ContractAddr: common.HexToAddress(LightClientContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063a1a11bf511610130578063dc927faf116100b8578063e405bbc31161007c578063e405bbc3146106a7578063ea54b2aa146106af578063f9a2bbc7146106b7578063fc3e5908146106bf578063fd6a6879146106c757610227565b8063dc927faf14610627578063dda831481461062f578063df5fe70414610655578063e1c7392a1461067b578063e2761af01461068357610227565b8063adc879e9116100ff578063adc879e914610552578063c81b16621461055a578063cba510a914610562578063d816987914610588578063da8d08f01461060157610227565b8063a1a11bf514610462578063a78abc161461046a578063ab51bb9614610486578063ac4317511461048e57610227565b8063564b81ef116101b3578063718a8aa811610182578063718a8aa81461043a57806375d47a0a146104425780637942fd051461044a57806396713da9146104525780639dc092621461045a57610227565b8063564b81ef146102e85780635c5ae8db146103655780636e47b4821461042a57806370fd5bad1461043257610227565b80633dffc387116101fa5780633dffc3871461029357806343756e5c146102b1578063493279b1146102b95780634bf6c882146102d857806351e80672146102e057610227565b80630bee7a671461022c5780630e2374a51461024d5780632657e9b61461027157806333f7798d1461028b575b600080fd5b6102346106cf565b6040805163ffffffff9092168252519081900360200190f35b6102556106d4565b604080516001600160a01b039092168252519081900360200190f35b6102796106da565b60408051918252519081900360200190f35b6102796106e5565b61029b6106eb565b6040805160ff9092168252519081900360200190f35b6102556106f0565b6102c16106f6565b6040805161ffff9092168252519081900360200190f35b61029b6106fb565b610255610700565b6102f0610706565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038b6004803603602081101561037b57600080fd5b50356001600160401b0316610812565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ec5781810151838201526020016103d4565b50505050905090810190601f1680156104195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6102556108cd565b61029b6108d3565b61029b6108d8565b6102556108dd565b61029b6108e3565b61029b6108e8565b6102556108ed565b6102556108f3565b6104726108f9565b604080519115158252519081900360200190f35b610234610902565b610550600480360360408110156104a457600080fd5b8101906020810181356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460018302840111640100000000831117156104f357600080fd5b91939092909160208101903564010000000081111561051157600080fd5b82018360208201111561052357600080fd5b8035906020019184600183028401116401000000008311171561054557600080fd5b509092509050610907565b005b610279610bc0565b610255610bc6565b6102796004803603602081101561057857600080fd5b50356001600160401b0316610bcc565b6104726004803603604081101561059e57600080fd5b8101906020810181356401000000008111156105b957600080fd5b8201836020820111156105cb57600080fd5b803590602001918460018302840111640100000000831117156105ed57600080fd5b9193509150356001600160401b0316610beb565b6102556004803603602081101561061757600080fd5b50356001600160401b031661143c565b610255611457565b6102556004803603602081101561064557600080fd5b50356001600160401b031661145d565b6104726004803603602081101561066b57600080fd5b50356001600160401b0316611481565b6105506114c3565b61068b61166a565b604080516001600160401b039092168252519081900360200190f35b61068b611679565b6102f061168f565b6102556116ae565b61029b6116b4565b6102556116b9565b606481565b61200181565b662386f26fc1000081565b60055481565b600181565b61100181565b603881565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561077c57828160ff168151811061075057fe5b01602001516001600160f81b0319161561076f57600190910190610774565b61077c565b600101610735565b5060608160ff166040519080825280601f01601f1916602001820160405280156107ad576020820181803683370190505b50905060005b8260ff168160ff16101561080957838160ff16815181106107d057fe5b602001015160f81c60f81b828260ff16815181106107ea57fe5b60200101906001600160f81b031916908160001a9053506001016107b3565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905084565b61100581565b600281565b601081565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661095e576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461099e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611a8b602e913960400191505060405180910390fd5b610a1284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e67650000000000602082015291506116bf9050565b15610af15760208114610a565760405162461bcd60e51b815260040180806020018281038252602e815260200180611a2a602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a94918585808385018382808284376000920191909152506117a692505050565b9050600081118015610aae5750670de0b6b3a76400008111155b610ae95760405162461bcd60e51b815260040180806020018281038252602f815260200180611ab9602f913960400191505060405180910390fd5b600555610b2e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6020811015610c5857600080fd5b5051610cab576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480610ce0575073446aa6e0dc65690403df3f127750da1322941f3e33145b610d1b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611ae8602a913960400191505060405180910390fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610d8f576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610ddc5760405162461bcd60e51b8152600401808060200182810382526026815260200180611b126026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610df7611908565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610ebd5780601f10610e9257610100808354040283529160200191610ebd565b820191906000526020600020905b815481529060010190602001808311610ea057829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610efa57506003546001600160401b0390811690831610155b15610fdb5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050815250509050610ec9565b6060810151516110d25780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529395509092919083018282801561108a5780601f1061105f5761010080835404028352916020019161108a565b820191906000526020600020905b81548152906001019060200180831161106d57829003601f168201915b505050506060830182905250516110d25760405162461bcd60e51b8152600401808060200182810382526021815260200180611a096021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b509050600061111f826117ab565b905061112d848683866117b1565b6111685760405162461bcd60e51b81526004018080602001828103825260238152602001806119e66023913960400191505060405180910390fd5b600083820191506111ae8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181d92505050565b945090506111bd818386611827565b825160200193506111cc61192e565b6110008186866064600019fa6111e157600080fd5b805194506000600160f81b8616156112705750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b50505b856001600160401b03169550602082019350600061129085888415611868565b90985090506001600160401b03808216908c16146112df5760405162461bcd60e51b8152600401808060200182810382526033815260200180611a586033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b939261136692600385019291019061194d565b50506003546001600160401b03600160401b9091048116908d16111590506113ae576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b03161515806114bd57506003546001600160401b038381169116145b92915050565b60005460ff161561151b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b6000806115426040518061024001604052806102208152602001611b38610220913961181d565b81516004559092509050611554611908565b600061156284846000611868565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff19169416939093178355808601519183019190915591840151600282015560608401518051949650929450859390926115ce92600385019291019061194d565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b6040518061024001604052806102208152602001611b38610220913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116f45780518252601f1990920191602091820191016116d5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106117625780518252601f199092019160209182019101611743565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b60008460600151518284010392506000806117cf876060015161181d565b90925090506117df828683611827565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b60208110611847578251825260209283019290910190601f1901611828565b915181516020939093036101000a6000190180199091169216919091179052565b611870611908565b600884015160288501516048909501805190956000929161188f611908565b6020810183905260408101829052866118fa5760008060688a036040519080825280601f01601f1916602001820160405280156118d3576020820181803683370190505b50606084018190526118e49061181d565b90925090506118f760208c018383611827565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061198e57805160ff19168380011785556119bb565b828001600101855582156119bb579182015b828111156119bb5782518255916020019190600101906119a0565b506119c79291506119cb565b5090565b61080f91905b808211156119c757600081556001016119d156fe6661696c656420746f2073657269616c697a6520636f6e73656e7375732073746174656661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e6765746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c6179657263616e27742073796e6320686561646572206265666f726520696e697469616c48656967687442696e616e63652d436861696e2d5469677269730000000000000000000000000000000006915167cedaf7bbf7df47d932fdda630527ee648562cf3e52c5e5f46156a3a971a4ceb443c53a50d8653ef8cf1e5716da68120fb51b636dc6d111ec3277b098ecd42d49d3769d8a1f78b4c17a965f7a30d4181fabbd1f969f46d3c8e83b5ad4845421d8000000e8d4a510002ba4e81542f437b7ae1f8a35ddb233c789a8dc22734377d9b6d63af1ca403b61000000e8d4a51000df8da8c5abfdb38595391308bb71e5a1e0aabdc1d0cf38315d50d6be939b2606000000e8d4a51000b6619edca4143484800281d698b70c935e9152ad57b31d85c05f2f79f64b39f3000000e8d4a510009446d14ad86c8d2d74780b0847110001a1c2e252eedfea4753ebbbfce3a22f52000000e8d4a510000353c639f80cc8015944436dab1032245d44f912edc31ef668ff9f4a45cd0599000000e8d4a51000e81d3797e0544c3a718e1f05f0fb782212e248e784c1a851be87e77ae0db230e000000e8d4a510005e3fcda30bd19d45c4b73688da35e7da1fce7c6859b2c1f20ed5202d24144e3e000000e8d4a51000b06a59a2d75bf5d014fce7c999b5e71e7a960870f725847d4ba3235baeaa08ef000000e8d4a510000c910e2fe650e4e01406b3310b489fb60a84bc3ff5c5bee3a56d5898b6a8af32000000e8d4a5100071f2d7b8ec1c8b99a653429b0118cd201f794f409d0fea4d65b1b662f2b00063000000e8d4a51000a2646970667358221220fb8b53bdce206113a24d3b8bc0be2f8f42197b57532be92e2ab23b199c941c8064736f6c63430006040033", + Code: moran.MainnetLightClientContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102695760003560e01c80637942fd0511610151578063c27cdcfb116100c3578063e1c7392a11610087578063e1c7392a14610775578063e3b048051461077d578063f7a251d71461079d578063f9a2bbc714610815578063fc3e59081461081d578063fd6a68791461082557610269565b8063c27cdcfb1461070e578063c81b16621461072e578063d31f968d14610736578063d76a867514610765578063dc927faf1461076d57610269565b80639dc09262116101155780639dc0926214610630578063a1a11bf514610638578063a78abc1614610640578063ab51bb9614610648578063ac43175114610650578063b0355f5b1461048057610269565b80637942fd051461053b57806384013b6a14610543578063863fe4ab146106205780638cc8f5611461051b57806396713da91461062857610269565b8063422f9050116101ea5780636e47a51a116101ae5780636e47a51a146104f35780636e47b4821461051357806370fd5bad1461051b578063718a8aa81461052357806374f079b81461052b57806375d47a0a1461053357610269565b8063422f90501461048857806343756e5c146104bc578063493279b1146104c45780634bf6c882146104e357806351e80672146104eb57610269565b80632ff32aea116102315780632ff32aea146102f3578063308325f4146103145780633a648b151461031c5780633bdc47a6146103585780633dffc3871461048057610269565b806305e682581461026e5780630bee7a671461028c5780630e2374a5146102ad57806314b3023b146102d157806322556cdc146102eb575b600080fd5b61027661082d565b6040805160ff9092168252519081900360200190f35b610294610832565b6040805163ffffffff9092168252519081900360200190f35b6102b5610837565b604080516001600160a01b039092168252519081900360200190f35b6102d961083d565b60408051918252519081900360200190f35b6102d9610843565b6102fb610848565b60408051600792830b90920b8252519081900360200190f35b6102d9610851565b61033c6004803603602081101561033257600080fd5b503560ff16610857565b604080516001600160401b039092168252519081900360200190f35b61040b6004803603606081101561036e57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111600160201b831117156103ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610872945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044557818101518382015260200161042d565b50505050905090810190601f1680156104725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766108e8565b6104a86004803603602081101561049e57600080fd5b503560ff166108ed565b604080519115158252519081900360200190f35b6102b5610902565b6104cc610908565b6040805161ffff9092168252519081900360200190f35b61027661090d565b6102b5610912565b6102b56004803603602081101561050957600080fd5b503560ff16610918565b6102b5610933565b610276610939565b61027661093e565b6102d9610943565b6102b5610949565b61027661094f565b61061e600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b919390929091602081019035600160201b8111156105c357600080fd5b8201836020820111156105d557600080fd5b803590602001918460018302840111600160201b831117156105f657600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff16610954565b005b6102d9611c4d565b610276611c55565b6102b5611c5a565b6102b5611c60565b6104a8611c66565b61029461082d565b61061e6004803603604081101561066657600080fd5b810190602081018135600160201b81111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460018302840111600160201b831117156106b357600080fd5b919390929091602081019035600160201b8111156106d057600080fd5b8201836020820111156106e257600080fd5b803590602001918460018302840111600160201b8311171561070357600080fd5b509092509050611c6f565b61033c6004803603602081101561072457600080fd5b503560ff16612211565b6102b561222c565b6104a86004803603604081101561074c57600080fd5b5080356001600160a01b0316906020013560ff16612232565b61040b612252565b6102b5612271565b61061e612277565b61033c6004803603602081101561079357600080fd5b503560ff1661262e565b61061e600480360360608110156107b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156107d757600080fd5b8201836020820111156107e957600080fd5b803590602001918460018302840111600160201b8311171561080a57600080fd5b919350915035612649565b6102b561279a565b6102766127a0565b6102b56127a5565b600081565b606481565b61200181565b60015481565b603281565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156108aa576020820181803683370190505b50602181018690526001810187905282815290506041810160006108cd866127ab565b5090506108dc818388516127b5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b601081565b60035481565b61100881565b600b81565b60005460ff166109a7576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d6020811015610a1057600080fd5b5051610a63576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480610a98575073446aa6e0dc65690403df3f127750da1322941f3e33145b610ad35760405162461bcd60e51b815260040180806020018281038252602a815260200180612d5a602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610b43576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610bb857600080fd5b505afa158015610bcc573d6000803e3d6000fd5b505050506040513d6020811015610be257600080fd5b5051610c1f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612db66023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610c8e576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015610cf7576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614610d495760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610e8d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015610e3657600080fd5b505afa158015610e4a573d6000803e3d6000fd5b505050506040513d6020811015610e6057600080fd5b505160408051808201909152600381526269626360e81b6020820152610e868e8e6127f6565b858561283d565b610ed5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610f2157600080fd5b505afa158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505190508b8b600080806060610f608961293a565b935093509350935083611022578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fda578181015183820152602001610fc2565b50505050905090810190601f1680156110075780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050611c3d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166115a75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b838110156110ef5781810151838201526020016110d7565b50505050905090810190601f16801561111c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561113c57600080fd5b505af192505050801561122057506040513d6000823e601f3d908101601f19168201604052602081101561116f57600080fd5b8101908080516040519392919084600160201b82111561118e57600080fd5b9083019060208201858111156111a357600080fd5b8251600160201b8111828201881017156111bc57600080fd5b82525081516020918201929091019080838360005b838110156111e95781810151838201526020016111d1565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b5060405250505060015b611532576040516000815260443d101561123c575060006112d7565b60046000803e60005160e01c6308c379a0811461125d5760009150506112d7565b60043d036004833e81513d60248201116001600160401b0382111715611288576000925050506112d7565b80830180516001600160401b038111156112a95760009450505050506112d7565b8060208301013d86018111156112c7576000955050505050506112d7565b601f01601f191660405250925050505b806112e257506113f4565b60ff8716600090815260076020526040812054611319916001600160401b039091169089906113149060029088610872565b6129ea565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061152d565b3d80801561141e576040519150601f19603f3d011682016040523d82523d6000602084013e611423565b606091505b5060ff8716600090815260076020526040812054611456916001600160401b039091169089906113149060029088610872565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156114f15781810151838201526020016114d9565b50505050905090810190601f16801561151e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6115a1565b80511561159f5760ff871660009081526007602052604081205461156b916001600160401b039091169089906113149060019086610872565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50611b75565b60ff83166001141561184b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015611631578181015183820152602001611619565b50505050905090810190601f16801561165e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b6115a1576040516000815260443d10156116ab57506000611746565b60046000803e60005160e01c6308c379a081146116cc576000915050611746565b60043d036004833e81513d60248201116001600160401b03821117156116f757600092505050611746565b80830180516001600160401b03811115611718576000945050505050611746565b8060208301013d860181111561173657600095505050505050611746565b601f01601f191660405250925050505b8061175157506117b6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156113b457818101518382015260200161139c565b3d8080156117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156114f15781810151838201526020016114d9565b60ff831660021415611b755760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156118d55781810151838201526020016118bd565b50505050905090810190601f1680156119025780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561192257600080fd5b505af1925050508015611933575060015b611b73576040516000815260443d101561194f575060006119ea565b60046000803e60005160e01c6308c379a081146119705760009150506119ea565b60043d036004833e81513d60248201116001600160401b038211171561199b576000925050506119ea565b80830180516001600160401b038111156119bc5760009450505050506119ea565b8060208301013d86018111156119da576000955050505050506119ea565b601f01601f191660405250925050505b806119f55750611a9e565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611a5e578181015183820152602001611a46565b50505050905090810190601f168015611a8b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611b73565b3d808015611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b37578181015183820152602001611b1f565b50505050905090810190601f168015611b645780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680611ba7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611c0757600080fd5b505af1158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611caf5760405162461bcd60e51b815260040180806020018281038252602e815260200180612ce2602e913960400191505060405180910390fd5b611d1884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b60208201529150612b409050565b15611db357604080516020601f8401819004810282018101909252828152600091611d5b91858580838501838280828437600092019190915250612c2792505050565b90506127108111158015611d705750600a8110155b611dab5760405162461bcd60e51b8152600401808060200182810382526032815260200180612d846032913960400191505060405180910390fd5b60015561217f565b611e1c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b60208201529150612b409050565b15611fa457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611e9f5760405162461bcd60e51b815260040180806020018281038252605a815260200180612c88605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611ebd81612c2c565b611f0e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061217f565b61201184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b60208201529150612b409050565b1561214257606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050600290911490506120945760405162461bcd60e51b815260040180806020018281038252604a815260200180612d10604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612138576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061217f565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff16156122cf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff1661269c576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166126f95760405162461bcd60e51b8152600401808060200182810382526031815260200180612c576031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261275e9284928a9261131492909189918c908c908190840183828082843760009201919091525061087292505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b602081106127d5578251825260209283019290910190601f19016127b6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561284c57506000612931565b606082518451865160800101016040519080825280601f01601f191660200182016040528015612883576020820181803683370190505b509050600061289182612c32565b6020808901518252019050866000806128a9896127ab565b80865260209095019490925090506128c28285836127b5565b928301926128cf886127ab565b80865260209095019490925090506128e88285836127b5565b9283018a8152602001926128fb876127ab565b909250905061290b8285836127b5565b508351602001612919612c38565b60208183886065600019fa5051600114955050505050505b95945050505050565b6000806000606060218551101561296a5750506040805160008082526020820190925290925082915081906129e3565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156129b5576020820181803683370190505b50905060006129c3826127ab565b5090506129d5858260218d51036127b5565b506001975091955093509150505b9193509193565b600254431115612a29576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b161790915560035543600255612a6a565b60038054600190810191829055541015612a6a576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b00578181015183820152602001612ae8565b50505050905090810190601f168015612b2d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b60208310612b755780518252601f199092019160209182019101612b56565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612be35780518252601f199092019160209182019101612bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220273761c387b9ebd0b15a5a47689f1de8e0168465c6b2da4606f3abaa43a17fef64736f6c63430006040033", + Code: moran.MainnetCrossChainContract, }, }, } @@ -336,17 +350,17 @@ func init() { { ContractAddr: common.HexToAddress(RelayerHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "6080604052600436106101d85760003560e01c80637ae2308811610102578063c81b166211610095578063f9a2bbc711610064578063f9a2bbc714610569578063fb7cfdd71461057e578063fc3e590814610593578063fd6a6879146105a8576101d8565b8063c81b166214610515578063dc927faf1461052a578063e1c7392a1461053f578063e79a198f14610554576101d8565b8063a1a11bf5116100d1578063a1a11bf514610407578063a78abc161461041c578063ab51bb9614610431578063ac43175114610446576101d8565b80637ae23088146103b357806395468d26146103c857806396713da9146103dd5780639dc09262146103f2576101d8565b806351e806721161017a57806370fd5bad1161014957806370fd5bad1461035f578063718a8aa81461037457806375d47a0a146103895780637942fd051461039e576101d8565b806351e80672146102c7578063541d5548146102dc5780636a87d780146103235780636e47b4821461034a576101d8565b80633dffc387116101b65780633dffc3871461024657806343756e5c14610271578063493279b1146102865780634bf6c882146102b2576101d8565b80630bee7a67146101dd5780630e2374a51461020b5780631aa3a0081461023c575b600080fd5b3480156101e957600080fd5b506101f26105bd565b6040805163ffffffff9092168252519081900360200190f35b34801561021757600080fd5b506102206105c2565b604080516001600160a01b039092168252519081900360200190f35b6102446105c8565b005b34801561025257600080fd5b5061025b610749565b6040805160ff9092168252519081900360200190f35b34801561027d57600080fd5b5061022061074e565b34801561029257600080fd5b5061029b610754565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b5061025b610759565b3480156102d357600080fd5b5061022061075e565b3480156102e857600080fd5b5061030f600480360360208110156102ff57600080fd5b50356001600160a01b0316610764565b604080519115158252519081900360200190f35b34801561032f57600080fd5b50610338610782565b60408051918252519081900360200190f35b34801561035657600080fd5b50610220610788565b34801561036b57600080fd5b5061025b61078e565b34801561038057600080fd5b5061025b610793565b34801561039557600080fd5b50610220610798565b3480156103aa57600080fd5b5061025b61079e565b3480156103bf57600080fd5b506103386107a3565b3480156103d457600080fd5b506103386107b0565b3480156103e957600080fd5b5061025b6107bc565b3480156103fe57600080fd5b506102206107c1565b34801561041357600080fd5b506102206107c7565b34801561042857600080fd5b5061030f6107cd565b34801561043d57600080fd5b506101f26107d6565b34801561045257600080fd5b506102446004803603604081101561046957600080fd5b81019060208101813564010000000081111561048457600080fd5b82018360208201111561049657600080fd5b803590602001918460018302840111640100000000831117156104b857600080fd5b9193909290916020810190356401000000008111156104d657600080fd5b8201836020820111156104e857600080fd5b8035906020019184600183028401116401000000008311171561050a57600080fd5b5090925090506107db565b34801561052157600080fd5b50610220610bfd565b34801561053657600080fd5b50610220610c03565b34801561054b57600080fd5b50610244610c09565b34801561056057600080fd5b50610244610c8b565b34801561057557600080fd5b50610220610e44565b34801561058a57600080fd5b50610338610e4a565b34801561059f57600080fd5b5061025b610e50565b3480156105b457600080fd5b50610220610e55565b606481565b61200181565b3360009081526004602052604090205460ff1615610625576040805162461bcd60e51b81526020600482015260156024820152741c995b185e595c88185b1c9958591e48195e1a5cdd605a1b604482015290519081900360640190fd5b60005460ff16610678576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b61068133610e5b565b156106bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806110486027913960400191505060405180910390fd5b333214610707576040805162461bcd60e51b81526020600482015260136024820152721b9bc81c1c9bde1e481a5cc8185b1b1bddd959606a1b604482015290519081900360640190fd5b6040805162461bcd60e51b81526020600482015260126024820152711c9959da5cdd195c881cdd5cdc195b99195960721b604482015290519081900360640190fd5b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526004602052604090205460ff1690565b60025481565b61100581565b600281565b601081565b61100881565b600b81565b68056bc75e2d6310000081565b67016345785d8a000081565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661082e576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b336110071461086e5760405162461bcd60e51b815260040180806020018281038252602e81526020018061106f602e913960400191505060405180910390fd5b6108d484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e1c995c5d5a5c995911195c1bdcda5d608a1b60208201529150610e619050565b156109d757602081146109185760405162461bcd60e51b815260040180806020018281038252602281526020018061109d6022913960400191505060405180910390fd5b604080516020601f840181900481028201810190925282815260009161095691858580838501838280828437600092019190915250610f4892505050565b90506001811180156109715750683635c9adc5dea000008111155b801561097e575060025481115b6109cf576040805162461bcd60e51b815260206004820181905260248201527f7468652072657175697265644465706f736974206f7574206f662072616e6765604482015290519081900360640190fd5b600155610b6b565b610a3284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260048152636475657360e01b60208201529150610e619050565b15610b2e5760208114610a8c576040805162461bcd60e51b815260206004820152601760248201527f6c656e677468206f662064756573206d69736d61746368000000000000000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091610aca91858580838501838280828437600092019190915250610f4892505050565b9050600081118015610add575060015481105b610b26576040805162461bcd60e51b81526020600482015260156024820152747468652064756573206f7574206f662072616e676560581b604482015290519081900360640190fd5b600255610b6b565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b60005460ff1615610c61576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610ce6576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610d39576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610d4161102d565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610d85919063ffffffff610f4d16565b6040518115909202916000818181858888f19350505050158015610dad573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f19350505050158015610de3573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b61100081565b60015481565b600381565b61100481565b3b151590565b6000816040516020018082805190602001908083835b60208310610e965780518252601f199092019160209182019101610e77565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610f045780518252601f199092019160209182019101610ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6000610f8f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f96565b9392505050565b600081848411156110255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fea578181015183820152602001610fd2565b50505050905090810190601f1680156110175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662072657175697265644465706f736974206d69736d61746368a2646970667358221220bbf2444a200f2d4960875a9cb3258cef8b5f4e79c03999d34530f4a42b7aefd364736f6c63430006040033", + Code: moran.ChapelRelayerHubContract, }, { ContractAddr: common.HexToAddress(LightClientContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c8063a1a11bf511610130578063dc927faf116100b8578063e405bbc31161007c578063e405bbc3146106a7578063ea54b2aa146106af578063f9a2bbc7146106b7578063fc3e5908146106bf578063fd6a6879146106c757610227565b8063dc927faf14610627578063dda831481461062f578063df5fe70414610655578063e1c7392a1461067b578063e2761af01461068357610227565b8063adc879e9116100ff578063adc879e914610552578063c81b16621461055a578063cba510a914610562578063d816987914610588578063da8d08f01461060157610227565b8063a1a11bf514610462578063a78abc161461046a578063ab51bb9614610486578063ac4317511461048e57610227565b8063564b81ef116101b3578063718a8aa811610182578063718a8aa81461043a57806375d47a0a146104425780637942fd051461044a57806396713da9146104525780639dc092621461045a57610227565b8063564b81ef146102e85780635c5ae8db146103655780636e47b4821461042a57806370fd5bad1461043257610227565b80633dffc387116101fa5780633dffc3871461029357806343756e5c146102b1578063493279b1146102b95780634bf6c882146102d857806351e80672146102e057610227565b80630bee7a671461022c5780630e2374a51461024d5780632657e9b61461027157806333f7798d1461028b575b600080fd5b6102346106cf565b6040805163ffffffff9092168252519081900360200190f35b6102556106d4565b604080516001600160a01b039092168252519081900360200190f35b6102796106da565b60408051918252519081900360200190f35b6102796106e5565b61029b6106eb565b6040805160ff9092168252519081900360200190f35b6102556106f0565b6102c16106f6565b6040805161ffff9092168252519081900360200190f35b61029b6106fb565b610255610700565b6102f0610706565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032a578181015183820152602001610312565b50505050905090810190601f1680156103575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038b6004803603602081101561037b57600080fd5b50356001600160401b0316610812565b60405180856001600160401b03166001600160401b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103ec5781810151838201526020016103d4565b50505050905090810190601f1680156104195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6102556108cd565b61029b6108d3565b61029b6108d8565b6102556108dd565b61029b6108e3565b61029b6108e8565b6102556108ed565b6102556108f3565b6104726108f9565b604080519115158252519081900360200190f35b610234610902565b610550600480360360408110156104a457600080fd5b8101906020810181356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460018302840111640100000000831117156104f357600080fd5b91939092909160208101903564010000000081111561051157600080fd5b82018360208201111561052357600080fd5b8035906020019184600183028401116401000000008311171561054557600080fd5b509092509050610907565b005b610279610bc0565b610255610bc6565b6102796004803603602081101561057857600080fd5b50356001600160401b0316610bcc565b6104726004803603604081101561059e57600080fd5b8101906020810181356401000000008111156105b957600080fd5b8201836020820111156105cb57600080fd5b803590602001918460018302840111640100000000831117156105ed57600080fd5b9193509150356001600160401b0316610beb565b6102556004803603602081101561061757600080fd5b50356001600160401b031661143c565b610255611457565b6102556004803603602081101561064557600080fd5b50356001600160401b031661145d565b6104726004803603602081101561066b57600080fd5b50356001600160401b0316611481565b6105506114c3565b61068b611668565b604080516001600160401b039092168252519081900360200190f35b61068b611677565b6102f061168d565b6102556116aa565b61029b6116b0565b6102556116b5565b606481565b61200181565b662386f26fc1000081565b60055481565b600181565b61100181565b606181565b600881565b61200081565b604080516020808252818301909252606091829190602082018180368337505060045460208301525090506000805b60208160ff16101561077c57828160ff168151811061075057fe5b01602001516001600160f81b0319161561076f57600190910190610774565b61077c565b600101610735565b5060608160ff166040519080825280601f01601f1916602001820160405280156107ad576020820181803683370190505b50905060005b8260ff168160ff16101561080957838160ff16815181106107d057fe5b602001015160f81c60f81b828260ff16815181106107ea57fe5b60200101906001600160f81b031916908160001a9053506001016107b3565b50925050505b90565b60016020818152600092835260409283902080548184015460028084015460038501805489516101009982161599909902600019011692909204601f81018790048702880187019098528787526001600160401b0390931696919592949091908301828280156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b5050505050905084565b61100581565b600281565b601081565b61100881565b600b81565b600981565b61100781565b61100681565b60005460ff1681565b600081565b60005460ff1661095e576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336110071461099e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611b67602e913960400191505060405180910390fd5b610a1284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601b81527f726577617264466f7256616c696461746f725365744368616e67650000000000602082015291506116bb9050565b15610af15760208114610a565760405162461bcd60e51b815260040180806020018281038252602e815260200180611b06602e913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610a94918585808385018382808284376000920191909152506117a292505050565b9050600081118015610aae5750670de0b6b3a76400008111155b610ae95760405162461bcd60e51b815260040180806020018281038252602f815260200180611b95602f913960400191505060405180910390fd5b600555610b2e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b60045481565b61100281565b6001600160401b03166000908152600160208190526040909120015490565b60408051630a83aaa960e31b815233600482015290516000916110069163541d554891602480820192602092909190829003018186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d6020811015610c5857600080fd5b5051610cab576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d791331480610ce057507337b8516a0f88e65d677229b402ec6c1e0e33300433145b610d1b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611bc4602a913960400191505060405180910390fd5b6001600160401b0382166000908152600260205260409020546001600160a01b031615610d8f576040805162461bcd60e51b815260206004820152601c60248201527f63616e27742073796e63206475706c6963617465642068656164657200000000604482015290519081900360640190fd5b6003546001600160401b0390811690831611610ddc5760405162461bcd60e51b8152600401808060200182810382526026815260200180611bee6026913960400191505060405180910390fd5b600354600160401b90046001600160401b0316610df7611904565b6001600160401b0382811660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f81018490048402850184019095528484529093606086019392830182828015610ebd5780601f10610e9257610100808354040283529160200191610ebd565b820191906000526020600020905b815481529060010190602001808311610ea057829003601f168201915b50505050508152505090505b836001600160401b0316826001600160401b031610158015610efa57506003546001600160401b0390811690831610155b15610fdb5780516001600160401b0380821660009081526001602081815260409283902083516080810185528154909516855280830154858301526002808201548686015260038201805486516101009682161596909602600019011691909104601f8101849004840285018401909552848452959750939460608601939091830182828015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050815250509050610ec9565b6060810151516110d25780516001600160401b03811660009081526001602081815260409283902060030180548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529395509092919083018282801561108a5780601f1061105f5761010080835404028352916020019161108a565b820191906000526020600020905b81548152906001019060200180831161106d57829003601f168201915b505050506060830182905250516110d25760405162461bcd60e51b8152600401808060200182810382526021815260200180611ae56021913960400191505060405180910390fd5b6000816060015151608801905060608787905082016040519080825280601f01601f191660200182016040528015611111576020820181803683370190505b509050600061111f826117a7565b905061112d848683866117ad565b6111685760405162461bcd60e51b81526004018080602001828103825260238152602001806119e26023913960400191505060405180910390fd5b600083820191506111ae8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061181992505050565b945090506111bd818386611823565b825160200193506111cc61192a565b6110008186866064600019fa6111e157600080fd5b805194506000600160f81b8616156112705750600554604080516309a99b4f60e41b815233600482015260248101929092525160019161100291639a99b4f0916044808201926020929091908290030181600087803b15801561124357600080fd5b505af1158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b50505b856001600160401b03169550602082019350600061129085888415611864565b90985090506001600160401b03808216908c16146112df5760405162461bcd60e51b8152600401808060200182810382526033815260200180611b346033913960400191505060405180910390fd5b6001600160401b03808c16600081815260026020818152604080842080546001600160a01b031916331790558e86168e529383526001808252928490208d518154961667ffffffffffffffff199096169590951785558c81015192850192909255918b01519183019190915560608a015180518b9392611366926003850192910190611949565b50506003546001600160401b03600160401b9091048116908d16111590506113ae576003805467ffffffffffffffff60401b1916600160401b6001600160401b038e16021790555b7f4042c1020a8f410fb1c8859d276ab436aeb2c3074960e48467299cf1c966d3b48b8a8a602001518560405180856001600160401b03166001600160401b03168152602001846001600160401b03166001600160401b031681526020018381526020018215151515815260200194505050505060405180910390a15060019c9b505050505050505050505050565b6002602052600090815260409020546001600160a01b031681565b61100381565b6001600160401b03166000908152600260205260409020546001600160a01b031690565b6001600160401b0381166000908152600260205260408120546001600160a01b03161515806114bd57506003546001600160401b038381169116145b92915050565b60005460ff161561151b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60008061154060405180610100016040528060e08152602001611a0560e09139611819565b81516004559092509050611552611904565b600061156084846000611864565b60008083526001600160401b038281168252600160208181526040938490208651815467ffffffffffffffff19169416939093178355808601519183019190915591840151600282015560608401518051949650929450859390926115cc926003850192910190611949565b50506003805467ffffffffffffffff19166001600160401b0384811691821767ffffffffffffffff60401b1916600160401b9290920291909117918290556000805460ff19166001179055662386f26fc10000600555602085810151604080519490931684529083015280517f5ac9b37d571677b80957ca05693f371526c602fd08042b416a29fdab7efefa499350918290030190a150505050565b6003546001600160401b031681565b600354600160401b90046001600160401b031681565b60405180610100016040528060e08152602001611a0560e0913981565b61100081565b600381565b61100481565b6000816040516020018082805190602001908083835b602083106116f05780518252601f1990920191602091820191016116d1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061175e5780518252601f19909201916020918201910161173f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60200190565b60008460600151518284010392506000806117cb8760600151611819565b90925090506117db828683611823565b5050506040840151601f1983810191909152602090940151603f19830152605f19820192909252600454606719820152910160871990910152600190565b8051602090910191565b5b60208110611843578251825260209283019290910190601f1901611824565b915181516020939093036101000a6000190180199091169216919091179052565b61186c611904565b600884015160288501516048909501805190956000929161188b611904565b6020810183905260408101829052866118f65760008060688a036040519080825280601f01601f1916602001820160405280156118cf576020820181803683370190505b50606084018190526118e090611819565b90925090506118f360208c018383611823565b50505b989297509195505050505050565b604080516080810182526000808252602082018190529181019190915260608082015290565b6040518061100001604052806080906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061198a57805160ff19168380011785556119b7565b828001600101855582156119b7579182015b828111156119b757825182559160200191906001019061199c565b506119c39291506119c7565b5090565b61080f91905b808211156119c357600081556001016119cd56fe6661696c656420746f2073657269616c697a6520636f6e73656e73757320737461746542696e616e63652d436861696e2d47616e67657300000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000aea1ac326886b992a991d21a6eb155f41b77867cbf659e78f31d89d8205122a84d1be64f0e9a466c2e66a53433928192783e29f8fa21beb2133499b5ef770f60000000e8d4a5100099308aa365c40554bc89982af505d85da95251445d5dd4a9bb37dd2584fd92d3000000e8d4a5100001776920ff0b0f38d78cf95c033c21adf7045785114e392a7544179652e0a612000000e8d4a510006661696c656420746f206c6f61642076616c696461746f722073657420646174616c656e677468206f6620726577617264466f7256616c696461746f725365744368616e6765206d69736d617463686865616465722068656967687420646f65736e277420657175616c20746f207468652073706563696669656420686569676874746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206e6577526577617264466f7256616c696461746f725365744368616e6765206f7574206f662072616e6765746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c6179657263616e27742073796e6320686561646572206265666f726520696e697469616c486569676874a2646970667358221220f10bd4cea020bbc51bd92dc8d0216f48c220336c9ca0178fb7726dc899c15ee164736f6c63430006040033", + Code: moran.ChapelLightClientContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/c184a00160b6a2d884b4d6efebe1358a047e9e57", - Code: "608060405234801561001057600080fd5b50600436106102695760003560e01c80637942fd0511610151578063c27cdcfb116100c3578063e1c7392a11610087578063e1c7392a14610775578063e3b048051461077d578063f7a251d71461079d578063f9a2bbc714610815578063fc3e59081461081d578063fd6a68791461082557610269565b8063c27cdcfb1461070e578063c81b16621461072e578063d31f968d14610736578063d76a867514610765578063dc927faf1461076d57610269565b80639dc09262116101155780639dc0926214610630578063a1a11bf514610638578063a78abc1614610640578063ab51bb9614610648578063ac43175114610650578063b0355f5b1461048057610269565b80637942fd051461053b57806384013b6a14610543578063863fe4ab146106205780638cc8f5611461051b57806396713da91461062857610269565b8063422f9050116101ea5780636e47a51a116101ae5780636e47a51a146104f35780636e47b4821461051357806370fd5bad1461051b578063718a8aa81461052357806374f079b81461052b57806375d47a0a1461053357610269565b8063422f90501461048857806343756e5c146104bc578063493279b1146104c45780634bf6c882146104e357806351e80672146104eb57610269565b80632ff32aea116102315780632ff32aea146102f3578063308325f4146103145780633a648b151461031c5780633bdc47a6146103585780633dffc3871461048057610269565b806305e682581461026e5780630bee7a671461028c5780630e2374a5146102ad57806314b3023b146102d157806322556cdc146102eb575b600080fd5b61027661082d565b6040805160ff9092168252519081900360200190f35b610294610832565b6040805163ffffffff9092168252519081900360200190f35b6102b5610837565b604080516001600160a01b039092168252519081900360200190f35b6102d961083d565b60408051918252519081900360200190f35b6102d9610843565b6102fb610848565b60408051600792830b90920b8252519081900360200190f35b6102d9610851565b61033c6004803603602081101561033257600080fd5b503560ff16610857565b604080516001600160401b039092168252519081900360200190f35b61040b6004803603606081101561036e57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111600160201b831117156103ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610872945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561044557818101518382015260200161042d565b50505050905090810190601f1680156104725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102766108e8565b6104a86004803603602081101561049e57600080fd5b503560ff166108ed565b604080519115158252519081900360200190f35b6102b5610902565b6104cc610908565b6040805161ffff9092168252519081900360200190f35b61027661090d565b6102b5610912565b6102b56004803603602081101561050957600080fd5b503560ff16610918565b6102b5610933565b610276610939565b61027661093e565b6102d9610943565b6102b5610949565b61027661094f565b61061e600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b919390929091602081019035600160201b8111156105c357600080fd5b8201836020820111156105d557600080fd5b803590602001918460018302840111600160201b831117156105f657600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff16610954565b005b6102d9611c4d565b610276611c55565b6102b5611c5a565b6102b5611c60565b6104a8611c66565b61029461082d565b61061e6004803603604081101561066657600080fd5b810190602081018135600160201b81111561068057600080fd5b82018360208201111561069257600080fd5b803590602001918460018302840111600160201b831117156106b357600080fd5b919390929091602081019035600160201b8111156106d057600080fd5b8201836020820111156106e257600080fd5b803590602001918460018302840111600160201b8311171561070357600080fd5b509092509050611c6f565b61033c6004803603602081101561072457600080fd5b503560ff16612211565b6102b561222c565b6104a86004803603604081101561074c57600080fd5b5080356001600160a01b0316906020013560ff16612232565b61040b612252565b6102b5612271565b61061e612277565b61033c6004803603602081101561079357600080fd5b503560ff1661262e565b61061e600480360360608110156107b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156107d757600080fd5b8201836020820111156107e957600080fd5b803590602001918460018302840111600160201b8311171561080a57600080fd5b919350915035612649565b6102b561279a565b6102766127a0565b6102b56127a5565b600081565b606481565b61200181565b60015481565b603281565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156108aa576020820181803683370190505b50602181018690526001810187905282815290506041810160006108cd866127ab565b5090506108dc818388516127b5565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b6005602052600090815260409020546001600160a01b031681565b61100581565b600281565b601081565b60035481565b61100881565b600b81565b60005460ff166109a7576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d6020811015610a1057600080fd5b5051610a63576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d791331480610a9857507337b8516a0f88e65d677229b402ec6c1e0e33300433145b610ad35760405162461bcd60e51b815260040180806020018281038252602a815260200180612d5a602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114610b43576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b158015610bb857600080fd5b505afa158015610bcc573d6000803e3d6000fd5b505050506040513d6020811015610be257600080fd5b5051610c1f5760405162461bcd60e51b8152600401808060200182810382526023815260200180612db66023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316610c8e576040805162461bcd60e51b815260206004820152601860248201527f6368616e6e656c206973206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015610cf7576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614610d495760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610e8d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015610e3657600080fd5b505afa158015610e4a573d6000803e3d6000fd5b505050506040513d6020811015610e6057600080fd5b505160408051808201909152600381526269626360e81b6020820152610e868e8e6127f6565b858561283d565b610ed5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015610f2157600080fd5b505afa158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b505190508b8b600080806060610f608961293a565b935093509350935083611022578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fda578181015183820152602001610fc2565b50505050905090810190601f1680156110075780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050611c3d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166115a75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b838110156110ef5781810151838201526020016110d7565b50505050905090810190601f16801561111c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561113c57600080fd5b505af192505050801561122057506040513d6000823e601f3d908101601f19168201604052602081101561116f57600080fd5b8101908080516040519392919084600160201b82111561118e57600080fd5b9083019060208201858111156111a357600080fd5b8251600160201b8111828201881017156111bc57600080fd5b82525081516020918201929091019080838360005b838110156111e95781810151838201526020016111d1565b50505050905090810190601f1680156112165780820380516001836020036101000a031916815260200191505b5060405250505060015b611532576040516000815260443d101561123c575060006112d7565b60046000803e60005160e01c6308c379a0811461125d5760009150506112d7565b60043d036004833e81513d60248201116001600160401b0382111715611288576000925050506112d7565b80830180516001600160401b038111156112a95760009450505050506112d7565b8060208301013d86018111156112c7576000955050505050506112d7565b601f01601f191660405250925050505b806112e257506113f4565b60ff8716600090815260076020526040812054611319916001600160401b039091169089906113149060029088610872565b6129ea565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156113b457818101518382015260200161139c565b50505050905090810190601f1680156113e15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061152d565b3d80801561141e576040519150601f19603f3d011682016040523d82523d6000602084013e611423565b606091505b5060ff8716600090815260076020526040812054611456916001600160401b039091169089906113149060029088610872565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156114f15781810151838201526020016114d9565b50505050905090810190601f16801561151e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6115a1565b80511561159f5760ff871660009081526007602052604081205461156b916001600160401b039091169089906113149060019086610872565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50611b75565b60ff83166001141561184b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015611631578181015183820152602001611619565b50505050905090810190601f16801561165e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b6115a1576040516000815260443d10156116ab57506000611746565b60046000803e60005160e01c6308c379a081146116cc576000915050611746565b60043d036004833e81513d60248201116001600160401b03821117156116f757600092505050611746565b80830180516001600160401b03811115611718576000945050505050611746565b8060208301013d860181111561173657600095505050505050611746565b601f01601f191660405250925050505b8061175157506117b6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156113b457818101518382015260200161139c565b3d8080156117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156114f15781810151838201526020016114d9565b60ff831660021415611b755760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156118d55781810151838201526020016118bd565b50505050905090810190601f1680156119025780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561192257600080fd5b505af1925050508015611933575060015b611b73576040516000815260443d101561194f575060006119ea565b60046000803e60005160e01c6308c379a081146119705760009150506119ea565b60043d036004833e81513d60248201116001600160401b038211171561199b576000925050506119ea565b80830180516001600160401b038111156119bc5760009450505050506119ea565b8060208301013d86018111156119da576000955050505050506119ea565b601f01601f191660405250925050505b806119f55750611a9e565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611a5e578181015183820152602001611a46565b50505050905090810190601f168015611a8b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250611b73565b3d808015611ac8576040519150601f19603f3d011682016040523d82523d6000602084013e611acd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611b37578181015183820152602001611b1f565b50505050905090810190601f168015611b645780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680611ba7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015611c0757600080fd5b505af1158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714611caf5760405162461bcd60e51b815260040180806020018281038252602e815260200180612ce2602e913960400191505060405180910390fd5b611d1884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b60208201529150612b409050565b15611db357604080516020601f8401819004810282018101909252828152600091611d5b91858580838501838280828437600092019190915250612c2792505050565b90506127108111158015611d705750600a8110155b611dab5760405162461bcd60e51b8152600401808060200182810382526032815260200180612d846032913960400191505060405180910390fd5b60015561217f565b611e1c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b60208201529150612b409050565b15611fa457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050611e9f5760405162461bcd60e51b815260040180806020018281038252605a815260200180612c88605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590611ebd81612c2c565b611f0e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061217f565b61201184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b60208201529150612b409050565b1561214257606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050600290911490506120945760405162461bcd60e51b815260040180806020018281038252604a815260200180612d10604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612138576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061217f565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b61100281565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b61100381565b60005460ff16156122cf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff1661269c576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b33600090815260066020908152604080832060ff80891685529252909120548591166126f95760405162461bcd60e51b8152600401808060200182810382526031815260200180612c576031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b03169261275e9284928a9261131492909189918c908c908190840183828082843760009201919091525061087292505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b8051602090910191565b5b602081106127d5578251825260209283019290910190601f19016127b6565b915181516020939093036101000a6000190180199091169216919091179052565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e818101969096526006810192909252509283525090919050565b60008561284c57506000612931565b606082518451865160800101016040519080825280601f01601f191660200182016040528015612883576020820181803683370190505b509050600061289182612c32565b6020808901518252019050866000806128a9896127ab565b80865260209095019490925090506128c28285836127b5565b928301926128cf886127ab565b80865260209095019490925090506128e88285836127b5565b9283018a8152602001926128fb876127ab565b909250905061290b8285836127b5565b508351602001612919612c38565b60208183886065600019fa5051600114955050505050505b95945050505050565b6000806000606060218551101561296a5750506040805160008082526020820190925290925082915081906129e3565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156129b5576020820181803683370190505b50905060006129c3826127ab565b5090506129d5858260218d51036127b5565b506001975091955093509150505b9193509193565b600254431115612a29576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b161790915560035543600255612a6a565b60038054600190810191829055541015612a6a576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612b00578181015183820152602001612ae8565b50505050905090810190601f168015612b2d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b60208310612b755780518252601f199092019160209182019101612b56565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310612be35780518252601f199092019160209182019101612bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b6040518060200160405280600190602082028036833750919291505056fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c657241646472657373746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d6c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220035a34f6ccce4a5331a704da5375e26753e5146b5f166b6efe218f523c6a401064736f6c63430006040033", + Code: moran.ChapelCrossChainContract, }, }, } @@ -357,17 +371,17 @@ func init() { { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106102535760003560e01c80637942fd0511610146578063ac431751116100c3578063dc927faf11610087578063dc927faf1461073b578063e1c7392a14610743578063f9a2bbc71461074b578063fc3e590814610753578063fc4333cd1461075b578063fd6a68791461076357610253565b8063ac431751146105cf578063c80d4b8f1461068d578063c81b166214610695578063c8509d811461069d578063c96be4cb1461071557610253565b80639dc092621161010a5780639dc0926214610593578063a1a11bf51461059b578063a78abc16146105a3578063ab51bb96146105bf578063ac0af629146105c757610253565b80637942fd05146104fb5780638256ace614610503578063831d65d11461050b57806396713da9146105835780639bc8e4f21461058b57610253565b80634bf6c882116101d45780636e47b482116101985780636e47b482146104d357806370fd5bad146104db578063718a8aa8146104e357806375d47a0a146104eb5780637912a65d146104f357610253565b80634bf6c8821461048b57806351e8067214610493578063567a372d1461049b5780635bfb4990146104a357806362b72cf5146104cb57610253565b806337c8dab91161021b57806337c8dab9146103ed578063389f4f711461042c5780633dffc3871461044657806343756e5c14610464578063493279b11461046c57610253565b80630bee7a67146102585780630e2374a5146102795780631182b8751461029d57806323bac5a21461038a57806335aa2e44146103d0575b600080fd5b61026061076b565b6040805163ffffffff9092168252519081900360200190f35b610281610770565b604080516001600160a01b039092168252519081900360200190f35b610315600480360360408110156102b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b509092509050610776565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b0600480360360208110156103a057600080fd5b50356001600160a01b031661084a565b604080519384526020840192909252151582820152519081900360600190f35b610281600480360360208110156103e657600080fd5b503561086d565b6104136004803603602081101561040357600080fd5b50356001600160a01b0316610894565b6040805192835260208301919091528051918290030190f35b6104346108eb565b60408051918252519081900360200190f35b61044e6108f1565b6040805160ff9092168252519081900360200190f35b6102816108f6565b6104746108fc565b6040805161ffff9092168252519081900360200190f35b61044e610901565b610281610906565b61043461090c565b6104c9600480360360208110156104b957600080fd5b50356001600160a01b0316610912565b005b610434610a73565b610281610a79565b61044e610a7f565b61044e610a84565b610281610a89565b610434610a8f565b61044e610a94565b610413610a99565b6104c96004803603604081101561052157600080fd5b60ff8235169190810190604081016020820135600160201b81111561054557600080fd5b82018360208201111561055757600080fd5b803590602001918460018302840111600160201b8311171561057857600080fd5b509092509050610aa3565b61044e610bfd565b610434610c02565b610281610c0d565b610281610c13565b6105ab610c19565b604080519115158252519081900360200190f35b610260610c22565b610434610c27565b6104c9600480360360408110156105e557600080fd5b810190602081018135600160201b8111156105ff57600080fd5b82018360208201111561061157600080fd5b803590602001918460018302840111600160201b8311171561063257600080fd5b919390929091602081019035600160201b81111561064f57600080fd5b82018360208201111561066157600080fd5b803590602001918460018302840111600160201b8311171561068257600080fd5b509092509050610c2c565b61043461101a565b61028161101f565b6104c9600480360360408110156106b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156106d757600080fd5b8201836020820111156106e957600080fd5b803590602001918460018302840111600160201b8311171561070a57600080fd5b509092509050611025565b6104c96004803603602081101561072b57600080fd5b50356001600160a01b03166110d8565b610281611659565b6104c961165f565b6102816116d0565b61044e6116d6565b6104c96116db565b610281611b66565b606481565b61200181565b606033612000146107b85760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166107fd576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061087a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061089f612481565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146109525760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16610997576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b61200063f7a251d7600b6109aa84611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610a0a5781810151838201526020016109f2565b50505050905090810190601f168015610a375780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ae35760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff16610b28576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b610b306124a4565b6000610b7184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3e92505050565b915091508015610bbb5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a6c565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c71576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b3361100714610cb15760405162461bcd60e51b815260040180806020018281038252602e815260200180612548602e913960400191505060405180910390fd5b610d1c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611cbe9050565b15610df55760208114610d605760405162461bcd60e51b81526004018080602001828103825260278152602001806124f16027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d9e91858580838501838280828437600092019190915250611da692505050565b905060018110158015610db2575060055481105b610ded5760405162461bcd60e51b81526004018080602001828103825260258152602001806125986025913960400191505060405180910390fd5b600455610f88565b610e5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611cbe9050565b15610f4b5760208114610e9f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125766022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610edd91858580838501838280828437600092019190915250611da692505050565b90506103e88111158015610ef2575060045481115b610f43576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f88565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110655760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166110aa576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146111165760405162461bcd60e51b815260040180806020018281038252602d8152602001806125ec602d913960400191505060405180910390fd5b60005460ff1661115b576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60035443116111b1576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111fb576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561124357600080fd5b505afa158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b505161127857611652565b611280612481565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112db576020810180516001019052611334565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161134657fe5b0661157657600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561139957600080fd5b505af11580156113ad573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6113cd85611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561142d578181015183820152602001611415565b50505050905090810190601f16801561145a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b611571573d8080156114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153457818101518382015260200161151c565b50505050905090810190601f1680156115615780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b6115ec565b60045481602001518161158557fe5b066115ec57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156116b7576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461171b5760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16611760576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60015461176c57611b64565b600154600090600019015b808211611b38576000805b8284101561189b57611792612481565b60026000600187815481106117a357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118855760046005548161181057fe5b0481602001510381602001818152505080600260006001888154811061183257fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561188f565b600192505061189b565b50600190930192611782565b828411611a32576118aa612481565b60026000600186815481106118bb57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156119a35760046005548161192857fe5b0481602001510381602001818152505080600260006001878154811061194a57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a329050565b60026000600186815481106119b457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119f857fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a255750611a32565b506000199092019161189b565b818015611a3c5750805b15611b1b576002600060018681548110611a5257fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a9957fe5b600091825260209091200154600180546001600160a01b039092169186908110611abf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611af857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b27575050611b38565b505060019091019060001901611777565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b87579050509050611bb0836001600160a01b0316611dab565b81600081518110611bbd57fe5b6020026020010181905250611bd143611dce565b81600181518110611bde57fe5b6020908102919091010152611bf36038611dce565b81600281518110611c0057fe5b6020026020010181905250611c1442611dce565b81600381518110611c2157fe5b6020026020010181905250611c3581611de1565b9150505b919050565b611c466124a4565b6000611c506124a4565b611c586124b6565b611c69611c6486611e6b565b611e90565b90506000805b611c7883611eda565b15611cb15780611ca457611c93611c8e84611efb565b611f49565b63ffffffff16845260019150611ca9565b611cb1565b600101611c6f565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611cf35780518252601f199092019160209182019101611cd4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d615780518252601f199092019160209182019101611d42565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611c3581612000565b6060611da0611ddc83612056565b612000565b6060815160001415611e025750604080516000815260208101909152611c39565b606082600081518110611e1157fe5b602002602001015190506000600190505b8351811015611e5257611e4882858381518110611e3b57fe5b602002602001015161213c565b9150600101611e22565b50611c35611e65825160c060ff166121b9565b8261213c565b611e736124d6565b506040805180820190915281518152602082810190820152919050565b611e986124b6565b611ea1826122b1565b611eaa57600080fd5b6000611eb983602001516122eb565b60208085015160408051808201909152868152920190820152915050919050565b6000611ee46124d6565b505080518051602091820151919092015191011190565b611f036124d6565b611f0c82611eda565b611f1557600080fd5b60208201516000611f258261234e565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611f5e57508151602110155b611f6757600080fd5b6000611f7683602001516122eb565b90508083600001511015611fd1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ff757826020036101000a820491505b50949350505050565b6060815160011480156120325750607f60f81b8260008151811061202057fe5b01602001516001600160f81b03191611155b1561203e575080611c39565b611da06120508351608060ff166121b9565b8361213c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661209a575060186120be565b6fffffffffffffffffffffffffffffffff1984166120ba575060106120be565b5060005b60208110156120f4578181815181106120d357fe5b01602001516001600160f81b031916156120ec576120f4565b6001016120be565b60008160200390506060816040519080825280601f01601f191660200182016040528015612129576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561216d578051835260209283019201612155565b50855184518101855292509050808201602086015b8183101561219a578051835260209283019201612182565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612209576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116122635782840160f81b8160008151811061224557fe5b60200101906001600160f81b031916908160001a9053509050611da0565b606061226e85612056565b90508381510160370160f81b8260008151811061228757fe5b60200101906001600160f81b031916908160001a9053506122a8828261213c565b95945050505050565b80516000906122c257506000611c39565b6020820151805160001a9060c08210156122e157600092505050611c39565b5060019392505050565b8051600090811a6080811015612305576000915050611c39565b60b8811080612320575060c08110801590612320575060f881105b1561232f576001915050611c39565b60c08110156123435760b519019050611c39565b60f519019050611c39565b80516000908190811a6080811015612369576001915061247a565b60b881101561237e57607e198101915061247a565b60c08110156123f857600060b78203600186019550806020036101000a8651049150600181018201935050808310156123f2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061247a565b60f881101561240d5760be198101915061247a565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612478576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806124c96124d6565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a2646970667358221220638a87b280b96494e110d626ea9527bb15cb9cf42454fbab93839017affa9a8564736f6c63430006040033", + Code: planck.MainnetSlashContract, }, { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "6080604052600436106103c75760003560e01c806396713da9116101f2578063c81b16621161010d578063f0148472116100a0578063fc1a598f1161006f578063fc1a598f14610f25578063fc3e590814610b85578063fd6a687914610f58578063ff9c0027146107fd5761040f565b8063f014847214610ed1578063f9a2bbc714610ee6578063fa9e915914610efb578063fb063e8f14610f105761040f565b8063dc927faf116100dc578063dc927faf14610e5f578063e1c7392a14610e74578063e8f35cea14610e89578063ebf71d5314610ebc5761040f565b8063c81b166214610d8a578063c8509d8114610d9f578063cf41984414610e24578063d9e6dae91461077f5761040f565b8063aa7415f511610185578063b9fd21e311610154578063b9fd21e314610cfa578063ba35ead614610d0f578063bbface1f14610d24578063bd46646114610d575761040f565b8063aa7415f514610b9a578063ab51bb9614610be1578063ac43175114610bf6578063b99328c514610cc15761040f565b8063a1a11bf5116101c1578063a1a11bf514610b46578063a496fba214610b5b578063a78abc1614610b70578063a7c9f02d14610b855761040f565b806396713da914610ace5780639a854bbd14610ae35780639a99b4f014610af85780639dc0926214610b315761040f565b806359b92789116102e257806371d3086311610275578063831d65d111610244578063831d65d1146109d15780638b87b21f146106d45780638eff336c14610a565780639509b98014610a955761040f565b806371d3086314610968578063727be1f81461097d57806375d47a0a146109a75780637942fd05146109bc5761040f565b80636e056520116102b15780636e056520146108125780636e47b4821461093e57806370fd5bad146107fd578063718a8aa8146109535761040f565b806359b92789146107be5780635d499b1b146107e8578063613684751461077f57806366dea52a146107fd5761040f565b80633fd8b02f1161035a5780634a3acdf4116103295780634a3acdf41461076a5780634bf6c8821461077f57806350432d321461079457806351e80672146107a95761040f565b80633fd8b02f146106ff57806343756e5c1461071457806343a368b914610729578063493279b11461073e5761040f565b8063149d14d911610396578063149d14d9146105a85780632ae45483146105cf5780633d713223146106235780633dffc387146106d45761040f565b80630bee7a67146104145780630e2374a5146104425780631182b87514610473578063122345821461056d5761040f565b3661040f57341561040d576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561042057600080fd5b50610429610f6d565b6040805163ffffffff9092168252519081900360200190f35b34801561044e57600080fd5b50610457610f72565b604080516001600160a01b039092168252519081900360200190f35b34801561047f57600080fd5b506104f86004803603604081101561049657600080fd5b60ff8235169190810190604081016020820135600160201b8111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111600160201b831117156104ed57600080fd5b509092509050610f78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053257818101518382015260200161051a565b50505050905090810190601f16801561055f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057957600080fd5b5061040d6004803603604081101561059057600080fd5b506001600160a01b03813581169160200135166110a6565b3480156105b457600080fd5b506105bd6111a0565b60408051918252519081900360200190f35b3480156105db57600080fd5b5061060a600480360360408110156105f257600080fd5b506001600160a01b03813581169160200135166111a6565b6040805192835260208301919091528051918290030190f35b34801561062f57600080fd5b506104576004803603602081101561064657600080fd5b810190602081018135600160201b81111561066057600080fd5b82018360208201111561067257600080fd5b803590602001918460018302840111600160201b8311171561069357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111ca945050505050565b3480156106e057600080fd5b506106e96111ee565b6040805160ff9092168252519081900360200190f35b34801561070b57600080fd5b506105bd6111f3565b34801561072057600080fd5b506104576111f9565b34801561073557600080fd5b506105bd6111ff565b34801561074a57600080fd5b5061075361120b565b6040805161ffff9092168252519081900360200190f35b34801561077657600080fd5b506105bd611210565b34801561078b57600080fd5b506106e9611216565b3480156107a057600080fd5b506105bd61121b565b3480156107b557600080fd5b50610457611226565b3480156107ca57600080fd5b50610457600480360360208110156107e157600080fd5b503561122c565b3480156107f457600080fd5b506105bd611247565b34801561080957600080fd5b506106e9611250565b61092a6004803603608081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460208302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460208302840111600160201b831117156108c557600080fd5b919390929091602081019035600160201b8111156108e257600080fd5b8201836020820111156108f457600080fd5b803590602001918460208302840111600160201b8311171561091557600080fd5b91935091503567ffffffffffffffff16611255565b604080519115158252519081900360200190f35b34801561094a57600080fd5b5061045761172a565b34801561095f57600080fd5b506106e9611730565b34801561097457600080fd5b506105bd611735565b34801561098957600080fd5b5061092a600480360360208110156109a057600080fd5b503561173b565b3480156109b357600080fd5b506104576117bc565b3480156109c857600080fd5b506106e96117c2565b3480156109dd57600080fd5b5061040d600480360360408110156109f457600080fd5b60ff8235169190810190604081016020820135600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b5090925090506117c7565b348015610a6257600080fd5b5061040d60048036036060811015610a7957600080fd5b508035906001600160a01b036020820135169060400135611910565b348015610aa157600080fd5b5061040d60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611996565b348015610ada57600080fd5b506106e9611b53565b348015610aef57600080fd5b506105bd611b58565b348015610b0457600080fd5b506105bd60048036036040811015610b1b57600080fd5b506001600160a01b038135169060200135611b64565b348015610b3d57600080fd5b50610457611ca2565b348015610b5257600080fd5b50610457611ca8565b348015610b6757600080fd5b506106e9611cae565b348015610b7c57600080fd5b5061092a611cb3565b348015610b9157600080fd5b506106e9611cbc565b61092a60048036036080811015610bb057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611cc1565b348015610bed57600080fd5b50610429611cae565b348015610c0257600080fd5b5061040d60048036036040811015610c1957600080fd5b810190602081018135600160201b811115610c3357600080fd5b820183602082011115610c4557600080fd5b803590602001918460018302840111600160201b83111715610c6657600080fd5b919390929091602081019035600160201b811115610c8357600080fd5b820183602082011115610c9557600080fd5b803590602001918460018302840111600160201b83111715610cb657600080fd5b509092509050612382565b348015610ccd57600080fd5b5061040d60048036036040811015610ce457600080fd5b50803590602001356001600160a01b031661282a565b348015610d0657600080fd5b506105bd6128a0565b348015610d1b57600080fd5b506105bd6128aa565b348015610d3057600080fd5b506105bd60048036036020811015610d4757600080fd5b50356001600160a01b03166128b0565b348015610d6357600080fd5b506105bd60048036036020811015610d7a57600080fd5b50356001600160a01b03166128c2565b348015610d9657600080fd5b506104576128dd565b348015610dab57600080fd5b5061040d60048036036040811015610dc257600080fd5b60ff8235169190810190604081016020820135600160201b811115610de657600080fd5b820183602082011115610df857600080fd5b803590602001918460018302840111600160201b83111715610e1957600080fd5b5090925090506128e3565b348015610e3057600080fd5b5061040d60048036036040811015610e4757600080fd5b506001600160a01b03813581169160200135166129b3565b348015610e6b57600080fd5b50610457612c87565b348015610e8057600080fd5b5061040d612c8d565b348015610e9557600080fd5b506105bd60048036036020811015610eac57600080fd5b50356001600160a01b0316612d2d565b348015610ec857600080fd5b506106e9612d3f565b348015610edd57600080fd5b506106e9612d44565b348015610ef257600080fd5b50610457612d49565b348015610f0757600080fd5b506105bd612d4f565b348015610f1c57600080fd5b506105bd612d55565b348015610f3157600080fd5b506104f860048036036020811015610f4857600080fd5b50356001600160a01b0316612d63565b348015610f6457600080fd5b50610457612e8a565b606481565b61200181565b60005460609060ff16610fc0576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146110005760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff8416600214156110525761104b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9092505050565b905061109f565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146110e65760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611151576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b603881565b61a8c081565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661129b576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b8685146112d95760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f5603b913960400191505060405180910390fd5b8683146113175760405162461bcd60e51b815260040180806020018281038252603f8152602001806153c8603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156113635760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be4003406156113a75760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156113da578160200160208202803683370190505b50905060005b848110156114b5576402540be4008b8b838181106113fa57fe5b905060200201358161140857fe5b06156114455760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b61146a8b8b8381811061145457fe5b9050602002013585612fb490919063ffffffff16565b93506114966402540be4008c8c8481811061148157fe5b9050602002013561300e90919063ffffffff16565b8282815181106114a257fe5b60209081029190910101526001016113e0565b506001546114da906114cd908663ffffffff61305016565b849063ffffffff612fb416565b3410156115185760405162461bcd60e51b81526004018080602001828103825260568152602001806155a26056913960600191505060405180910390fd5b611528348463ffffffff6130a916565b91506115326150bc565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036115f6846130eb565b61160b876402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611669578181015183820152602001611651565b50505050905090810190601f1680156116965780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461177d5760405162461bcd60e51b81526004018080602001828103825260338152602001806151d66033913960400191505060405180910390fd5b81156117b4576040516120019083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff1661180c576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b336120001461184c5760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133a692505050565b61190b565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146119505760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516001600160a01b03163314611a58576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211611aa6576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054611afc576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff16611baa576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b3361100514611bea5760405162461bcd60e51b815260040180806020018281038252602f815260200180615209602f913960400191505060405180910390fd5b6000478310611bf95747611bfb565b825b9050670de0b6b3a7640000811115611c17576000915050611c9c565b8015611c99576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611c53573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611d07576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff161015611d535760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be400340615611d975760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b600080806001600160a01b038816611e7657600154611dbd90879063ffffffff612fb416565b341015611dfb5760405162461bcd60e51b81526004018080602001828103825260618152602001806153426061913960800191505060405180910390fd5b6402540be400860615611e3f5760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611e4f348763ffffffff6130a916565b9050611e66866402540be40063ffffffff61300e16565b6221272160e91b93509150612119565b6001600160a01b038816600090815260036020526040902054925082611ecd5760405162461bcd60e51b81526004018080602001828103825260318152602001806153116031913960400191505060405180910390fd5b600154341015611f0e5760405162461bcd60e51b815260040180806020018281038252603f815260200180615464603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611f595750600881118015611f595750611f57876007198301600a0a63ffffffff61340216565b155b611f945760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611f9e8782613444565b9250611fa984613484565b15611ff1576305f5e100831015611ff15760405162461bcd60e51b815260040180806020018281038252603a81526020018061525a603a913960400191505060405180910390fd5b60088110158061200b575060088110801561200b57508683115b6120465760405162461bcd60e51b81526004018080602001828103825260258152602001806153a36025913960400191505060405180910390fd5b677ce66c50e284000083111561208d5760405162461bcd60e51b81526004018080602001828103825260358152602001806152dc6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050506040513d602081101561210c57600080fd5b505161211757600080fd5b505b6121216150bc565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff1681525090508281604001516000815181106121cf57fe5b6020026020010181815250508781606001516000815181106121ed57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505033816080015160008151811061221f57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d7600361224a846130eb565b61225f866402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156122bd5781810151838201526020016122a5565b50505050905090810190601f1680156122ea5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b33611007146123c25760405162461bcd60e51b815260040180806020018281038252602e8152602001806154a3602e913960400191505060405180910390fd5b60208114612417576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561251f576020820151670de0b6b3a764000081118015906124c657506402540be4008106155b612517576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612795565b61259387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061358a9050565b1561262f57604080516020601f87018190048102820181019092528581526000916125d69188888083850183828082843760009201919091525061367192505050565b905062093a80811115612627576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612795565b61269b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061358a9050565b1561275857604080516020601f87018190048102820181019092528581526000916126de9188888083850183828082843760009201919091525061367192505050565b905068056bc75e2d631000008110156127285760405162461bcd60e51b81526004018080602001828103825260228152602001806152386022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612795565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461286a5760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612928576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146129685760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367692505050565b60085460ff16600214156129ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a77576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612ad0576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b43576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612b33576040519150601f19603f3d011682016040523d82523d6000602084013e612b38565b606091505b505080915050612bd6565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612ba657600080fd5b5087f1158015612bba573d6000803e3d6000fd5b50505050506040513d6020811015612bd157600080fd5b505190505b80612c28576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b60005460ff1615612ce5576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612df357828160ff1681518110612dc757fe5b01602001516001600160f81b03191615612de657600190910190612deb565b612df3565b600101612dac565b5060608160ff166040519080825280601f01601f191660200182016040528015612e24576020820181803683370190505b50905060005b8260ff168160ff161015612e8057838160ff1681518110612e4757fe5b602001015160f81c60f81b828260ff1681518110612e6157fe5b60200101906001600160f81b031916908160001a905350600101612e2a565b5095945050505050565b61100481565b6060612e9a615108565b6000612ea584613774565b9150915080612efb576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f06836138b3565b905063ffffffff811615612f9a576040808401516020808601516001600160a01b03166000908152600290915291822054612f419190613444565b9050612f4b61513d565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff168152509050612f8e81613c19565b955050505050506111e9565b505060408051600081526020810190915291506111e99050565b600082820183811015611c99576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cf5565b60008261305f57506000611c9c565b8282028284828161306c57fe5b0414611c995760405162461bcd60e51b81526004018080602001828103825260218152602001806154436021913960400191505060405180910390fd5b6000611c9983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d97565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613106575050835190915061312890613df1565b8160008151811061313557fe5b602002602001018190525061315683602001516001600160a01b0316613e04565b8160018151811061316357fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156131ae57816020015b60608152602001906001900390816131995790505b50905060005b828110156131fb576131dc866040015182815181106131cf57fe5b6020026020010151613df1565b8282815181106131e857fe5b60209081029190910101526001016131b4565b5061320581613e27565b8360028151811061321257fe5b602002602001018190525060608260405190808252806020026020018201604052801561325357816020015b606081526020019060019003908161323e5790505b50905060005b838110156132a95761328a8760600151828151811061327457fe5b60200260200101516001600160a01b0316613e04565b82828151811061329657fe5b6020908102919091010152600101613259565b506132b381613e27565b846003815181106132c057fe5b602002602001018190525060608360405190808252806020026020018201604052801561330157816020015b60608152602001906001900390816132ec5790505b50905060005b84811015613341576133228860800151828151811061327457fe5b82828151811061332e57fe5b6020908102919091010152600101613307565b5061334b81613e27565b8560048151811061335857fe5b602002602001018190525061337a8760a0015167ffffffffffffffff16613df1565b8560058151811061338757fe5b602002602001018190525061339b85613e27565b979650505050505050565b6133ae615164565b60006133b983613eb1565b91509150806133f95760405162461bcd60e51b81526004018080602001828103825260248152602001806154d16024913960400191505060405180910390fd5b61190b8261407c565b6000611c9983836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250614500565b6000600882111561346d57613466836007198401600a0a63ffffffff61300e16565b9050611c9c565b611c99836008849003600a0a63ffffffff61305016565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156134fa57828160ff16815181106134ce57fe5b01602001516001600160f81b031916156134ed576001909101906134f2565b6134fa565b6001016134b3565b50600760ff82161015613512576000925050506111e9565b816005820360ff168151811061352457fe5b6020910101516001600160f81b031916602d60f81b14613549576000925050506111e9565b816001820360ff168151811061355b57fe5b6020910101516001600160f81b031916604d60f81b14613580576000925050506111e9565b5060019392505050565b6000816040516020018082805190602001908083835b602083106135bf5780518252601f1990920191602091820191016135a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061362d5780518252601f19909201916020918201910161360e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b61367e6150bc565b600061368983614562565b91509150806136c95760405162461bcd60e51b81526004018080602001828103825260248152602001806152946024913960400191505060405180910390fd5b6136d1615164565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b8460400151518110156137525761372f8560400151828151811061372157fe5b6020026020010151836147c6565b8560400151828151811061373f57fe5b6020908102919091010152600101613701565b50608084015160408301526005606083015261376d8261407c565b5050505050565b61377c615108565b6000613786615108565b61378e61519b565b61379f61379a866147ff565b614824565b90506000805b6137ae8361486e565b156138a657806137d0576137c96137c48461488f565b6148dd565b845261389e565b80600114156137fd576137ea6137e58461488f565b614994565b6001600160a01b0316602085015261389e565b806002141561381c576138126137c48461488f565b604085015261389e565b8060031415613844576138316137e58461488f565b6001600160a01b0316606085015261389e565b806004141561386c576138596137e58461488f565b6001600160a01b0316608085015261389e565b8060051415613899576138816137c48461488f565b67ffffffffffffffff1660a08501526001915061389e565b6138a6565b6001016137a5565b5091935090915050915091565b60208101516000906001600160a01b03166139f7578160a0015167ffffffffffffffff164211156138e6575060016111e9565b81604001514710156138fa575060036111e9565b613903826149ae565b61397857606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461395e576040519150601f19603f3d011682016040523d82523d6000602084013e613963565b606091505b50509050806139765750600490506111e9565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006111e9565b8160a0015167ffffffffffffffff16421115613a15575060016111e9565b81516020808401516001600160a01b031660009081526003909152604090205414613a42575060026111e9565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a9257600080fd5b5086fa158015613aa6573d6000803e3d6000fd5b50505050506040513d6020811015613abd57600080fd5b50516040840151909150811015613ad85750600390506111e9565b613ae1836149ae565b613b9857600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b5657600080fd5b5087f1158015613b6a573d6000803e3d6000fd5b50505050506040513d6020811015613b8157600080fd5b5051905080613b965750600591506111e99050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506111e9565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c345750508351909150613c5690613df1565b81600081518110613c6357fe5b6020026020010181905250613c7b8360200151613df1565b81600181518110613c8857fe5b6020026020010181905250613ca983604001516001600160a01b0316613e04565b81600281518110613cb657fe5b6020026020010181905250613cd4836060015163ffffffff16613df1565b81600381518110613ce157fe5b602002602001018190525061109f81613e27565b60008183613d815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d46578181015183820152602001613d2e565b50505050905090810190601f168015613d735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8d57fe5b0495945050505050565b60008184841115613de95760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b505050900390565b6060611c9c613dff83614b1c565b614c02565b60408051600560a21b831860148201526034810190915260609061109f81614c02565b6060815160001415613e4857506040805160008152602081019091526111e9565b606082600081518110613e5757fe5b602002602001015190506000600190505b8351811015613e9857613e8e82858381518110613e8157fe5b6020026020010151614c54565b9150600101613e68565b5061109f613eab825160c060ff16614cd1565b82614c54565b613eb9615164565b6000613ec3615164565b613ecb61519b565b613ed761379a866147ff565b90506000805b613ee68361486e565b156138a65780613f0c57613efc6137e58461488f565b6001600160a01b03168452614074565b8060011415613fad576060613f28613f238561488f565b614dc9565b90508051604051908082528060200260200182016040528015613f55578160200160208202803683370190505b50602086015260005b8151811015613fa657613f83828281518110613f7657fe5b60200260200101516148dd565b86602001518281518110613f9357fe5b6020908102919091010152600101613f5e565b5050614074565b806002141561404f576060613fc4613f238561488f565b90508051604051908082528060200260200182016040528015613ff1578160200160208202803683370190505b50604086015260005b8151811015613fa65761401f82828151811061401257fe5b6020026020010151614994565b8660400151828151811061402f57fe5b6001600160a01b0390921660209283029190910190910152600101613ffa565b8060031415613899576140646137c48461488f565b63ffffffff166060850152600191505b600101613edd565b80516001600160a01b03166142a65760005b8160200151518110156142a0576000826040015182815181106140ad57fe5b60200260200101516001600160a01b0316612710846020015184815181106140d157fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614119576040519150601f19603f3d011682016040523d82523d6000602084013e61411e565b606091505b50509050806141e1577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415d57fe5b60200260200101518560200151858151811061417557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1614297565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061421757fe5b60200260200101518560200151858151811061422f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161408e565b506144fd565b60005b8160200151518110156144fb57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142de57fe5b6020026020010151866020015186815181106142f657fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434d57600080fd5b5087f1158015614361573d6000803e3d6000fd5b50505050506040513d602081101561437857600080fd5b50519050801561443c577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b857fe5b6020026020010151856020015185815181106143d057fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144f2565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061447257fe5b60200260200101518560200151858151811061448a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a9565b505b50565b6000818361454f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b5082848161455957fe5b06949350505050565b61456a6150bc565b60006145746150bc565b61457c61519b565b61458861379a866147ff565b90506000805b6145978361486e565b156138a657806145b4576145ad6137c48461488f565b84526147be565b80600114156145dc576145c96137e58461488f565b6001600160a01b031660208501526147be565b806002141561466b5760606145f3613f238561488f565b90508051604051908082528060200260200182016040528015614620578160200160208202803683370190505b50604086015260005b815181101561466457614641828281518110613f7657fe5b8660400151828151811061465157fe5b6020908102919091010152600101614629565b50506147be565b8060031415614700576060614682613f238561488f565b905080516040519080825280602002602001820160405280156146af578160200160208202803683370190505b50606086015260005b8151811015614664576146d082828151811061401257fe5b866060015182815181106146e057fe5b6001600160a01b03909216602092830291909101909101526001016146b8565b8060041415614795576060614717613f238561488f565b90508051604051908082528060200260200182016040528015614744578160200160208202803683370190505b50608086015260005b81518110156146645761476582828151811061401257fe5b8660800151828151811061477557fe5b6001600160a01b039092166020928302919091019091015260010161474d565b8060051415613899576147aa6137c48461488f565b67ffffffffffffffff1660a0850152600191505b60010161458e565b600060088211156147e857613466836007198401600a0a63ffffffff61305016565b611c99836008849003600a0a63ffffffff61300e16565b6148076151bb565b506040805180820190915281518152602082810190820152919050565b61482c61519b565b61483582614e9a565b61483e57600080fd5b600061484d8360200151614eca565b60208085015160408051808201909152868152920190820152915050919050565b60006148786151bb565b505080518051602091820151919092015191011190565b6148976151bb565b6148a08261486e565b6148a957600080fd5b602082015160006148b982614f2d565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906148f257508151602110155b6148fb57600080fd5b600061490a8360200151614eca565b90508083600001511015614965576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561498b57826020036101000a820491505b50949350505050565b80516000906015146149a557600080fd5b611c9c826148dd565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149e75750600554155b15614a295760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b0316600090815260069091526040902054801580614a575750808360400151105b15614a665760009150506111e9565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614aac9163ffffffff612fb416565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614b6057506018614b84565b6fffffffffffffffffffffffffffffffff198416614b8057506010614b84565b5060005b6020811015614bba57818181518110614b9957fe5b01602001516001600160f81b03191615614bb257614bba565b600101614b84565b60008160200390506060816040519080825280601f01601f191660200182016040528015614bef576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614c345750607f60f81b82600081518110614c2257fe5b01602001516001600160f81b03191611155b15614c405750806111e9565b611c9c614c528351608060ff16614cd1565b835b6060806040519050835180825260208201818101602087015b81831015614c85578051835260209283019201614c6d565b50855184518101855292509050808201602086015b81831015614cb2578051835260209283019201614c9a565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d21576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614d7b5782840160f81b81600081518110614d5d57fe5b60200101906001600160f81b031916908160001a9053509050611c9c565b6060614d8685614b1c565b90508381510160370160f81b82600081518110614d9f57fe5b60200101906001600160f81b031916908160001a905350614dc08282614c54565b95945050505050565b6060614dd482614e9a565b614ddd57600080fd5b6000614de883615060565b9050606081604051908082528060200260200182016040528015614e2657816020015b614e136151bb565b815260200190600190039081614e0b5790505b5090506000614e388560200151614eca565b60208601510190506000805b84811015614e8f57614e5583614f2d565b9150604051806040016040528083815260200184815250848281518110614e7857fe5b602090810291909101015291810191600101614e44565b509195945050505050565b8051600090614eab575060006111e9565b6020820151805160001a9060c0821015613580576000925050506111e9565b8051600090811a6080811015614ee45760009150506111e9565b60b8811080614eff575060c08110801590614eff575060f881105b15614f0e5760019150506111e9565b60c0811015614f225760b5190190506111e9565b60f5190190506111e9565b80516000908190811a6080811015614f485760019150615059565b60b8811015614f5d57607e1981019150615059565b60c0811015614fd757600060b78203600186019550806020036101000a865104915060018101820193505080831015614fd1576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615059565b60f8811015614fec5760be1981019150615059565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615057576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090615071575060006111e9565b600080905060006150858460200151614eca565b602085015185519181019250015b808210156150b3576150a482614f2d565b60019093019290910190615093565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b60405180604001604052806151ae6151bb565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220b559cd4e3125714f2f5ec5e81bc7a26f9ea28156afc15d661cb954c3ea9a53d864736f6c63430006040033", + Code: planck.MainnetTokenHubContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b610409612a36565b6103a6612a3e565b6103e5612a43565b6103e5612a49565b610423612a4f565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b509092509050612a58565b61063d60048036036020811015610a9657600080fd5b503560ff1661351c565b610409613537565b6103e561355b565b610599613561565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff166137b5565b61070c6137d5565b6104096137f4565b6103e56137fa565b610599613800565b61063d60048036036020811015610b1d57600080fd5b503560ff16613bb7565b610599613bd2565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613df1565b6103e5613f34565b6103a6613f3a565b6103e5613f3f565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613f45565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f8d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f8d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61408a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614108565b50905061138681838851614112565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d89083614153565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b73b005741528b86f5952469d80a8614591e3c5b632331480611842575073446aa6e0dc65690403df3f127750da1322941f3e33145b61187d5760405162461bcd60e51b815260040180806020018281038252602a8152602001806149f0602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b0390811690831681146118ed576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561196257600080fd5b505afa158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50516119c95760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a33576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a9c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611aee5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b32576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c766110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c1f57600080fd5b505afa158015611c33573d6000803e3d6000fd5b505050506040513d6020811015611c4957600080fd5b505160408051808201909152600381526269626360e81b6020820152611c6f8e8e613f45565b8585613f8d565b611cbe576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d0a57600080fd5b505afa158015611d1e573d6000803e3d6000fd5b505050506040513d6020811015611d3457600080fd5b505190508b8b600080806060611d4989614438565b935093509350935083611e0b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dc3578181015183820152602001611dab565b50505050905090810190601f168015611df05780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a26565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123905760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611ed8578181015183820152602001611ec0565b50505050905090810190601f168015611f055780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f2557600080fd5b505af192505050801561200957506040513d6000823e601f3d908101601f191682016040526020811015611f5857600080fd5b8101908080516040519392919084600160201b821115611f7757600080fd5b908301906020820185811115611f8c57600080fd5b8251600160201b811182820188101715611fa557600080fd5b82525081516020918201929091019080838360005b83811015611fd2578181015183820152602001611fba565b50505050905090810190601f168015611fff5780820380516001836020036101000a031916815260200191505b5060405250505060015b61231b576040516000815260443d1015612025575060006120c0565b60046000803e60005160e01c6308c379a081146120465760009150506120c0565b60043d036004833e81513d60248201116001600160401b0382111715612071576000925050506120c0565b80830180516001600160401b038111156120925760009450505050506120c0565b8060208301013d86018111156120b0576000955050505050506120c0565b601f01601f191660405250925050505b806120cb57506121dd565b60ff8716600090815260076020526040812054612102916001600160401b039091169089906120fd906002908861131c565b6144e8565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561219d578181015183820152602001612185565b50505050905090810190601f1680156121ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612316565b3d808015612207576040519150601f19603f3d011682016040523d82523d6000602084013e61220c565b606091505b5060ff871660009081526007602052604081205461223f916001600160401b039091169089906120fd906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156122da5781810151838201526020016122c2565b50505050905090810190601f1680156123075780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61238a565b8051156123885760ff8716600090815260076020526040812054612354916001600160401b039091169089906120fd906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b5061295e565b60ff8316600114156126345760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561241a578181015183820152602001612402565b50505050905090810190601f1680156124475780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561246757600080fd5b505af1925050508015612478575060015b61238a576040516000815260443d10156124945750600061252f565b60046000803e60005160e01c6308c379a081146124b557600091505061252f565b60043d036004833e81513d60248201116001600160401b03821117156124e05760009250505061252f565b80830180516001600160401b0381111561250157600094505050505061252f565b8060208301013d860181111561251f5760009550505050505061252f565b601f01601f191660405250925050505b8061253a575061259f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561219d578181015183820152602001612185565b3d8080156125c9576040519150601f19603f3d011682016040523d82523d6000602084013e6125ce565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156122da5781810151838201526020016122c2565b60ff83166002141561295e5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126be5781810151838201526020016126a6565b50505050905090810190601f1680156126eb5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561270b57600080fd5b505af192505050801561271c575060015b61295c576040516000815260443d1015612738575060006127d3565b60046000803e60005160e01c6308c379a081146127595760009150506127d3565b60043d036004833e81513d60248201116001600160401b0382111715612784576000925050506127d3565b80830180516001600160401b038111156127a55760009450505050506127d3565b8060208301013d86018111156127c3576000955050505050506127d3565b601f01601f191660405250925050505b806127de5750612887565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561284757818101518382015260200161282f565b50505050905090810190601f1680156128745780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061295c565b3d8080156128b1576040519150601f19603f3d011682016040523d82523d6000602084013e6128b6565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612920578181015183820152602001612908565b50505050905090810190601f16801561294d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612990575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050506040513d6020811015612a1a57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a985760405162461bcd60e51b815260040180806020018281038252602e815260200180614978602e913960400191505060405180910390fd5b600b5460ff1615612adc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b4584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146829050565b15612be057604080516020601f8401819004810282018101909252828152600091612b889185858083850183828082843760009201919091525061476992505050565b90506127108111158015612b9d5750600a8110155b612bd85760405162461bcd60e51b8152600401808060200182810382526032815260200180614a1a6032913960400191505060405180910390fd5b60015561348a565b612c4984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146829050565b15612dd157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612ccc5760405162461bcd60e51b815260040180806020018281038252605a815260200180614891605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612cea8161476e565b612d3b576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061348a565b612e3e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146829050565b15612f6f57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ec15760405162461bcd60e51b815260040180806020018281038252604a8152602001806149a6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f65576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061348a565b612fd384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146829050565b1561310857600281146130175760405162461bcd60e51b815260040180806020018281038252602d81526020018061491f602d913960400191505060405180910390fd5b600061305a600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff16118015613074575060648161ffff16105b6130be576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61316b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146829050565b1561329e57600281146131af5760405162461bcd60e51b815260040180806020018281038252602c81526020018061494c602c913960400191505060405180910390fd5b60006131f2600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff1611801561320c575060648161ffff16105b613255576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61330984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146829050565b1561344d576002811461334d5760405162461bcd60e51b81526004018080602001828103825260348152602001806148eb6034913960400191505060405180910390fd5b6000613390600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff161180156133aa575060648161ffff16105b6133fb576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135a6576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b1580156135e957600080fd5b505afa1580156135fd573d6000803e3d6000fd5b505050506040513d602081101561361357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561365457600080fd5b505afa158015613668573d6000803e3d6000fd5b505050506040513d602081101561367e57600080fd5b505190508061368b575060155b60008211801561369b5750808211155b6136da576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613721576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613772907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff1615613858576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c17576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cc557600080fd5b505afa158015613cd9573d6000803e3d6000fd5b505050506040513d6020811015613cef57600080fd5b5051905080613cfc575060155b600082118015613d0c5750808211155b613d4b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d8f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613de1907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b0576137b061408a565b60005460ff16613e36576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e935760405162461bcd60e51b81526004018080602001828103825260318152602001806148606031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613ef89284928a926120fd92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f9c57506000614081565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613fd3576020820181803683370190505b5090506000613fe182614774565b602080890151825201905086600080613ff989614108565b8086526020909501949092509050614012828583614112565b9283019261401f88614108565b8086526020909501949092509050614038828583614112565b9283018a81526020019261404b87614108565b909250905061405b828583614112565b50835160200161406961477a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff16156140ce576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614132578251825260209283019290910190601f1901614113565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661421c57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061424d575082816001015414155b15614320576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142c291600284019190614798565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a36143d4565b60005b60028201548110156143ab57336001600160a01b031682600201828154811061434857fe5b6000918252602090912001546001600160a01b031614156143a3576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614323565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161442e576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff19168155600181018290559061442260028301826147fd565b50506001915050613f87565b5060009392505050565b600080600060606021855110156144685750506040805160008082526020820190925290925082915081906144e1565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144b3576020820181803683370190505b50905060006144c182614108565b5090506144d3858260218d5103614112565b506001975091955093509150505b9193509193565b600b5460ff161561452c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60025443111561456b576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ac565b600380546001908101918290555410156145ac576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561464257818101518382015260200161462a565b50505050905090810190601f16801561466f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146b75780518252601f199092019160209182019101614698565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147255780518252601f199092019160209182019101614706565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b8280548282559060005260206000209081019282156147ed579160200282015b828111156147ed57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147b8565b506147f992915061481e565b5090565b508054600082559060005260206000209081019061481b9190614845565b50565b61484291905b808211156147f95780546001600160a01b0319168155600101614824565b90565b61484291905b808211156147f9576000815560010161484b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122041ff13fe956e0a3b951862bdc1d377a102e361a8960c89b2a595749204aba3ed64736f6c63430006040033", + Code: planck.MainnetCrossChainContract, }, }, } @@ -378,22 +392,22 @@ func init() { { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106102535760003560e01c80637942fd0511610146578063ac431751116100c3578063dc927faf11610087578063dc927faf1461073b578063e1c7392a14610743578063f9a2bbc71461074b578063fc3e590814610753578063fc4333cd1461075b578063fd6a68791461076357610253565b8063ac431751146105cf578063c80d4b8f1461068d578063c81b166214610695578063c8509d811461069d578063c96be4cb1461071557610253565b80639dc092621161010a5780639dc0926214610593578063a1a11bf51461059b578063a78abc16146105a3578063ab51bb96146105bf578063ac0af629146105c757610253565b80637942fd05146104fb5780638256ace614610503578063831d65d11461050b57806396713da9146105835780639bc8e4f21461058b57610253565b80634bf6c882116101d45780636e47b482116101985780636e47b482146104d357806370fd5bad146104db578063718a8aa8146104e357806375d47a0a146104eb5780637912a65d146104f357610253565b80634bf6c8821461048b57806351e8067214610493578063567a372d1461049b5780635bfb4990146104a357806362b72cf5146104cb57610253565b806337c8dab91161021b57806337c8dab9146103ed578063389f4f711461042c5780633dffc3871461044657806343756e5c14610464578063493279b11461046c57610253565b80630bee7a67146102585780630e2374a5146102795780631182b8751461029d57806323bac5a21461038a57806335aa2e44146103d0575b600080fd5b61026061076b565b6040805163ffffffff9092168252519081900360200190f35b610281610770565b604080516001600160a01b039092168252519081900360200190f35b610315600480360360408110156102b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b509092509050610776565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b0600480360360208110156103a057600080fd5b50356001600160a01b031661084a565b604080519384526020840192909252151582820152519081900360600190f35b610281600480360360208110156103e657600080fd5b503561086d565b6104136004803603602081101561040357600080fd5b50356001600160a01b0316610894565b6040805192835260208301919091528051918290030190f35b6104346108eb565b60408051918252519081900360200190f35b61044e6108f1565b6040805160ff9092168252519081900360200190f35b6102816108f6565b6104746108fc565b6040805161ffff9092168252519081900360200190f35b61044e610901565b610281610906565b61043461090c565b6104c9600480360360208110156104b957600080fd5b50356001600160a01b0316610912565b005b610434610a73565b610281610a79565b61044e610a7f565b61044e610a84565b610281610a89565b610434610a8f565b61044e610a94565b610413610a99565b6104c96004803603604081101561052157600080fd5b60ff8235169190810190604081016020820135600160201b81111561054557600080fd5b82018360208201111561055757600080fd5b803590602001918460018302840111600160201b8311171561057857600080fd5b509092509050610aa3565b61044e610bfd565b610434610c02565b610281610c0d565b610281610c13565b6105ab610c19565b604080519115158252519081900360200190f35b610260610c22565b610434610c27565b6104c9600480360360408110156105e557600080fd5b810190602081018135600160201b8111156105ff57600080fd5b82018360208201111561061157600080fd5b803590602001918460018302840111600160201b8311171561063257600080fd5b919390929091602081019035600160201b81111561064f57600080fd5b82018360208201111561066157600080fd5b803590602001918460018302840111600160201b8311171561068257600080fd5b509092509050610c2c565b61043461101a565b61028161101f565b6104c9600480360360408110156106b357600080fd5b60ff8235169190810190604081016020820135600160201b8111156106d757600080fd5b8201836020820111156106e957600080fd5b803590602001918460018302840111600160201b8311171561070a57600080fd5b509092509050611025565b6104c96004803603602081101561072b57600080fd5b50356001600160a01b03166110d8565b610281611659565b6104c961165f565b6102816116d0565b61044e6116d6565b6104c96116db565b610281611b66565b606481565b61200181565b606033612000146107b85760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166107fd576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642073796e207061636b6167650000604482015290519081900360640190fd5b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061087a57fe5b6000918252602090912001546001600160a01b0316905081565b60008061089f612481565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146109525760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16610997576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b61200063f7a251d7600b6109aa84611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610a0a5781810151838201526020016109f2565b50505050905090810190601f168015610a375780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b3361200014610ae35760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff16610b28576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b610b306124a4565b6000610b7184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c3e92505050565b915091508015610bbb5781516040805163ffffffff9092168252517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e6299679181900360200190a1610a6c565b81516040805163ffffffff9092168252517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e79181900360200190a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff16610c71576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b3361100714610cb15760405162461bcd60e51b815260040180806020018281038252602e815260200180612548602e913960400191505060405180910390fd5b610d1c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611cbe9050565b15610df55760208114610d605760405162461bcd60e51b81526004018080602001828103825260278152602001806124f16027913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610d9e91858580838501838280828437600092019190915250611da692505050565b905060018110158015610db2575060055481105b610ded5760405162461bcd60e51b81526004018080602001828103825260258152602001806125986025913960400191505060405180910390fd5b600455610f88565b610e5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611cbe9050565b15610f4b5760208114610e9f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125766022913960400191505060405180910390fd5b604080516020601f8401819004810282018101909252828152600091610edd91858580838501838280828437600092019190915250611da692505050565b90506103e88111158015610ef2575060045481115b610f43576040805162461bcd60e51b815260206004820181905260248201527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604482015290519081900360640190fd5b600555610f88565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b609681565b61100281565b33612000146110655760405162461bcd60e51b815260040180806020018281038252602f8152602001806125bd602f913960400191505060405180910390fd5b60005460ff166110aa576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146111165760405162461bcd60e51b815260040180806020018281038252602d8152602001806125ec602d913960400191505060405180910390fd5b60005460ff1661115b576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60035443116111b1576040805162461bcd60e51b815260206004820181905260248201527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604482015290519081900360640190fd5b3a156111fb576040805162461bcd60e51b81526020600482015260146024820152736761737072696365206973206e6f74207a65726f60601b604482015290519081900360640190fd5b6040805163155853f360e21b81526001600160a01b03831660048201529051611000916355614fcc916024808301926020929190829003018186803b15801561124357600080fd5b505afa158015611257573d6000803e3d6000fd5b505050506040513d602081101561126d57600080fd5b505161127857611652565b611280612481565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff1615801592820192909252906112db576020810180516001019052611334565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161134657fe5b0661157657600060208201819052604080516335409f7f60e01b81526001600160a01b03851660048201529051611000926335409f7f926024808201939182900301818387803b15801561139957600080fd5b505af11580156113ad573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6113cd85611b6c565b60006040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561142d578181015183820152602001611415565b50505050905090810190601f16801561145a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b611571573d8080156114ba576040519150601f19603f3d011682016040523d82523d6000602084013e6114bf565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153457818101518382015260200161151c565b50505050905090810190601f1680156115615780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b6115ec565b60045481602001518161158557fe5b066115ec57604080516375abf10160e11b81526001600160a01b038416600482015290516110009163eb57e20291602480830192600092919082900301818387803b1580156115d357600080fd5b505af11580156115e7573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b61100381565b60005460ff16156116b7576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461171b5760405162461bcd60e51b81526004018080602001828103825260308152602001806125186030913960400191505060405180910390fd5b60005460ff16611760576040805162461bcd60e51b81526020600482015260196024820152600080516020612619833981519152604482015290519081900360640190fd5b60015461176c57611b64565b600154600090600019015b808211611b38576000805b8284101561189b57611792612481565b60026000600187815481106117a357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118855760046005548161181057fe5b0481602001510381602001818152505080600260006001888154811061183257fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561188f565b600192505061189b565b50600190930192611782565b828411611a32576118aa612481565b60026000600186815481106118bb57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156119a35760046005548161192857fe5b0481602001510381602001818152505080600260006001878154811061194a57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a329050565b60026000600186815481106119b457fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119f857fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a255750611a32565b506000199092019161189b565b818015611a3c5750805b15611b1b576002600060018681548110611a5257fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a9957fe5b600091825260209091200154600180546001600160a01b039092169186908110611abf57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611af857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b27575050611b38565b505060019091019060001901611777565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b87579050509050611bb0836001600160a01b0316611dab565b81600081518110611bbd57fe5b6020026020010181905250611bd143611dce565b81600181518110611bde57fe5b6020908102919091010152611bf36061611dce565b81600281518110611c0057fe5b6020026020010181905250611c1442611dce565b81600381518110611c2157fe5b6020026020010181905250611c3581611de1565b9150505b919050565b611c466124a4565b6000611c506124a4565b611c586124b6565b611c69611c6486611e6b565b611e90565b90506000805b611c7883611eda565b15611cb15780611ca457611c93611c8e84611efb565b611f49565b63ffffffff16845260019150611ca9565b611cb1565b600101611c6f565b5091935090915050915091565b6000816040516020018082805190602001908083835b60208310611cf35780518252601f199092019160209182019101611cd4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310611d615780518252601f199092019160209182019101611d42565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b015190565b60408051600560a21b8318601482015260348101909152606090611c3581612000565b6060611da0611ddc83612056565b612000565b6060815160001415611e025750604080516000815260208101909152611c39565b606082600081518110611e1157fe5b602002602001015190506000600190505b8351811015611e5257611e4882858381518110611e3b57fe5b602002602001015161213c565b9150600101611e22565b50611c35611e65825160c060ff166121b9565b8261213c565b611e736124d6565b506040805180820190915281518152602082810190820152919050565b611e986124b6565b611ea1826122b1565b611eaa57600080fd5b6000611eb983602001516122eb565b60208085015160408051808201909152868152920190820152915050919050565b6000611ee46124d6565b505080518051602091820151919092015191011190565b611f036124d6565b611f0c82611eda565b611f1557600080fd5b60208201516000611f258261234e565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590611f5e57508151602110155b611f6757600080fd5b6000611f7683602001516122eb565b90508083600001511015611fd1576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015611ff757826020036101000a820491505b50949350505050565b6060815160011480156120325750607f60f81b8260008151811061202057fe5b01602001516001600160f81b03191611155b1561203e575080611c39565b611da06120508351608060ff166121b9565b8361213c565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661209a575060186120be565b6fffffffffffffffffffffffffffffffff1984166120ba575060106120be565b5060005b60208110156120f4578181815181106120d357fe5b01602001516001600160f81b031916156120ec576120f4565b6001016120be565b60008160200390506060816040519080825280601f01601f191660200182016040528015612129576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561216d578051835260209283019201612155565b50855184518101855292509050808201602086015b8183101561219a578051835260209283019201612182565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310612209576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116122635782840160f81b8160008151811061224557fe5b60200101906001600160f81b031916908160001a9053509050611da0565b606061226e85612056565b90508381510160370160f81b8260008151811061228757fe5b60200101906001600160f81b031916908160001a9053506122a8828261213c565b95945050505050565b80516000906122c257506000611c39565b6020820151805160001a9060c08210156122e157600092505050611c39565b5060019392505050565b8051600090811a6080811015612305576000915050611c39565b60b8811080612320575060c08110801590612320575060f881105b1561232f576001915050611c39565b60c08110156123435760b519019050611c39565b60f519019050611c39565b80516000908190811a6080811015612369576001915061247a565b60b881101561237e57607e198101915061247a565b60c08110156123f857600060b78203600186019550806020036101000a8651049150600181018201935050808310156123f2576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b5061247a565b60f881101561240d5760be198101915061247a565b600060f78203600186019550806020036101000a865104915060018101820193505080831015612478576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806124c96124d6565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d69736d61746368746865206d6573736167652073656e646572206d7573742062652076616c696461746f7253657420636f6e7472616374746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746368746865206d697364656d65616e6f725468726573686f6c64206f7574206f662072616e6765746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d6573736167652073656e646572206d7573742062652074686520626c6f636b2070726f647563657274686520636f6e7472616374206e6f7420696e69742079657400000000000000a264697066735822122073e63503ac4253c326fb17904c6564f8471e21693509513fe7dc5277fcd239a364736f6c63430006040033", + Code: planck.ChapelSlashContract, }, { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "6080604052600436106103c75760003560e01c806396713da9116101f2578063c81b16621161010d578063f0148472116100a0578063fc1a598f1161006f578063fc1a598f14610f25578063fc3e590814610b85578063fd6a687914610f58578063ff9c0027146107fd5761040f565b8063f014847214610ed1578063f9a2bbc714610ee6578063fa9e915914610efb578063fb063e8f14610f105761040f565b8063dc927faf116100dc578063dc927faf14610e5f578063e1c7392a14610e74578063e8f35cea14610e89578063ebf71d5314610ebc5761040f565b8063c81b166214610d8a578063c8509d8114610d9f578063cf41984414610e24578063d9e6dae91461077f5761040f565b8063aa7415f511610185578063b9fd21e311610154578063b9fd21e314610cfa578063ba35ead614610d0f578063bbface1f14610d24578063bd46646114610d575761040f565b8063aa7415f514610b9a578063ab51bb9614610be1578063ac43175114610bf6578063b99328c514610cc15761040f565b8063a1a11bf5116101c1578063a1a11bf514610b46578063a496fba214610b5b578063a78abc1614610b70578063a7c9f02d14610b855761040f565b806396713da914610ace5780639a854bbd14610ae35780639a99b4f014610af85780639dc0926214610b315761040f565b806359b92789116102e257806371d3086311610275578063831d65d111610244578063831d65d1146109d15780638b87b21f146106d45780638eff336c14610a565780639509b98014610a955761040f565b806371d3086314610968578063727be1f81461097d57806375d47a0a146109a75780637942fd05146109bc5761040f565b80636e056520116102b15780636e056520146108125780636e47b4821461093e57806370fd5bad146107fd578063718a8aa8146109535761040f565b806359b92789146107be5780635d499b1b146107e8578063613684751461077f57806366dea52a146107fd5761040f565b80633fd8b02f1161035a5780634a3acdf4116103295780634a3acdf41461076a5780634bf6c8821461077f57806350432d321461079457806351e80672146107a95761040f565b80633fd8b02f146106ff57806343756e5c1461071457806343a368b914610729578063493279b11461073e5761040f565b8063149d14d911610396578063149d14d9146105a85780632ae45483146105cf5780633d713223146106235780633dffc387146106d45761040f565b80630bee7a67146104145780630e2374a5146104425780631182b87514610473578063122345821461056d5761040f565b3661040f57341561040d576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561042057600080fd5b50610429610f6d565b6040805163ffffffff9092168252519081900360200190f35b34801561044e57600080fd5b50610457610f72565b604080516001600160a01b039092168252519081900360200190f35b34801561047f57600080fd5b506104f86004803603604081101561049657600080fd5b60ff8235169190810190604081016020820135600160201b8111156104ba57600080fd5b8201836020820111156104cc57600080fd5b803590602001918460018302840111600160201b831117156104ed57600080fd5b509092509050610f78565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561053257818101518382015260200161051a565b50505050905090810190601f16801561055f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057957600080fd5b5061040d6004803603604081101561059057600080fd5b506001600160a01b03813581169160200135166110a6565b3480156105b457600080fd5b506105bd6111a0565b60408051918252519081900360200190f35b3480156105db57600080fd5b5061060a600480360360408110156105f257600080fd5b506001600160a01b03813581169160200135166111a6565b6040805192835260208301919091528051918290030190f35b34801561062f57600080fd5b506104576004803603602081101561064657600080fd5b810190602081018135600160201b81111561066057600080fd5b82018360208201111561067257600080fd5b803590602001918460018302840111600160201b8311171561069357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506111ca945050505050565b3480156106e057600080fd5b506106e96111ee565b6040805160ff9092168252519081900360200190f35b34801561070b57600080fd5b506105bd6111f3565b34801561072057600080fd5b506104576111f9565b34801561073557600080fd5b506105bd6111ff565b34801561074a57600080fd5b5061075361120b565b6040805161ffff9092168252519081900360200190f35b34801561077657600080fd5b506105bd611210565b34801561078b57600080fd5b506106e9611216565b3480156107a057600080fd5b506105bd61121b565b3480156107b557600080fd5b50610457611226565b3480156107ca57600080fd5b50610457600480360360208110156107e157600080fd5b503561122c565b3480156107f457600080fd5b506105bd611247565b34801561080957600080fd5b506106e9611250565b61092a6004803603608081101561082857600080fd5b810190602081018135600160201b81111561084257600080fd5b82018360208201111561085457600080fd5b803590602001918460208302840111600160201b8311171561087557600080fd5b919390929091602081019035600160201b81111561089257600080fd5b8201836020820111156108a457600080fd5b803590602001918460208302840111600160201b831117156108c557600080fd5b919390929091602081019035600160201b8111156108e257600080fd5b8201836020820111156108f457600080fd5b803590602001918460208302840111600160201b8311171561091557600080fd5b91935091503567ffffffffffffffff16611255565b604080519115158252519081900360200190f35b34801561094a57600080fd5b5061045761172a565b34801561095f57600080fd5b506106e9611730565b34801561097457600080fd5b506105bd611735565b34801561098957600080fd5b5061092a600480360360208110156109a057600080fd5b503561173b565b3480156109b357600080fd5b506104576117bc565b3480156109c857600080fd5b506106e96117c2565b3480156109dd57600080fd5b5061040d600480360360408110156109f457600080fd5b60ff8235169190810190604081016020820135600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b5090925090506117c7565b348015610a6257600080fd5b5061040d60048036036060811015610a7957600080fd5b508035906001600160a01b036020820135169060400135611910565b348015610aa157600080fd5b5061040d60048036036040811015610ab857600080fd5b506001600160a01b038135169060200135611996565b348015610ada57600080fd5b506106e9611b53565b348015610aef57600080fd5b506105bd611b58565b348015610b0457600080fd5b506105bd60048036036040811015610b1b57600080fd5b506001600160a01b038135169060200135611b64565b348015610b3d57600080fd5b50610457611ca2565b348015610b5257600080fd5b50610457611ca8565b348015610b6757600080fd5b506106e9611cae565b348015610b7c57600080fd5b5061092a611cb3565b348015610b9157600080fd5b506106e9611cbc565b61092a60048036036080811015610bb057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff16611cc1565b348015610bed57600080fd5b50610429611cae565b348015610c0257600080fd5b5061040d60048036036040811015610c1957600080fd5b810190602081018135600160201b811115610c3357600080fd5b820183602082011115610c4557600080fd5b803590602001918460018302840111600160201b83111715610c6657600080fd5b919390929091602081019035600160201b811115610c8357600080fd5b820183602082011115610c9557600080fd5b803590602001918460018302840111600160201b83111715610cb657600080fd5b509092509050612382565b348015610ccd57600080fd5b5061040d60048036036040811015610ce457600080fd5b50803590602001356001600160a01b031661282a565b348015610d0657600080fd5b506105bd6128a0565b348015610d1b57600080fd5b506105bd6128aa565b348015610d3057600080fd5b506105bd60048036036020811015610d4757600080fd5b50356001600160a01b03166128b0565b348015610d6357600080fd5b506105bd60048036036020811015610d7a57600080fd5b50356001600160a01b03166128c2565b348015610d9657600080fd5b506104576128dd565b348015610dab57600080fd5b5061040d60048036036040811015610dc257600080fd5b60ff8235169190810190604081016020820135600160201b811115610de657600080fd5b820183602082011115610df857600080fd5b803590602001918460018302840111600160201b83111715610e1957600080fd5b5090925090506128e3565b348015610e3057600080fd5b5061040d60048036036040811015610e4757600080fd5b506001600160a01b03813581169160200135166129b3565b348015610e6b57600080fd5b50610457612c87565b348015610e8057600080fd5b5061040d612c8d565b348015610e9557600080fd5b506105bd60048036036020811015610eac57600080fd5b50356001600160a01b0316612d2d565b348015610ec857600080fd5b506106e9612d3f565b348015610edd57600080fd5b506106e9612d44565b348015610ef257600080fd5b50610457612d49565b348015610f0757600080fd5b506105bd612d4f565b348015610f1c57600080fd5b506105bd612d55565b348015610f3157600080fd5b506104f860048036036020811015610f4857600080fd5b50356001600160a01b0316612d63565b348015610f6457600080fd5b50610457612e8a565b606481565b61200181565b60005460609060ff16610fc0576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146110005760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff8416600214156110525761104b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9092505050565b905061109f565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146110e65760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611151576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b606181565b61a8c081565b600881565b66071afd498d000081565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661129b576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b8685146112d95760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f5603b913960400191505060405180910390fd5b8683146113175760405162461bcd60e51b815260040180806020018281038252603f8152602001806153c8603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156113635760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be4003406156113a75760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156113da578160200160208202803683370190505b50905060005b848110156114b5576402540be4008b8b838181106113fa57fe5b905060200201358161140857fe5b06156114455760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b61146a8b8b8381811061145457fe5b9050602002013585612fb490919063ffffffff16565b93506114966402540be4008c8c8481811061148157fe5b9050602002013561300e90919063ffffffff16565b8282815181106114a257fe5b60209081029190910101526001016113e0565b506001546114da906114cd908663ffffffff61305016565b849063ffffffff612fb416565b3410156115185760405162461bcd60e51b81526004018080602001828103825260568152602001806155a26056913960600191505060405180910390fd5b611528348463ffffffff6130a916565b91506115326150bc565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036115f6846130eb565b61160b876402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611669578181015183820152602001611651565b50505050905090810190601f1680156116965780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156116b757600080fd5b505af11580156116cb573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461177d5760405162461bcd60e51b81526004018080602001828103825260338152602001806151d66033913960400191505060405180910390fd5b81156117b4576040516120019083156108fc029084906000818181858888f193505050501580156117b2573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff1661180c576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b336120001461184c5760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133a692505050565b61190b565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a15b505050565b33611008146119505760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516001600160a01b03163314611a58576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211611aa6576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054611afc576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff16611baa576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b3361100514611bea5760405162461bcd60e51b815260040180806020018281038252602f815260200180615209602f913960400191505060405180910390fd5b6000478310611bf95747611bfb565b825b9050670de0b6b3a7640000811115611c17576000915050611c9c565b8015611c99576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015611c53573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff16611d07576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b426078018267ffffffffffffffff161015611d535760405162461bcd60e51b81526004018080602001828103825260248152602001806152b86024913960400191505060405180910390fd5b6402540be400340615611d975760405162461bcd60e51b81526004018080602001828103825260408152602001806155f86040913960400191505060405180910390fd5b600080806001600160a01b038816611e7657600154611dbd90879063ffffffff612fb416565b341015611dfb5760405162461bcd60e51b81526004018080602001828103825260618152602001806153426061913960800191505060405180910390fd5b6402540be400860615611e3f5760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611e4f348763ffffffff6130a916565b9050611e66866402540be40063ffffffff61300e16565b6221272160e91b93509150612119565b6001600160a01b038816600090815260036020526040902054925082611ecd5760405162461bcd60e51b81526004018080602001828103825260318152602001806153116031913960400191505060405180910390fd5b600154341015611f0e5760405162461bcd60e51b815260040180806020018281038252603f815260200180615464603f913960400191505060405180910390fd5b506001600160a01b0387166000908152600260205260409020543490600881111580611f595750600881118015611f595750611f57876007198301600a0a63ffffffff61340216565b155b611f945760405162461bcd60e51b815260040180806020018281038252603c815260200180615407603c913960400191505060405180910390fd5b611f9e8782613444565b9250611fa984613484565b15611ff1576305f5e100831015611ff15760405162461bcd60e51b815260040180806020018281038252603a81526020018061525a603a913960400191505060405180910390fd5b60088110158061200b575060088110801561200b57508683115b6120465760405162461bcd60e51b81526004018080602001828103825260258152602001806153a36025913960400191505060405180910390fd5b677ce66c50e284000083111561208d5760405162461bcd60e51b81526004018080602001828103825260358152602001806152dc6035913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b038b16916323b872dd9160648083019260209291908290030181600087803b1580156120e257600080fd5b505af11580156120f6573d6000803e3d6000fd5b505050506040513d602081101561210c57600080fd5b505161211757600080fd5b505b6121216150bc565b6040805160c0810182528581526001600160a01b038b166020820152815160018082528184018452919283019181602001602082028036833750505081526040805160018082528183019092526020928301929091908083019080368337505050815260408051600180825281830190925260209283019290919080830190803683370190505081526020018767ffffffffffffffff1681525090508281604001516000815181106121cf57fe5b6020026020010181815250508781606001516000815181106121ed57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505033816080015160008151811061221f57fe5b6001600160a01b039092166020928302919091019091015261200063f7a251d7600361224a846130eb565b61225f866402540be40063ffffffff61300e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156122bd5781810151838201526020016122a5565b50505050905090810190601f1680156122ea5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561230b57600080fd5b505af115801561231f573d6000803e3d6000fd5b5050604080516001600160a01b038d1681523360208201528082018b90526060810186905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a150600198975050505050505050565b33611007146123c25760405162461bcd60e51b815260040180806020018281038252602e8152602001806154a3602e913960400191505060405180910390fd5b60208114612417576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b81141561251f576020820151670de0b6b3a764000081118015906124c657506402540be4008106155b612517576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612795565b61259387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061358a9050565b1561262f57604080516020601f87018190048102820181019092528581526000916125d69188888083850183828082843760009201919091525061367192505050565b905062093a80811115612627576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612795565b61269b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061358a9050565b1561275857604080516020601f87018190048102820181019092528581526000916126de9188888083850183828082843760009201919091525061367192505050565b905068056bc75e2d631000008110156127285760405162461bcd60e51b81526004018080602001828103825260228152602001806152386022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612795565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b336110081461286a5760405162461bcd60e51b815260040180806020018281038252602381526020018061555f6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b0392909216835260039052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff16612928576040805162461bcd60e51b81526020600482015260196024820152600080516020615582833981519152604482015290519081900360640190fd5b33612000146129685760405162461bcd60e51b815260040180806020018281038252602f815260200180615530602f913960400191505060405180910390fd5b60ff83166003141561189c5761189782828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367692505050565b60085460ff16600214156129ff576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a77576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612ad0576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b43576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612b33576040519150601f19603f3d011682016040523d82523d6000602084013e612b38565b606091505b505080915050612bd6565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612ba657600080fd5b5087f1158015612bba573d6000803e3d6000fd5b50505050506040513d6020811015612bd157600080fd5b505190505b80612c28576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b60005460ff1615612ce5576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612df357828160ff1681518110612dc757fe5b01602001516001600160f81b03191615612de657600190910190612deb565b612df3565b600101612dac565b5060608160ff166040519080825280601f01601f191660200182016040528015612e24576020820181803683370190505b50905060005b8260ff168160ff161015612e8057838160ff1681518110612e4757fe5b602001015160f81c60f81b828260ff1681518110612e6157fe5b60200101906001600160f81b031916908160001a905350600101612e2a565b5095945050505050565b61100481565b6060612e9a615108565b6000612ea584613774565b9150915080612efb576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f06836138b3565b905063ffffffff811615612f9a576040808401516020808601516001600160a01b03166000908152600290915291822054612f419190613444565b9050612f4b61513d565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff168152509050612f8e81613c19565b955050505050506111e9565b505060408051600081526020810190915291506111e99050565b600082820183811015611c99576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cf5565b60008261305f57506000611c9c565b8282028284828161306c57fe5b0414611c995760405162461bcd60e51b81526004018080602001828103825260218152602001806154436021913960400191505060405180910390fd5b6000611c9983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d97565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613106575050835190915061312890613df1565b8160008151811061313557fe5b602002602001018190525061315683602001516001600160a01b0316613e04565b8160018151811061316357fe5b6020026020010181905250600083604001515190506060816040519080825280602002602001820160405280156131ae57816020015b60608152602001906001900390816131995790505b50905060005b828110156131fb576131dc866040015182815181106131cf57fe5b6020026020010151613df1565b8282815181106131e857fe5b60209081029190910101526001016131b4565b5061320581613e27565b8360028151811061321257fe5b602002602001018190525060608260405190808252806020026020018201604052801561325357816020015b606081526020019060019003908161323e5790505b50905060005b838110156132a95761328a8760600151828151811061327457fe5b60200260200101516001600160a01b0316613e04565b82828151811061329657fe5b6020908102919091010152600101613259565b506132b381613e27565b846003815181106132c057fe5b602002602001018190525060608360405190808252806020026020018201604052801561330157816020015b60608152602001906001900390816132ec5790505b50905060005b84811015613341576133228860800151828151811061327457fe5b82828151811061332e57fe5b6020908102919091010152600101613307565b5061334b81613e27565b8560048151811061335857fe5b602002602001018190525061337a8760a0015167ffffffffffffffff16613df1565b8560058151811061338757fe5b602002602001018190525061339b85613e27565b979650505050505050565b6133ae615164565b60006133b983613eb1565b91509150806133f95760405162461bcd60e51b81526004018080602001828103825260248152602001806154d16024913960400191505060405180910390fd5b61190b8261407c565b6000611c9983836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250614500565b6000600882111561346d57613466836007198401600a0a63ffffffff61300e16565b9050611c9c565b611c99836008849003600a0a63ffffffff61305016565b604080516020808252818301909252600091606091906020820181803683375050506020810184905290506000805b60208160ff1610156134fa57828160ff16815181106134ce57fe5b01602001516001600160f81b031916156134ed576001909101906134f2565b6134fa565b6001016134b3565b50600760ff82161015613512576000925050506111e9565b816005820360ff168151811061352457fe5b6020910101516001600160f81b031916602d60f81b14613549576000925050506111e9565b816001820360ff168151811061355b57fe5b6020910101516001600160f81b031916604d60f81b14613580576000925050506111e9565b5060019392505050565b6000816040516020018082805190602001908083835b602083106135bf5780518252601f1990920191602091820191016135a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b6020831061362d5780518252601f19909201916020918201910161360e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b61367e6150bc565b600061368983614562565b91509150806136c95760405162461bcd60e51b81526004018080602001828103825260248152602001806152946024913960400191505060405180910390fd5b6136d1615164565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b8460400151518110156137525761372f8560400151828151811061372157fe5b6020026020010151836147c6565b8560400151828151811061373f57fe5b6020908102919091010152600101613701565b50608084015160408301526005606083015261376d8261407c565b5050505050565b61377c615108565b6000613786615108565b61378e61519b565b61379f61379a866147ff565b614824565b90506000805b6137ae8361486e565b156138a657806137d0576137c96137c48461488f565b6148dd565b845261389e565b80600114156137fd576137ea6137e58461488f565b614994565b6001600160a01b0316602085015261389e565b806002141561381c576138126137c48461488f565b604085015261389e565b8060031415613844576138316137e58461488f565b6001600160a01b0316606085015261389e565b806004141561386c576138596137e58461488f565b6001600160a01b0316608085015261389e565b8060051415613899576138816137c48461488f565b67ffffffffffffffff1660a08501526001915061389e565b6138a6565b6001016137a5565b5091935090915050915091565b60208101516000906001600160a01b03166139f7578160a0015167ffffffffffffffff164211156138e6575060016111e9565b81604001514710156138fa575060036111e9565b613903826149ae565b61397857606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461395e576040519150601f19603f3d011682016040523d82523d6000602084013e613963565b606091505b50509050806139765750600490506111e9565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006111e9565b8160a0015167ffffffffffffffff16421115613a15575060016111e9565b81516020808401516001600160a01b031660009081526003909152604090205414613a42575060026111e9565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a9257600080fd5b5086fa158015613aa6573d6000803e3d6000fd5b50505050506040513d6020811015613abd57600080fd5b50516040840151909150811015613ad85750600390506111e9565b613ae1836149ae565b613b9857600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b5657600080fd5b5087f1158015613b6a573d6000803e3d6000fd5b50505050506040513d6020811015613b8157600080fd5b5051905080613b965750600591506111e99050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506111e9565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c345750508351909150613c5690613df1565b81600081518110613c6357fe5b6020026020010181905250613c7b8360200151613df1565b81600181518110613c8857fe5b6020026020010181905250613ca983604001516001600160a01b0316613e04565b81600281518110613cb657fe5b6020026020010181905250613cd4836060015163ffffffff16613df1565b81600381518110613ce157fe5b602002602001018190525061109f81613e27565b60008183613d815760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d46578181015183820152602001613d2e565b50505050905090810190601f168015613d735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8d57fe5b0495945050505050565b60008184841115613de95760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b505050900390565b6060611c9c613dff83614b1c565b614c02565b60408051600560a21b831860148201526034810190915260609061109f81614c02565b6060815160001415613e4857506040805160008152602081019091526111e9565b606082600081518110613e5757fe5b602002602001015190506000600190505b8351811015613e9857613e8e82858381518110613e8157fe5b6020026020010151614c54565b9150600101613e68565b5061109f613eab825160c060ff16614cd1565b82614c54565b613eb9615164565b6000613ec3615164565b613ecb61519b565b613ed761379a866147ff565b90506000805b613ee68361486e565b156138a65780613f0c57613efc6137e58461488f565b6001600160a01b03168452614074565b8060011415613fad576060613f28613f238561488f565b614dc9565b90508051604051908082528060200260200182016040528015613f55578160200160208202803683370190505b50602086015260005b8151811015613fa657613f83828281518110613f7657fe5b60200260200101516148dd565b86602001518281518110613f9357fe5b6020908102919091010152600101613f5e565b5050614074565b806002141561404f576060613fc4613f238561488f565b90508051604051908082528060200260200182016040528015613ff1578160200160208202803683370190505b50604086015260005b8151811015613fa65761401f82828151811061401257fe5b6020026020010151614994565b8660400151828151811061402f57fe5b6001600160a01b0390921660209283029190910190910152600101613ffa565b8060031415613899576140646137c48461488f565b63ffffffff166060850152600191505b600101613edd565b80516001600160a01b03166142a65760005b8160200151518110156142a0576000826040015182815181106140ad57fe5b60200260200101516001600160a01b0316612710846020015184815181106140d157fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614119576040519150601f19603f3d011682016040523d82523d6000602084013e61411e565b606091505b50509050806141e1577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415d57fe5b60200260200101518560200151858151811061417557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a1614297565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061421757fe5b60200260200101518560200151858151811061422f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161408e565b506144fd565b60005b8160200151518110156144fb57600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142de57fe5b6020026020010151866020015186815181106142f657fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434d57600080fd5b5087f1158015614361573d6000803e3d6000fd5b50505050506040513d602081101561437857600080fd5b50519050801561443c577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b857fe5b6020026020010151856020015185815181106143d057fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144f2565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061447257fe5b60200260200101518560200151858151811061448a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a9565b505b50565b6000818361454f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d46578181015183820152602001613d2e565b5082848161455957fe5b06949350505050565b61456a6150bc565b60006145746150bc565b61457c61519b565b61458861379a866147ff565b90506000805b6145978361486e565b156138a657806145b4576145ad6137c48461488f565b84526147be565b80600114156145dc576145c96137e58461488f565b6001600160a01b031660208501526147be565b806002141561466b5760606145f3613f238561488f565b90508051604051908082528060200260200182016040528015614620578160200160208202803683370190505b50604086015260005b815181101561466457614641828281518110613f7657fe5b8660400151828151811061465157fe5b6020908102919091010152600101614629565b50506147be565b8060031415614700576060614682613f238561488f565b905080516040519080825280602002602001820160405280156146af578160200160208202803683370190505b50606086015260005b8151811015614664576146d082828151811061401257fe5b866060015182815181106146e057fe5b6001600160a01b03909216602092830291909101909101526001016146b8565b8060041415614795576060614717613f238561488f565b90508051604051908082528060200260200182016040528015614744578160200160208202803683370190505b50608086015260005b81518110156146645761476582828151811061401257fe5b8660800151828151811061477557fe5b6001600160a01b039092166020928302919091019091015260010161474d565b8060051415613899576147aa6137c48461488f565b67ffffffffffffffff1660a0850152600191505b60010161458e565b600060088211156147e857613466836007198401600a0a63ffffffff61305016565b611c99836008849003600a0a63ffffffff61300e16565b6148076151bb565b506040805180820190915281518152602082810190820152919050565b61482c61519b565b61483582614e9a565b61483e57600080fd5b600061484d8360200151614eca565b60208085015160408051808201909152868152920190820152915050919050565b60006148786151bb565b505080518051602091820151919092015191011190565b6148976151bb565b6148a08261486e565b6148a957600080fd5b602082015160006148b982614f2d565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906148f257508151602110155b6148fb57600080fd5b600061490a8360200151614eca565b90508083600001511015614965576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b82516020808501518301805192849003929183101561498b57826020036101000a820491505b50949350505050565b80516000906015146149a557600080fd5b611c9c826148dd565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149e75750600554155b15614a295760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b0316600090815260069091526040902054801580614a575750808360400151105b15614a665760009150506111e9565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614aac9163ffffffff612fb416565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614b6057506018614b84565b6fffffffffffffffffffffffffffffffff198416614b8057506010614b84565b5060005b6020811015614bba57818181518110614b9957fe5b01602001516001600160f81b03191615614bb257614bba565b600101614b84565b60008160200390506060816040519080825280601f01601f191660200182016040528015614bef576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614c345750607f60f81b82600081518110614c2257fe5b01602001516001600160f81b03191611155b15614c405750806111e9565b611c9c614c528351608060ff16614cd1565b835b6060806040519050835180825260208201818101602087015b81831015614c85578051835260209283019201614c6d565b50855184518101855292509050808201602086015b81831015614cb2578051835260209283019201614c9a565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d21576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614d7b5782840160f81b81600081518110614d5d57fe5b60200101906001600160f81b031916908160001a9053509050611c9c565b6060614d8685614b1c565b90508381510160370160f81b82600081518110614d9f57fe5b60200101906001600160f81b031916908160001a905350614dc08282614c54565b95945050505050565b6060614dd482614e9a565b614ddd57600080fd5b6000614de883615060565b9050606081604051908082528060200260200182016040528015614e2657816020015b614e136151bb565b815260200190600190039081614e0b5790505b5090506000614e388560200151614eca565b60208601510190506000805b84811015614e8f57614e5583614f2d565b9150604051806040016040528083815260200184815250848281518110614e7857fe5b602090810291909101015291810191600101614e44565b509195945050505050565b8051600090614eab575060006111e9565b6020820151805160001a9060c0821015613580576000925050506111e9565b8051600090811a6080811015614ee45760009150506111e9565b60b8811080614eff575060c08110801590614eff575060f881105b15614f0e5760019150506111e9565b60c0811015614f225760b5190190506111e9565b60f5190190506111e9565b80516000908190811a6080811015614f485760019150615059565b60b8811015614f5d57607e1981019150615059565b60c0811015614fd757600060b78203600186019550806020036101000a865104915060018101820193505080831015614fd1576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50615059565b60f8811015614fec5760be1981019150615059565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615057576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090615071575060006111e9565b600080905060006150858460200151614eca565b602085015185519181019250015b808210156150b3576150a482614f2d565b60019093019290910190615093565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b60405180604001604052806151ae6151bb565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c466f72206d696e69546f6b656e2c20746865207472616e7366657220616d6f756e74206d757374206e6f74206265206c657373207468616e2031756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e7474686520636f6e747261637420686173206e6f74206265656e20626f756e6420746f20616e79206265703220746f6b656e726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e736665724f757420424e4220616d6f756e7420616e64206d696e696d756d2072656c6179466565616d6f756e7420697320746f6f206c617267652c2075696e74323536206f766572666c6f774c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e20746865206d696e696d756d2072656c6179466565746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea2646970667358221220ef72e8713245ba000d1e9efd85d005317b64710a26d7b67a7649bda481a927d064736f6c63430006040033", + Code: planck.ChapelTokenHubContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b610409612a36565b6103a6612a3e565b6103e5612a43565b6103e5612a49565b610423612a4f565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b509092509050612a58565b61063d60048036036020811015610a9657600080fd5b503560ff1661351c565b610409613537565b6103e561355b565b610599613561565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff166137b5565b61070c6137d5565b6104096137f4565b6103e56137fa565b610599613800565b61063d60048036036020811015610b1d57600080fd5b503560ff16613bb7565b610599613bd2565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613df1565b6103e5613f34565b6103a6613f3a565b6103e5613f3f565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613f45565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f8d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f8d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61408a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614108565b50905061138681838851614112565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d89083614153565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b739fb29aac15b9a4b7f17c3385939b007540f4d79133148061184257507337b8516a0f88e65d677229b402ec6c1e0e33300433145b61187d5760405162461bcd60e51b815260040180806020018281038252602a8152602001806149f0602a913960400191505060405180910390fd5b60ff8116600090815260086020526040902054829082906001600160401b0390811690831681146118ed576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561196257600080fd5b505afa158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50516119c95760405162461bcd60e51b8152600401808060200182810382526023815260200180614a6c6023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a33576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a9c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611aee5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b32576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c766110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c1f57600080fd5b505afa158015611c33573d6000803e3d6000fd5b505050506040513d6020811015611c4957600080fd5b505160408051808201909152600381526269626360e81b6020820152611c6f8e8e613f45565b8585613f8d565b611cbe576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d0a57600080fd5b505afa158015611d1e573d6000803e3d6000fd5b505050506040513d6020811015611d3457600080fd5b505190508b8b600080806060611d4989614438565b935093509350935083611e0b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dc3578181015183820152602001611dab565b50505050905090810190601f168015611df05780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a26565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123905760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611ed8578181015183820152602001611ec0565b50505050905090810190601f168015611f055780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f2557600080fd5b505af192505050801561200957506040513d6000823e601f3d908101601f191682016040526020811015611f5857600080fd5b8101908080516040519392919084600160201b821115611f7757600080fd5b908301906020820185811115611f8c57600080fd5b8251600160201b811182820188101715611fa557600080fd5b82525081516020918201929091019080838360005b83811015611fd2578181015183820152602001611fba565b50505050905090810190601f168015611fff5780820380516001836020036101000a031916815260200191505b5060405250505060015b61231b576040516000815260443d1015612025575060006120c0565b60046000803e60005160e01c6308c379a081146120465760009150506120c0565b60043d036004833e81513d60248201116001600160401b0382111715612071576000925050506120c0565b80830180516001600160401b038111156120925760009450505050506120c0565b8060208301013d86018111156120b0576000955050505050506120c0565b601f01601f191660405250925050505b806120cb57506121dd565b60ff8716600090815260076020526040812054612102916001600160401b039091169089906120fd906002908861131c565b6144e8565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561219d578181015183820152602001612185565b50505050905090810190601f1680156121ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612316565b3d808015612207576040519150601f19603f3d011682016040523d82523d6000602084013e61220c565b606091505b5060ff871660009081526007602052604081205461223f916001600160401b039091169089906120fd906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156122da5781810151838201526020016122c2565b50505050905090810190601f1680156123075780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61238a565b8051156123885760ff8716600090815260076020526040812054612354916001600160401b039091169089906120fd906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b5061295e565b60ff8316600114156126345760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561241a578181015183820152602001612402565b50505050905090810190601f1680156124475780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561246757600080fd5b505af1925050508015612478575060015b61238a576040516000815260443d10156124945750600061252f565b60046000803e60005160e01c6308c379a081146124b557600091505061252f565b60043d036004833e81513d60248201116001600160401b03821117156124e05760009250505061252f565b80830180516001600160401b0381111561250157600094505050505061252f565b8060208301013d860181111561251f5760009550505050505061252f565b601f01601f191660405250925050505b8061253a575061259f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561219d578181015183820152602001612185565b3d8080156125c9576040519150601f19603f3d011682016040523d82523d6000602084013e6125ce565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156122da5781810151838201526020016122c2565b60ff83166002141561295e5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126be5781810151838201526020016126a6565b50505050905090810190601f1680156126eb5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561270b57600080fd5b505af192505050801561271c575060015b61295c576040516000815260443d1015612738575060006127d3565b60046000803e60005160e01c6308c379a081146127595760009150506127d3565b60043d036004833e81513d60248201116001600160401b0382111715612784576000925050506127d3565b80830180516001600160401b038111156127a55760009450505050506127d3565b8060208301013d86018111156127c3576000955050505050506127d3565b601f01601f191660405250925050505b806127de5750612887565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561284757818101518382015260200161282f565b50505050905090810190601f1680156128745780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061295c565b3d8080156128b1576040519150601f19603f3d011682016040523d82523d6000602084013e6128b6565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612920578181015183820152602001612908565b50505050905090810190601f16801561294d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612990575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b1580156129f057600080fd5b505af1158015612a04573d6000803e3d6000fd5b505050506040513d6020811015612a1a57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a985760405162461bcd60e51b815260040180806020018281038252602e815260200180614978602e913960400191505060405180910390fd5b600b5460ff1615612adc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b4584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146829050565b15612be057604080516020601f8401819004810282018101909252828152600091612b889185858083850183828082843760009201919091525061476992505050565b90506127108111158015612b9d5750600a8110155b612bd85760405162461bcd60e51b8152600401808060200182810382526032815260200180614a1a6032913960400191505060405180910390fd5b60015561348a565b612c4984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146829050565b15612dd157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612ccc5760405162461bcd60e51b815260040180806020018281038252605a815260200180614891605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612cea8161476e565b612d3b576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061348a565b612e3e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146829050565b15612f6f57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ec15760405162461bcd60e51b815260040180806020018281038252604a8152602001806149a6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f65576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061348a565b612fd384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146829050565b1561310857600281146130175760405162461bcd60e51b815260040180806020018281038252602d81526020018061491f602d913960400191505060405180910390fd5b600061305a600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff16118015613074575060648161ffff16105b6130be576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61316b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146829050565b1561329e57600281146131af5760405162461bcd60e51b815260040180806020018281038252602c81526020018061494c602c913960400191505060405180910390fd5b60006131f2600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff1611801561320c575060648161ffff16105b613255576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b61330984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146829050565b1561344d576002811461334d5760405162461bcd60e51b81526004018080602001828103825260348152602001806148eb6034913960400191505060405180910390fd5b6000613390600284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061476992505050565b905060008161ffff161180156133aa575060648161ffff16105b6133fb576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561348a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135a6576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b1580156135e957600080fd5b505afa1580156135fd573d6000803e3d6000fd5b505050506040513d602081101561361357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561365457600080fd5b505afa158015613668573d6000803e3d6000fd5b505050506040513d602081101561367e57600080fd5b505190508061368b575060155b60008211801561369b5750808211155b6136da576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613721576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613772907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff1615613858576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c17576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cc557600080fd5b505afa158015613cd9573d6000803e3d6000fd5b505050506040513d6020811015613cef57600080fd5b5051905080613cfc575060155b600082118015613d0c5750808211155b613d4b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d8f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613de1907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614153565b905080156137b0576137b061408a565b60005460ff16613e36576040805162461bcd60e51b81526020600482015260196024820152600080516020614a4c833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e935760405162461bcd60e51b81526004018080602001828103825260318152602001806148606031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613ef89284928a926120fd92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f9c57506000614081565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613fd3576020820181803683370190505b5090506000613fe182614774565b602080890151825201905086600080613ff989614108565b8086526020909501949092509050614012828583614112565b9283019261401f88614108565b8086526020909501949092509050614038828583614112565b9283018a81526020019261404b87614108565b909250905061405b828583614112565b50835160200161406961477a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff16156140ce576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614132578251825260209283019290910190601f1901614113565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661421c57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061424d575082816001015414155b15614320576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b031602178355600180840186905582519182019092523381526142c291600284019190614798565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a36143d4565b60005b60028201548110156143ab57336001600160a01b031682600201828154811061434857fe5b6000918252602090912001546001600160a01b031614156143a3576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614323565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161442e576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff19168155600181018290559061442260028301826147fd565b50506001915050613f87565b5060009392505050565b600080600060606021855110156144685750506040805160008082526020820190925290925082915081906144e1565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144b3576020820181803683370190505b50905060006144c182614108565b5090506144d3858260218d5103614112565b506001975091955093509150505b9193509193565b600b5460ff161561452c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60025443111561456b576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ac565b600380546001908101918290555410156145ac576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561464257818101518382015260200161462a565b50505050905090810190601f16801561466f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146b75780518252601f199092019160209182019101614698565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147255780518252601f199092019160209182019101614706565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b8280548282559060005260206000209081019282156147ed579160200282015b828111156147ed57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147b8565b506147f992915061481e565b5090565b508054600082559060005260206000209081019061481b9190614845565b50565b61484291905b808211156147f95780546001600160a01b0319168155600101614824565b90565b61484291905b808211156147f9576000815560010161484b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206d73672073656e646572206973206e6f7420612077686974656c6162656c2072656c61796572746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a264697066735822122026f49f5b5d33882588ea53bac8a0f154c6a6d2ff32bdfdb114fc8cfcf13f710f64736f6c63430006040033", + Code: planck.ChapelCrossChainContract, }, { ContractAddr: common.HexToAddress(StakingContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/78e13b1d3a5a1b08c9208af94a9b14fc1efda213", - Code: "6080604052600436106103855760003560e01c806370fd5bad116101d1578063b88a802f11610102578063d7ecfcb6116100a0578063f9a2bbc71161006f578063f9a2bbc714610c40578063fa03f79714610c55578063fc3e590814610671578063fd6a687914610c6a5761038c565b8063d7ecfcb614610819578063dc927faf14610bd1578063edc1a5b014610be6578063f45fd80b14610bfb5761038c565b8063c2117d82116100dc578063c2117d8214610ae7578063c81b166214610afc578063c8509d8114610b11578063d61b9b9314610b965761038c565b8063b88a802f14610a82578063baaafd3b14610a97578063bf8546ca14610aac5761038c565b806396713da91161016f578063a78abc1611610149578063a78abc1614610964578063ab51bb961461098d578063ac431751146109a2578063b14315df14610a6d5761038c565b806396713da9146109255780639dc092621461093a578063a1a11bf51461094f5761038c565b806375d47a0a116101ab57806375d47a0a146108765780637942fd051461088b578063831d65d1146108a057806392b888a41461061d5761038c565b806370fd5bad14610819578063718a8aa81461082e57806375aca593146108435761038c565b80633fdfa7e4116102b6578063552aaf931161025457806369b635b61161022357806369b635b6146107865780636bd8f8041461079b5780636e47b482146107d15780636fb7f7eb146107e65761038c565b8063552aaf93146107325780635d17c8bd146107475780635d499b1b1461075c57806362b171d2146107715761038c565b8063493279b111610290578063493279b1146106b05780634bf6c882146106dc5780634d99dd16146106f157806351e806721461071d5761038c565b80633fdfa7e414610671578063413d9c3a1461068657806343756e5c1461069b5761038c565b806311fe9ec6116103235780632fdeb111116102fd5780632fdeb11114610632578063333ad3e71461064757806334c433541461065c5780633dffc3871461061d5761038c565b806311fe9ec6146105bf578063151817e3146105f257806317c9efb01461061d5761038c565b80630bee7a671161035f5780630bee7a67146104515780630c7957151461047f5780630e2374a5146104945780631182b875146104c55761038c565b8063026e402b1461039157806302985992146103bf578063047636d1146103e65761038c565b3661038c57005b600080fd5b6103bd600480360360408110156103a757600080fd5b506001600160a01b038135169060200135610c7f565b005b3480156103cb57600080fd5b506103d46111bc565b60408051918252519081900360200190f35b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b03166111c2565b6040518082606080838360005b8381101561043e578181015183820152602001610426565b5050505090500191505060405180910390f35b34801561045d57600080fd5b50610466611216565b6040805163ffffffff9092168252519081900360200190f35b34801561048b57600080fd5b506103d461121b565b3480156104a057600080fd5b506104a9611221565b604080516001600160a01b039092168252519081900360200190f35b3480156104d157600080fd5b5061054a600480360360408110156104e857600080fd5b60ff8235169190810190604081016020820135600160201b81111561050c57600080fd5b82018360208201111561051e57600080fd5b803590602001918460018302840111600160201b8311171561053f57600080fd5b509092509050611227565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561058457818101518382015260200161056c565b50505050905090810190601f1680156105b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105cb57600080fd5b506103d4600480360360208110156105e257600080fd5b50356001600160a01b03166113e3565b3480156105fe57600080fd5b506106076113fe565b6040805160ff9092168252519081900360200190f35b34801561062957600080fd5b50610607611403565b34801561063e57600080fd5b506103d4611408565b34801561065357600080fd5b5061046661140e565b34801561066857600080fd5b506103d4611413565b34801561067d57600080fd5b5061060761141e565b34801561069257600080fd5b506103d4611423565b3480156106a757600080fd5b506104a961142a565b3480156106bc57600080fd5b506106c5611430565b6040805161ffff9092168252519081900360200190f35b3480156106e857600080fd5b50610607611435565b6103bd6004803603604081101561070757600080fd5b506001600160a01b03813516906020013561143a565b34801561072957600080fd5b506104a9611a62565b34801561073e57600080fd5b50610607611a68565b34801561075357600080fd5b506103d4611a6d565b34801561076857600080fd5b506103d4611a73565b34801561077d57600080fd5b506103d4611a7c565b34801561079257600080fd5b506103d4611c1c565b6103bd600480360360608110156107b157600080fd5b506001600160a01b03813581169160208101359091169060400135611c22565b3480156107dd57600080fd5b506104a961230b565b3480156107f257600080fd5b506103d46004803603602081101561080957600080fd5b50356001600160a01b0316612311565b34801561082557600080fd5b5061060761232c565b34801561083a57600080fd5b50610607612331565b34801561084f57600080fd5b506103d46004803603602081101561086657600080fd5b50356001600160a01b0316612336565b34801561088257600080fd5b506104a9612351565b34801561089757600080fd5b50610607612357565b3480156108ac57600080fd5b506103bd600480360360408110156108c357600080fd5b60ff8235169190810190604081016020820135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b50909250905061235c565b34801561093157600080fd5b50610607612624565b34801561094657600080fd5b506104a9612629565b34801561095b57600080fd5b506104a961262f565b34801561097057600080fd5b50610979612635565b604080519115158252519081900360200190f35b34801561099957600080fd5b50610466611a68565b3480156109ae57600080fd5b506103bd600480360360408110156109c557600080fd5b810190602081018135600160201b8111156109df57600080fd5b8201836020820111156109f157600080fd5b803590602001918460018302840111600160201b83111715610a1257600080fd5b919390929091602081019035600160201b811115610a2f57600080fd5b820183602082011115610a4157600080fd5b803590602001918460018302840111600160201b83111715610a6257600080fd5b50909250905061263e565b348015610a7957600080fd5b50610607612dd0565b348015610a8e57600080fd5b506103d4612dd5565b348015610aa357600080fd5b506103d4612f72565b348015610ab857600080fd5b506103d460048036036040811015610acf57600080fd5b506001600160a01b0381358116916020013516612f7d565b348015610af357600080fd5b506103d4612faa565b348015610b0857600080fd5b506104a9612fb0565b348015610b1d57600080fd5b506103bd60048036036040811015610b3457600080fd5b60ff8235169190810190604081016020820135600160201b811115610b5857600080fd5b820183602082011115610b6a57600080fd5b803590602001918460018302840111600160201b83111715610b8b57600080fd5b509092509050612fb6565b348015610ba257600080fd5b506103d460048036036040811015610bb957600080fd5b506001600160a01b03813581169160200135166131d9565b348015610bdd57600080fd5b506104a9613204565b348015610bf257600080fd5b506103d461320a565b348015610c0757600080fd5b506103d460048036036060811015610c1e57600080fd5b506001600160a01b038135811691602081013582169160409091013516613217565b348015610c4c57600080fd5b506104a961324c565b348015610c6157600080fd5b506103d4613252565b348015610c7657600080fd5b506104a9613258565b60105460ff1660021415610ccb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015610cf357506402540be4008106155b610d44576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16610d87576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600354821015610dde576040805162461bcd60e51b815260206004820152601760248201527f696e76616c69642064656c656761746520616d6f756e74000000000000000000604482015290519081900360640190fd5b600154610df290839063ffffffff61325e16565b341015610e3d576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f756768206d73672076616c756560601b604482015290519081900360640190fd5b601154604051600091339183818181818787f1925050503d8060008114610e80576040519150601f19603f3d011682016040523d82523d6000602084013e610e85565b606091505b5050905080610ecf576040805162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103232b632b3b0ba37b960791b604482015290519081900360640190fd5b6000610ee6846402540be40063ffffffff6132bf16565b90506000610efa348663ffffffff61330116565b90506000610f136002548361330190919063ffffffff16565b6040805160038082526080820190925291925060609190816020015b6060815260200190600190039081610f2f579050509050610f4f33613343565b81600081518110610f5c57fe5b6020026020010181905250610f79886001600160a01b0316613343565b81600181518110610f8657fe5b6020026020010181905250610f9a84613366565b81600281518110610fa757fe5b60200260200101819052506060610fc76001610fc284613379565b613403565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600b909352912080549091019055905061200063f7a251d7601083611025876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561108357818101518382015260200161106b565b50505050905090810190601f1680156110b05780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b5061100492506108fc915061110290508a8663ffffffff61325e16565b6040518115909202916000818181858888f1935050505015801561112a573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f1935050505015801561115b573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927f5f32ed2794e2e72d19e3cb2320e8820a499c4204887372beba51f5e61c040867929081900390910190a350506010805460ff1916600117905550505050505050565b60035481565b6111ca615193565b6111d2615193565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b606033612000146112695760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166112ac576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6112b46151b1565b6112fb6112f685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b6134ae565b9050600061131061130b836134f8565b613546565b90506000606060ff8316600414156113355761132b846135fd565b909250905061138c565b60ff83166005141561134a5761132b846137dd565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff8216156113d8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff1660021415611486576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be40034061580156114ae57506402540be4008106155b6114ff576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611542576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611590576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b60035482101561164b573360009081526005602090815260408083206001600160a01b03871684529091529020548214611602576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b600254821161164b576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156116c3576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461171e91859063ffffffff6139f916565b905080156117665760025481116117665760405162461bcd60e51b81526004018080602001828103825260258152602001806153766025913960400191505060405180910390fd5b600061177d846402540be40063ffffffff6132bf16565b600254909150349060009061179990839063ffffffff61330116565b6040805160038082526080820190925291925060609190816020015b60608152602001906001900390816117b55790505090506117d533613343565b816000815181106117e257fe5b60200260200101819052506117ff886001600160a01b0316613343565b8160018151811061180c57fe5b602002602001018190525061182084613366565b8160028151811061182d57fe5b602002602001018190525060606118486002610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061189942620a8c0063ffffffff61325e16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836118dd876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561193b578181015183820152602001611923565b50505050905090810190601f1680156119685780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561198957600080fd5b505af115801561199d573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156119d0573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015611a01573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff1660021415611acb576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611b32576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b5050905080611bd5576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b60105460ff1660021415611c6e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be4003406158015611c9657506402540be4008106155b611ce7576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611d2a576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b826001600160a01b0316846001600160a01b03161415611d88576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103932b232b632b3b0ba34b7b760611b604482015290519081900360640190fd5b600154341015611dd6576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611e1e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b3360009081526009602090815260408083206001600160a01b03888116855290835281842090871684529091529020544210801590611e8c57503360009081526009602090815260408083206001600160a01b03878116855290835281842090881684529091529020544210155b611edd576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720726564656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b038916825290915291822054611f3891859063ffffffff6139f916565b90508015611f80576002548111611f805760405162461bcd60e51b815260040180806020018281038252602581526020018061527a6025913960400191505060405180910390fd5b6000611f97846402540be40063ffffffff6132bf16565b6002549091503490600090611fb390839063ffffffff61330116565b60408051600480825260a0820190925291925060609190816020015b6060815260200190600190039081611fcf579050509050611fef33613343565b81600081518110611ffc57fe5b6020026020010181905250612019896001600160a01b0316613343565b8160018151811061202657fe5b6020026020010181905250612043886001600160a01b0316613343565b8160028151811061205057fe5b602002602001018190525061206484613366565b8160038151811061207157fe5b6020026020010181905250606061208c6003610fc284613379565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600d90935291208054909101905590506120dd42620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038e81168552908352818420908f16845290915290205561212042620a8c0063ffffffff61325e16565b3360009081526009602090815260408083206001600160a01b038f81168552908352818420908e16845290915290205561200063f7a251d7601083612170876402540be40063ffffffff6132bf16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156121ce5781810151838201526020016121b6565b50505050905090810190601f1680156121fb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561221c57600080fd5b505af1158015612230573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f19350505050158015612263573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f19350505050158015612294573d6000803e3d6000fd5b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167fdb0d03fdfcb145c486c442659e6a341a8828985505097cb5190afcf541e840158b87604051808381526020018281526020019250505060405180910390a450506010805460ff191660011790555050505050505050565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b336120001461239c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff166123df576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6123e76151b1565b6124296112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b905060008060606000805b61243d86613a90565b156124a8578061245a5761245361130b876134f8565b94506124a0565b80600114156124765761246f61130b876134f8565b93506124a0565b806002141561249b5761249061248b876134f8565b613ab1565b9250600191506124a0565b6124a8565b600101612434565b816124ee576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6124f783613b21565b61253a576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125466112f684613489565b9550600061255661130b886134f8565b90506125606151b1565b61256988613a90565b1561258c576125856112f661258061248b8b6134f8565b613489565b90506125cd565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff8216600114156125e9576125e4818888613b75565b612617565b60ff821660021415612600576125e4818888613f2c565b60ff82166003141561134a576125e48188886141f9565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b60005460ff16612695576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b33611007146126d55760405162461bcd60e51b815260040180806020018281038252602e8152602001806152ec602e913960400191505060405180910390fd5b61273684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b6020820152915061455e9050565b1561289c5760208114612790576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916127ce9185858083850183828082843760009201919091525061464592505050565b905060035481106128105760405162461bcd60e51b815260040180806020018281038252602e81526020018061531a602e913960400191505060405180910390fd5b60025481116128505760405162461bcd60e51b815260040180806020018281038252602e815260200180615348602e913960400191505060405180910390fd5b6402540be4008106156128945760405162461bcd60e51b815260040180806020018281038252602c8152602001806152c0602c913960400191505060405180910390fd5b600155612d3e565b61290084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b6020820152915061455e9050565b15612a62576020811461295a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916129989185858083850183828082843760009201919091525061464592505050565b9050806129d65760405162461bcd60e51b81526004018080602001828103825260228152602001806153ca6022913960400191505060405180910390fd5b6001548110612a165760405162461bcd60e51b815260040180806020018281038252602e81526020018061521b602e913960400191505060405180910390fd5b6402540be400810615612a5a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806151ec602f913960400191505060405180910390fd5b600255612d3e565b612ac684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b6020820152915061455e9050565b15612ba85760208114612b20576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612b5e9185858083850183828082843760009201919091525061464592505050565b90506001548111612ba05760405162461bcd60e51b81526004018080602001828103825260318152602001806152496031913960400191505060405180910390fd5b600355612d3e565b612c0a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b6020820152915061455e9050565b15612d015760208114612c64576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091612ca29185858083850183828082843760009201919091525061464592505050565b905060008111612cf9576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612d3e565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff1660021415612e24576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526006602052604090205480612e88576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d8060008114612ede576040519150601f19603f3d011682016040523d82523d6000602084013e612ee3565b606091505b5050905080612f2b576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b3361200014612ff65760405162461bcd60e51b815260040180806020018281038252602f81526020018061539b602f913960400191505060405180910390fd5b60005460ff16613039576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61307882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2192505050565b6130bb576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6130c36151b1565b6131056112f684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348992505050565b9050600061311561130b836134f8565b905061311f6151b1565b61312883613a90565b156131465761313f6112f661258061248b866134f8565b905061318c565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156131a6576131a18161464a565b6131d0565b60ff8216600214156131bb576131a181614864565b60ff82166003141561134a576131a18161498e565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b68056bc75e2d6310000081565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b6000828201838110156132b8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006132b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614af3565b60006132b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139f9565b60408051600560a21b83186014820152603481019091526060906132b881614b58565b6060612fa461337483614bae565b614b58565b606081516000141561339a5750604080516000815260208101909152611211565b6060826000815181106133a957fe5b602002602001015190506000600190505b83518110156133ea576133e0828583815181106133d357fe5b6020026020010151614c94565b91506001016133ba565b506132b86133fd825160c060ff16614d11565b82614c94565b6040805160028082526060828101909352829190816020015b606081526020019060019003908161341c57905050905061343f8460ff16613366565b8160008151811061344c57fe5b602002602001018190525061346083614b58565b8160018151811061346d57fe5b602002602001018190525061348181613379565b949350505050565b6134916151d1565b506040805180820190915281518152602082810190820152919050565b6134b66151b1565b6134bf82614e09565b6134c857600080fd5b60006134d78360200151614e43565b60208085015160408051808201909152868152920190820152915050919050565b6135006151d1565b61350982613a90565b61351257600080fd5b6020820151600061352282614ea6565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061355b57508151602110155b61356457600080fd5b60006135738360200151614e43565b905080836000015110156135ce576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156135f457826020036101000a820491505b50949350505050565b600060606000806000805b61361187613a90565b1561366357826136335761362c613627886134f8565b614fd9565b9150613658565b82600114156136535761364861130b886134f8565b905060019350613658565b613663565b826001019250613608565b836136a9576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156136f357600080fd5b505af1158015613707573d6000803e3d6000fd5b505050506040513d602081101561371d57600080fd5b505190508061374257613734600484846065614ff3565b9650965050505050506137d8565b6001600160a01b03831660009081526006602052604090205461376b908363ffffffff61325e16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b6000606060008060008060005b6137f388613a90565b1561385c578361381057613809613627896134f8565b9250613851565b836001141561382c57613825613627896134f8565b9150613851565b836002141561384c5761384161130b896134f8565b905060019450613851565b61385c565b8360010193506137ea565b846138a2576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156138ec57600080fd5b505af1158015613900573d6000803e3d6000fd5b505050506040513d602081101561391657600080fd5b505190508061393c5761392d600585846065614ff3565b975097505050505050506137d8565b6001600160a01b038085166000818152600760209081526040808320948816835293815283822082905591815260089091522054613980908363ffffffff61325e16565b6001600160a01b0380861660008181526008602090815260409182902094909455805186815290519287169391927f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2929181900390910190a3604080516000808252602082019092529098509650505050505050915091565b60008184841115613a885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a4d578181015183820152602001613a35565b50505050905090810190601f168015613a7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000613a9a6151d1565b505080518051602091820151919092015191011190565b8051606090613abf57600080fd5b6000613ace8360200151614e43565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015613b05576020820181803683370190505b50905060008160200190506135f48487602001510182856150ef565b8051602080830191909120600e546000908152600a9092526040822054808214613b5057600092505050611211565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b613b8788613a90565b15613bf05783613ba457613b9d613627896134f8565b9250613be5565b8360011415613bc057613bb9613627896134f8565b9150613be5565b8360021415613be057613bd561130b896134f8565b905060019450613be5565b613bf0565b836001019350613b7e565b84613c36576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613c4d826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff881660011415613d935760ff871615613cc0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613ce9908263ffffffff61325e16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613d2b908263ffffffff61325e16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a3613f21565b60ff8816613ee5576001600160a01b038416600090815260086020526040902054613dc4908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613e2057600080fd5b505af1158015613e34573d6000803e3d6000fd5b505050506040513d6020811015613e4a57600080fd5b5051613e93576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a3613f21565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613f3e88613a90565b15613fa75783613f5b57613f54613627896134f8565b9250613f9c565b8360011415613f7757613f70613627896134f8565b9150613f9c565b8360021415613f9757613f8c61130b896134f8565b905060019450613f9c565b613fa7565b836001019350613f35565b84613fed576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614004826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156141835760ff871615614077576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546140a0908263ffffffff61330116565b6001600160a01b038086166000908152600460209081526040808320949094556005815283822092871682529190915220546140e2908263ffffffff61330116565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561411b42620a8c0063ffffffff61325e16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a3613f21565b60ff8816613ee5576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a3613f21565b6000806000806000805b61420c89613a90565b156142915784614229576142226136278a6134f8565b9350614286565b84600114156142455761423e6136278a6134f8565b9250614286565b84600214156142615761425a6136278a6134f8565b9150614286565b84600314156142815761427661130b8a6134f8565b905060019550614286565b614291565b846001019450614203565b856142d7576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006142ee826402540be40063ffffffff61513a16565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff8916600114156144c15760ff881615614361576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b03808616600090815260056020908152604080832093881683529290522054614397908263ffffffff61330116565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546143d3908261325e565b6001600160a01b0380871660009081526005602090815260408083209388168352929052205561440c42620a8c0063ffffffff61325e16565b6001600160a01b038087166000908152600960209081526040808320898516845282528083209388168352929052205561444f42620a8c0063ffffffff61325e16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4614552565b60ff8916613ee5576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b602083106145935780518252601f199092019160209182019101614574565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146015780518252601f1990920191602091820191016145e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b61465c86613a90565b156146c5578361467957614672613627876134f8565b92506146ba565b83600114156146955761468e613627876134f8565b91506146ba565b83600214156146b5576146aa61130b876134f8565b9050600194506146ba565b6146c5565b836001019350614653565b8461470b576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000614722826402540be40063ffffffff61513a16565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150614760908263ffffffff61325e16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b1580156147bc57600080fd5b505af11580156147d0573d6000803e3d6000fd5b505050506040513d60208110156147e657600080fd5b505161482f576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b61487686613a90565b156148df57836148935761488c613627876134f8565b92506148d4565b83600114156148af576148a8613627876134f8565b91506148d4565b83600214156148cf576148c461130b876134f8565b9050600194506148d4565b6148df565b83600101935061486d565b84614925576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b6149a187613a90565b15614a2657846149be576149b7613627886134f8565b9350614a1b565b84600114156149da576149d3613627886134f8565b9250614a1b565b84600214156149f6576149ef613627886134f8565b9150614a1b565b8460031415614a1657614a0b61130b886134f8565b905060019550614a1b565b614a26565b846001019450614998565b85614a6c576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b60008183614b425760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613a4d578181015183820152602001613a35565b506000838581614b4e57fe5b0495945050505050565b606081516001148015614b8a5750607f60f81b82600081518110614b7857fe5b01602001516001600160f81b03191611155b15614b96575080611211565b612fa4614ba88351608060ff16614d11565b83614c94565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614bf257506018614c16565b6fffffffffffffffffffffffffffffffff198416614c1257506010614c16565b5060005b6020811015614c4c57818181518110614c2b57fe5b01602001516001600160f81b03191615614c4457614c4c565b600101614c16565b60008160200390506060816040519080825280601f01601f191660200182016040528015614c81576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614cc5578051835260209283019201614cad565b50855184518101855292509050808201602086015b81831015614cf2578051835260209283019201614cda565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614d61576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614dbb5782840160f81b81600081518110614d9d57fe5b60200101906001600160f81b031916908160001a9053509050612fa4565b6060614dc685614bae565b90508381510160370160f81b82600081518110614ddf57fe5b60200101906001600160f81b031916908160001a905350614e008282614c94565b95945050505050565b8051600090614e1a57506000611211565b6020820151805160001a9060c0821015614e3957600092505050611211565b5060019392505050565b8051600090811a6080811015614e5d576000915050611211565b60b8811080614e78575060c08110801590614e78575060f881105b15614e87576001915050611211565b60c0811015614e9b5760b519019050611211565b60f519019050611211565b80516000908190811a6080811015614ec15760019150614fd2565b60b8811015614ed657607e1981019150614fd2565b60c0811015614f5057600060b78203600186019550806020036101000a865104915060018101820193505080831015614f4a576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fd2565b60f8811015614f655760be1981019150614fd2565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fd0576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090601514614fea57600080fd5b612fa482613546565b6000606061500c846402540be40063ffffffff6132bf16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161502857905050905061504b8760ff16613366565b8160008151811061505857fe5b6020026020010181905250615075866001600160a01b0316613343565b8160018151811061508257fe5b602002602001018190525061509685613366565b816002815181106150a357fe5b60200260200101819052506150bd8463ffffffff16613366565b816003815181106150ca57fe5b602002602001018190525060606150e082613379565b94989497509395505050505050565b806150f9576131d4565b5b60208110615119578251825260209283019290910190601f19016150fa565b915181516020939093036101000a6000190180199091169216919091179052565b60008261514957506000612fa4565b8282028284828161515657fe5b04146132b85760405162461bcd60e51b815260040180806020018281038252602181526020018061529f6021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806151c46151d1565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565696e73756666696369656e742062616c616e636520616674657220726564656c6567617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa2646970667358221220de1a90a99417952bd5d4f424161817780a15ff9f30026401fbf3cc2b00ccc44464736f6c63430006040033", + Code: planck.ChapelStakingContract, }, }, } @@ -404,27 +418,27 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "60806040526004361061046c5760003560e01c8063862498821161024a578063c6d3394511610139578063e40716a1116100b6578063f9a2bbc71161007a578063f9a2bbc714610b6b578063fc3e590814610b80578063fccc281314610b95578063fd4ad81f14610baa578063fd6a687914610bd957610473565b8063e40716a114610af9578063eb57e20214610b0e578063eda5868c14610b2e578063f340fa0114610b43578063f92eb86b14610b5657610473565b8063d86222d5116100fd578063d86222d514610a90578063daacdb6614610aa5578063dc927faf14610aba578063e086c7b114610acf578063e1c7392a14610ae457610473565b8063c6d3394514610a3c578063c81b166214610a51578063c8509d811461085f578063d04aa99614610a66578063d68fb56a14610a7b57610473565b8063a5422d5c116101c7578063ad3c9da61161018b578063ad3c9da6146109d0578063aef198a9146109f0578063b7ab4db514610a05578063b8cf4ef114610a27578063bf9f49951461062f57610473565b8063a5422d5c1461095c578063a78abc1614610971578063aaf5eb6814610986578063ab51bb961461099b578063ac431751146109b057610473565b806396713da91161020e57806396713da9146108f35780639dc09262146109085780639fe0f8161461091d578063a0dc275814610932578063a1a11bf51461094757610473565b8063862498821461087f57806388b32f11146108945780638b5ad0c9146108a95780638d19a410146108be5780639369d7de146108de57610473565b80634df6e0c3116103665780636e47b482116102e35780637942fd05116102a75780637942fd05146108205780637a84ca2a1461083557806381650b621461084a578063831d65d11461085f578063853230aa1461080b57610473565b80636e47b482146107b757806370fd5bad146107cc578063718a8aa8146107e157806375d47a0a146107f657806378dfed4a1461080b57610473565b8063565c56b31161032a578063565c56b3146107265780635667515a146107465780635d77156c1461075b57806362b72cf5146107705780636969a25c1461078557610473565b80634df6e0c3146106b25780635192c82c146106c757806351e80672146106dc578063549b03f2146106f157806355614fcc1461070657610473565b8063321d398a116103f45780633dffc387116103b85780633dffc3871461062f57806343756e5c1461065157806345cf9daf14610666578063493279b11461067b5780634bf6c8821461069d57610473565b8063321d398a146105975780633365af3a146105b757806335409f7f146105d75780633b071dcc146105f75780633de0f0d81461061a57610473565b80631182b8751161043b5780631182b875146104fe578063152ad3b81461052b5780631ff180691461054d578063219f22d514610562578063300c35671461057757610473565b806304c4fec61461047857806307a568471461048f5780630bee7a67146104ba5780630e2374a5146104dc57610473565b3661047357005b600080fd5b34801561048457600080fd5b5061048d610bee565b005b34801561049b57600080fd5b506104a4610c60565b6040516104b19190616ef0565b60405180910390f35b3480156104c657600080fd5b506104cf610c66565b6040516104b19190616f1a565b3480156104e857600080fd5b506104f1610c6b565b6040516104b191906162f7565b34801561050a57600080fd5b5061051e6105193660046161dd565b610c71565b6040516104b1919061646e565b34801561053757600080fd5b50610540610ea9565b6040516104b19190616463565b34801561055957600080fd5b506104a4610eb2565b34801561056e57600080fd5b506104cf610eb8565b34801561058357600080fd5b5061048d6105923660046160a6565b610ebd565b3480156105a357600080fd5b506105406105b236600461618a565b611241565b3480156105c357600080fd5b506105406105d236600461618a565b611310565b3480156105e357600080fd5b5061048d6105f236600461607f565b6113c1565b34801561060357600080fd5b5061060c61151a565b6040516104b1929190616379565b34801561062657600080fd5b506104a46117f6565b34801561063b57600080fd5b506106446117fc565b6040516104b19190616f2b565b34801561065d57600080fd5b506104f1611801565b34801561067257600080fd5b506104a4611807565b34801561068757600080fd5b5061069061180d565b6040516104b19190616ee1565b3480156106a957600080fd5b50610644611812565b3480156106be57600080fd5b5061060c611817565b3480156106d357600080fd5b506104a4611995565b3480156106e857600080fd5b506104f161199b565b3480156106fd57600080fd5b506104a46119a1565b34801561071257600080fd5b5061054061072136600461607f565b6119a7565b34801561073257600080fd5b506104a461074136600461607f565b6119dc565b34801561075257600080fd5b50610644611a2d565b34801561076757600080fd5b506104cf611a32565b34801561077c57600080fd5b506104a4611a37565b34801561079157600080fd5b506107a56107a036600461618a565b611a3d565b6040516104b196959493929190616324565b3480156107c357600080fd5b506104f1611aa1565b3480156107d857600080fd5b50610644611aa7565b3480156107ed57600080fd5b50610644611aac565b34801561080257600080fd5b506104f1611ab1565b34801561081757600080fd5b506104a4611ab7565b34801561082c57600080fd5b50610644611abd565b34801561084157600080fd5b506104a4611ac2565b34801561085657600080fd5b506104cf611ac8565b34801561086b57600080fd5b5061048d61087a3660046161dd565b611acd565b34801561088b57600080fd5b506104a4611b2e565b3480156108a057600080fd5b506104a4611b34565b3480156108b557600080fd5b506104a4611b3a565b3480156108ca57600080fd5b506104a46108d936600461607f565b611b40565b3480156108ea57600080fd5b5061048d611b80565b3480156108ff57600080fd5b50610644611c94565b34801561091457600080fd5b506104f1611c99565b34801561092957600080fd5b506104a4611c9f565b34801561093e57600080fd5b506104a4611ca4565b34801561095357600080fd5b506104f1611ca9565b34801561096857600080fd5b5061051e611caf565b34801561097d57600080fd5b50610540611cce565b34801561099257600080fd5b506104a4611cd7565b3480156109a757600080fd5b506104cf611a2d565b3480156109bc57600080fd5b5061048d6109cb36600461612e565b611ce0565b3480156109dc57600080fd5b506104a46109eb36600461607f565b61258c565b3480156109fc57600080fd5b506104a461259e565b348015610a1157600080fd5b50610a1a6125ab565b6040516104b19190616366565b348015610a3357600080fd5b506104a4612697565b348015610a4857600080fd5b506104a4611aa7565b348015610a5d57600080fd5b506104f161269c565b348015610a7257600080fd5b506104a46126a2565b348015610a8757600080fd5b506104a46126a7565b348015610a9c57600080fd5b506104a46126e6565b348015610ab157600080fd5b506104a46126f2565b348015610ac657600080fd5b506104f16126f8565b348015610adb57600080fd5b506104a46126fe565b348015610af057600080fd5b5061048d612703565b348015610b0557600080fd5b506104a46128b2565b348015610b1a57600080fd5b5061048d610b2936600461607f565b6128b8565b348015610b3a57600080fd5b506104cf6129c0565b61048d610b5136600461607f565b6129c5565b348015610b6257600080fd5b506104a4612c4d565b348015610b7757600080fd5b506104f1612c53565b348015610b8c57600080fd5b50610644611c9f565b348015610ba157600080fd5b506104f1612c59565b348015610bb657600080fd5b50610bca610bc536600461618a565b612c5f565b6040516104b193929190616ef9565b348015610be557600080fd5b506104f1612d21565b6000610bf933611b40565b9050600b8181548110610c0857fe5b600091825260209091206001601690920201015460ff16610c445760405162461bcd60e51b8152600401610c3b90616b99565b60405180910390fd5b6000610c4e6126a7565b9050610c5b338383612d27565b505050565b60095481565b606481565b61200181565b60005460609060ff16610c965760405162461bcd60e51b8152600401610c3b9061662d565b3361200014610cb75760405162461bcd60e51b8152600401610c3b90616d78565b600b54610d7557610cc6615d6b565b60015460005b81811015610d7157600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff1916911515919091179055604086015180518794610d4d93600080516020616fc3833981519152909101920190615d9a565b506060820151610d639060038301906013615e14565b505050806001019050610ccc565b5050505b610d7d615e41565b6000610dbe85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f1392505050565b9150915080610dda57610dd160646130cf565b92505050610ea2565b815160009060ff16610dff57610df883602001518460400151613130565b9050610e6e565b825160ff1660011415610e6a57826020015151600114610e4457600080516020616f83833981519152604051610e3490616a80565b60405180910390a1506067610e65565b610df88360200151600081518110610e5857fe5b6020026020010151613d84565b610e6e565b5060655b63ffffffff8116610e935750506040805160008152602081019091529150610ea29050565b610e9c816130cf565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610edc5760405162461bcd60e51b8152600401610c3b90616dc7565b6010544311610efd5760405162461bcd60e51b8152600401610c3b90616789565b60005460ff16610f1f5760405162461bcd60e51b8152600401610c3b9061662d565b600f54610f37576032600f5561100231601155611237565b60006110023168056bc75e2d63100000811115610f6657610f5f81606463ffffffff613efb16565b9150610faf565b601154811115610fa857610f5f6064610f9c600f54610f9060115486613f3d90919063ffffffff16565b9063ffffffff613f7f16565b9063ffffffff613efb16565b5050611237565b6040516309a99b4f60e41b815261100290639a99b4f090610fd6903090869060040161630b565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906161a2565b6110023160115591508161103d575050611237565b6000805b8481101561106b5785858281811061105557fe5b9050602002013582019150806001019050611041565b508061107957505050611237565b6000806000805b8981101561122f578489898381811061109557fe5b905060200201358802816110a557fe5b0493508a8a828181106110b457fe5b90506020020160208101906110c9919061607f565b6001600160a01b038116600090815260046020526040902054909350915081156111e55760006001808403815481106110fe57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561116b57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858660405161115e9190616ef0565b60405180910390a26111df565b60035461117e908663ffffffff613fb916565b6003908155810154611196908663ffffffff613fb916565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906111d6908890616ef0565b60405180910390a25b50611227565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161121e9190616ef0565b60405180910390a25b600101611080565b505050505050505b5050436010555050565b60015460009082106112555750600061130b565b60006001600160a01b03166001838154811061126d57fe5b60009182526020909120600490910201546001600160a01b0316148061129d5750600854158061129d5750600a54155b806112ac575060085460095410155b806112bd57506112bb82611310565b155b806112e657506000600b83815481106112d257fe5b906000526020600020906016020160000154115b806112fa575060016112f66125ab565b5111155b156113075750600061130b565b5060015b919050565b60015460009082106113245750600061130b565b600b548210611361576001828154811061133a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061130b565b6001828154811061136e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156113bb5750600b82815481106113a257fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146113e25760405162461bcd60e51b8152600401610c3b90616e98565b600b546114a0576113f1615d6b565b60015460005b8181101561149c57600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff191691151591909117905560408601518051879461147893600080516020616fc3833981519152909101920190615d9a565b50606082015161148e9060038301906013615e14565b5050508060010190506113f7565b5050505b6001600160a01b038116600090815260046020526040902054806114c45750611517565b6001810390506000600b82815481106114d957fe5b600091825260209091206001601690920201015460ff1690506114fc8383613fde565b80156115055750805b15610c5b576009805460001901905550505b50565b60015460609081906000805b8281101561156d576001818154811061153b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611565576001909101905b600101611526565b5060608160405190808252806020026020018201604052801561159a578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156115d357816020015b60608152602001906001900390816115be5790505b50600b546000945090915084141561174e5760005b8481101561174857600181815481106115fd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611740576001818154811061162d57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061165857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061168557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b505050505082858151811061172e57fe5b60209081029190910101526001909301925b6001016115e8565b506117ea565b60005b848110156117e8576001818154811061176657fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117e0576001818154811061179657fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106117c157fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611751565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c5460609182918061182b575060155b60606118356125ab565b9050606061184282614391565b9050828251116118595790945092506117f2915050565b8383835103101561186b578282510393505b83156118a15760c8430461188783838388880360008a8a6144ff565b61189f8383838888038989038a8b8b8b5103016144ff565b505b6060836040519080825280602002602001820160405280156118cd578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561190657816020015b60608152602001906001900390816118f15790505b50905060005b858110156119875784818151811061192057fe5b602002602001015183828151811061193457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061196057fe5b602002602001015182828151811061197457fe5b602090810291909101015260010161190c565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b038116600090815260046020526040812054806119cf57600091505061130b565b60001901610ea281611310565b6001600160a01b03811660009081526004602052604081205480611a0457600091505061130b565b600180820381548110611a1357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60105481565b60018181548110611a4a57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611aee5760405162461bcd60e51b8152600401610c3b90616d78565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611b2193929190616f39565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611b765760405162461bcd60e51b8152600401610c3b90616d00565b6000190192915050565b600b54611c3e57611b8f615d6b565b60015460005b81811015611c3a57600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff1916911515919091179055604086015180518794611c1693600080516020616fc3833981519152909101920190615d9a565b506060820151611c2c9060038301906013615e14565b505050806001019050611b95565b5050505b600854611c4b5760036008555b600a54611c58576002600a555b6000611c6333611b40565b9050611c6e81611241565b611c8a5760405162461bcd60e51b8152600401610c3b90616a3d565b6115173382614656565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef8152602001616fe36105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611d025760405162461bcd60e51b8152600401610c3b9061662d565b3361100714611d235760405162461bcd60e51b8152600401610c3b90616b06565b611d8d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506146ee9050565b15611e2a5760208114611db25760405162461bcd60e51b8152600401610c3b90616cba565b604080516020601f8401819004810282018101909252828152600091611df09185858083850183828082843760009201919091525061474792505050565b905060648110158015611e065750620186a08111155b611e225760405162461bcd60e51b8152600401610c3b906168e6565b600255612549565b611e8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506146ee9050565b15611f265760208114611eaf5760405162461bcd60e51b8152600401610c3b906164b3565b604080516020601f8401819004810282018101909252828152600091611eed9185858083850183828082843760009201919091525061474792505050565b9050612710811115611f115760405162461bcd60e51b8152600401610c3b906167cb565b6006556007805460ff19166001179055612549565b611f9084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506146ee9050565b1561202a5760208114611fb55760405162461bcd60e51b8152600401610c3b906164ea565b604080516020601f8401819004810282018101909252828152600091611ff39185858083850183828082843760009201919091525061474792505050565b600c5490915080612002575060155b8082106120215760405162461bcd60e51b8152600401610c3b9061683e565b50600855612549565b61209384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506146ee9050565b1561212c57602081146120b85760405162461bcd60e51b8152600401610c3b906165b3565b604080516020601f84018190048102820181019092528281526000916120f69185858083850183828082843760009201919091525061474792505050565b90506000811180156121085750600a81105b6121245760405162461bcd60e51b8152600401610c3b90616e14565b600a55612549565b6121a084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506146ee9050565b1561222f57602081146121c55760405162461bcd60e51b8152600401610c3b90616567565b604080516020601f84018190048102820181019092528281526000916122039185858083850183828082843760009201919091525061474792505050565b9050600d548111156122275760405162461bcd60e51b8152600401610c3b9061695c565b600e55612549565b61229884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506146ee9050565b1561231a57602081146122bd5760405162461bcd60e51b8152600401610c3b90616b54565b604080516020601f84018190048102820181019092528281526000916122fb9185858083850183828082843760009201919091525061474792505050565b600d819055600e5490915081101561231457600d54600e555b50612549565b61237e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506146ee9050565b1561242c57602081146123a35760405162461bcd60e51b8152600401610c3b906165f8565b604080516020601f84018190048102820181019092528281526000916123e19185858083850183828082843760009201919091525061474792505050565b9050600081116124035760405162461bcd60e51b8152600401610c3b9061669b565b60298111156124245760405162461bcd60e51b8152600401610c3b906166e3565b600c55612549565b61249684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506146ee9050565b1561253157602081146124bb5760405162461bcd60e51b8152600401610c3b90616c3d565b604080516020601f84018190048102820181019092528281526000916124f99185858083850183828082843760009201919091525061474792505050565b90506001811015801561250d575060648111155b6125295760405162461bcd60e51b8152600401610c3b906169cb565b600f55612549565b60405162461bcd60e51b8152600401610c3b90616e71565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161257e9493929190616481565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156125da576125c681611310565b156125d2578160010191505b6001016125b5565b50606081604051908082528060200260200182016040528015612607578160200160208202803683370190505b5090506000915060005b8381101561268e5761262281611310565b15612686576001818154811061263457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061265f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612611565b50925050505b90565b601581565b61100281565b603281565b60006126b16125ab565b519050600080600c54116126c65760156126ca565b600c545b9050808211156126d8578091505b816126e257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156127265760405162461bcd60e51b8152600401610c3b90616c06565b61272e615e41565b60006127546040518061062001604052806105ef8152602001616fe36105ef9139612f13565b91509150806127755760405162461bcd60e51b8152600401610c3b90616d37565b60005b82602001515181101561289a5760018360200151828151811061279757fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061286d57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612778565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146128d95760405162461bcd60e51b8152600401610c3b90616e98565b600b54612997576128e8615d6b565b60015460005b8181101561299357600b80546001810182556000919091528351600080516020616fa383398151915260169092029182019081556020808601516000805160206175d28339815191528401805460ff191691151591909117905560408601518051879461296f93600080516020616fc3833981519152909101920190615d9a565b5060608201516129859060038301906013615e14565b5050508060010190506128ee565b5050505b60006129a28261474c565b90506129ad81611241565b156129bc576129bc8282614656565b5050565b606581565b3341146129e45760405162461bcd60e51b8152600401610c3b90616dc7565b60005460ff16612a065760405162461bcd60e51b8152600401610c3b9061662d565b60003411612a265760405162461bcd60e51b8152600401610c3b9061692d565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612a5657506006545b600083118015612a665750600081115b15612b07576000612a83612710610f9c868563ffffffff613f7f16565b90508015612b055760405161dead9082156108fc029083906000818181858888f19350505050158015612aba573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612aea9190616ef0565b60405180910390a1612b02848263ffffffff613f3d16565b93505b505b8115612c05576000600180840381548110612b1e57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612b8b57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612b7e9190616ef0565b60405180910390a2612bff565b600354612b9e908563ffffffff613fb916565b6003908155810154612bb6908563ffffffff613fb916565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612bf6908790616ef0565b60405180910390a25b50612c47565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612c3e9190616ef0565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612c6c57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612d175780601f10612cec57610100808354040283529160200191612d17565b820191906000526020600020905b815481529060010190602001808311612cfa57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612d38575081155b80612d435750600954155b15612d5057506000610ea2565b60096000815460019003919050819055506000612d9b600a54610f9c85610f9c600b8981548110612d7d57fe5b6000918252602090912060169091020154439063ffffffff613f3d16565b90506000600b8581548110612dac57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612e1157600080fd5b505afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4991906161ba565b9150915060009350808310612ec357612e628787613fde565b506040516305bfb49960e41b815261100190635bfb499090612e88908a906004016162f7565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b5050505060019350612ed5565b818310612ed557612ed38761474c565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612f1b615e41565b6000612f25615e41565b612f2d615e65565b612f3e612f39866148ef565b614914565b90506000805b612f4d8361495e565b156130c15780612f7257612f68612f638461497f565b6149cd565b60ff1684526130b9565b80600114156130b4576060612f8e612f898561497f565b614a4d565b90508051604051908082528060200260200182016040528015612fcb57816020015b612fb8615e85565b815260200190600190039081612fb05790505b508560200181905250805160405190808252806020026020018201604052801561300957816020015b6060815260200190600190039081612ff45790505b50604086015260005b81518110156130a957613023615e85565b6060600061304385858151811061303657fe5b6020026020010151614b1e565b92509250925080613063578860009a509a505050505050505050506130ca565b828960200151858151811061307457fe5b6020026020010181905250818960400151858151811061309057fe5b6020026020010181905250505050806001019050613012565b5060019250506130b9565b6130c1565b600101612f44565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816130e957905050905061310f8363ffffffff16614c38565b8160008151811061311c57fe5b6020026020010181905250610ea281614c4b565b600060298351111561316757600080516020616f8383398151915260405161315790616740565b60405180910390a15060666113bb565b60005b83518110156132055760005b818110156131fc5784818151811061318a57fe5b6020026020010151600001516001600160a01b03168583815181106131ab57fe5b6020026020010151600001516001600160a01b031614156131f457600080516020616f838339815191526040516131e19061689b565b60405180910390a16066925050506113bb565b600101613176565b5060010161316a565b506060806132138585614cd5565b60015491935091506000908190815b818110156132985767016345785d8a00006001828154811061324057fe5b9060005260206000209060040201600301541061326257836001019350613290565b60006001828154811061327157fe5b9060005260206000209060040201600301541115613290578260010192505b600101613222565b506060836040519080825280602002602001820160405280156132c5578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156132f4578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613323578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015613352578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613383578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156133b2578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fa57600080fd5b505afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343291906161a2565b905067016345785d8a000081111561347d57600080516020616f8383398151915260405161345f90616bc5565b60405180910390a160689d50505050505050505050505050506113bb565b60005b898110156136ee5767016345785d8a00006001828154811061349e57fe5b9060005260206000209060040201600301541061362357600181815481106134c257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106134f357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061352857fe5b9060005260206000209060040201600301548161354157fe5b066001838154811061354f57fe5b9060005260206000209060040201600301540390506135778382613f3d90919063ffffffff16565b898e8151811061358357fe5b6020026020010181815250506001828154811061359c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e815181106135cd57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106135fa57fe5b6020908102919091010152613615868263ffffffff613fb916565b95508c6001019c50506136e6565b60006001828154811061363257fe5b90600052602060002090600402016003015411156136e6576001818154811061365757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061368857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106136b557fe5b906000526020600020906004020160030154838c815181106136d357fe5b6020026020010181815250508a6001019a505b600101613480565b5060008415613964576002546040516303702b2960e51b815261100491636e056520918891613728918e918e918d914201906004016163e9565b6020604051808303818588803b15801561374157600080fd5b505af193505050508015613772575060408051601f3d908101601f1916820190925261376f9181019061610e565b60015b6138e9576040516000815260443d101561378e57506000613829565b60046000803e60005160e01c6308c379a081146137af576000915050613829565b60043d036004833e81513d60248201116001600160401b03821117156137da57600092505050613829565b80830180516001600160401b038111156137fb576000945050505050613829565b8060208301013d860181111561381957600095505050505050613829565b601f01601f191660405250925050505b806138345750613876565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613868919061646e565b60405180910390a2506138e4565b3d8080156138a0576040519150601f19603f3d011682016040523d82523d6000602084013e6138a5565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040516138da919061646e565b60405180910390a2505b613964565b801561392b577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b708660405161391e9190616ef0565b60405180910390a1613962565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28060405161395990616530565b60405180910390a25b505b8015613b1a5760005b8751811015613b1857600088828151811061398457fe5b6020026020010151905060006001828154811061399d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106139ce57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613a8a5760018281548110613a0f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613a5e57fe5b906000526020600020906004020160030154604051613a7d9190616ef0565b60405180910390a2613b0e565b60018281548110613a9757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613ae657fe5b906000526020600020906004020160030154604051613b059190616ef0565b60405180910390a25b505060010161396d565b505b835115613c645760005b8451811015613c62576000858281518110613b3b57fe5b60200260200101516001600160a01b03166108fc868481518110613b5b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613bf157858281518110613b9157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613bcf57fe5b6020026020010151604051613be49190616ef0565b60405180910390a2613c59565b858281518110613bfd57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613c3b57fe5b6020026020010151604051613c509190616ef0565b60405180910390a25b50600101613b24565b505b5050505050505050505050506000471115613ce0577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613ca89190616ef0565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613cde573d6000803e3d6000fd5b505b60006003819055600555815115613cfb57613cfb8282614f0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d3857600080fd5b505af1158015613d4c573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580613dd55750600180820381548110613db557fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613e1b5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061130b565b600154600554600019820111801590613e715784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061130b565b600580546001908101909155805481906000198601908110613e8f57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506156ed565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615724565b600082613f8e575060006113bb565b82820282848281613f9b57fe5b0414610ea25760405162461bcd60e51b8152600401610c3b90616ac5565b600082820183811015610ea25760405162461bcd60e51b8152600401610c3b90616664565b60008060018381548110613fee57fe5b906000526020600020906004020160030154905060006001808054905003905060016140186125ab565b511161404d5760006001858154811061402d57fe5b9060005260206000209060040201600301819055506000925050506113bb565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516140869190616ef0565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561427357600181600101815481106140c757fe5b9060005260206000209060040201600182815481106140e257fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106141a357fe5b9060005260206000209060160201600b82815481106141be57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054614215938386019390821615610100026000190190911604615eba565b5061422860038281019084016013615f2f565b5090505080600101600460006001848154811061424157fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016140a9565b50600180548061427f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806142d257fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906143046002830182615f59565b614312600383016000615f9d565b50509055600081838161432157fe5b04905080156143855760015460005b8181101561438257826001828154811061434657fe5b906000526020600020906004020160030154016001828154811061436657fe5b6000918252602090912060036004909202010155600101614330565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156143d057816020015b60608152602001906001900390816143bb5790505b50600b5490915083146143e757925061130b915050565b60005b828110156144f657600b60016004600089858151811061440657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061443a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156144d25780601f106144a7576101008083540402835291602001916144d2565b820191906000526020600020905b8154815290600101906020018083116144b557829003601f168201915b50505050508282815181106144e357fe5b60209081029190910101526001016143ea565b50949350505050565b60005b8281101561464c57600082878388016040516020016145229291906162e9565b6040516020818303038152906040528051906020012060001c8161454257fe5b06905080850182870114614643576000898388018151811061456057fe5b602002602001015190506060898489018151811061457a57fe5b602002602001015190508a8388018151811061459257fe5b60200260200101518b858a01815181106145a857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106145d757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061460557fe5b60200260200101518a858a018151811061461b57fe5b6020026020010181905250808a8489018151811061463557fe5b602002602001018190525050505b50600101614502565b5050505050505050565b600980546001908101909155600b80548390811061467057fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106146a657fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161470191906162cd565b604051602081830303815290604052805190602001208360405160200161472891906162cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b038116600090815260046020526040812054806147755750600019905061130b565b60018103905060006001828154811061478a57fe5b90600052602060002090600402016003015490506000600183815481106147ad57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614806908590616ef0565b60405180910390a28061481e5782935050505061130b565b600081838161482957fe5b04905080156148e55760005b8481101561488757816001828154811061484b57fe5b906000526020600020906004020160030154016001828154811061486b57fe5b6000918252602090912060036004909202010155600101614835565b50600180549085015b818110156148e25782600182815481106148a657fe5b90600052602060002090600402016003015401600182815481106148c657fe5b6000918252602090912060036004909202010155600101614890565b50505b5091949350505050565b6148f7615fac565b506040805180820190915281518152602082810190820152919050565b61491c615e65565b61492582615750565b61492e57600080fd5b600061493d836020015161578a565b60208085015160408051808201909152868152920190820152915050919050565b6000614968615fac565b505080518051602091820151919092015191011190565b614987615fac565b6149908261495e565b61499957600080fd5b602082015160006149a9826157ed565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906149e257508151602110155b6149eb57600080fd5b60006149fa836020015161578a565b90508083600001511015614a205760405162461bcd60e51b8152600401610c3b90616c83565b8251602080850151830180519284900392918310156144f657506020919091036101000a90049392505050565b6060614a5882615750565b614a6157600080fd5b6000614a6c836158ce565b9050606081604051908082528060200260200182016040528015614aaa57816020015b614a97615fac565b815260200190600190039081614a8f5790505b5090506000614abc856020015161578a565b60208601510190506000805b84811015614b1357614ad9836157ed565b9150604051806040016040528083815260200184815250848281518110614afc57fe5b602090810291909101015291810191600101614ac8565b509195945050505050565b614b26615e85565b60606000614b32615e85565b6060614b3c615e65565b614b4587614914565b90506000805b614b548361495e565b15614c295780614b7f57614b6f614b6a8461497f565b61592a565b6001600160a01b03168552614c21565b8060011415614ba757614b94614b6a8461497f565b6001600160a01b03166020860152614c21565b8060021415614bcf57614bbc614b6a8461497f565b6001600160a01b03166040860152614c21565b8060031415614bfb57614be4612f638461497f565b6001600160401b0316606086015260019150614c21565b8060041415614c1c57614c15614c108461497f565b615944565b9350614c21565b614c29565b600101614b4b565b50929791965091945092505050565b60606113bb614c46836159b4565b615a9a565b6060815160001415614c6c575060408051600081526020810190915261130b565b606082600081518110614c7b57fe5b602002602001015190506000600190505b8351811015614cbc57614cb282858381518110614ca557fe5b6020026020010151615aec565b9150600101614c8c565b50610ea2614ccf825160c060ff16615b69565b82615aec565b606080600080808080614ce66126a7565b6001549091505b8015614df457600181039250600b8381548110614d0657fe5b600091825260209091206001601690920201015460ff16614d2657614deb565b60018381548110614d3357fe5b60009182526020909120600490910201546001600160a01b03169450614d5a858484612d27565b9350831580614d6d575060018a51038610155b15614d7757614deb565b60005b8a51811015614de957856001600160a01b03168b8281518110614d9957fe5b6020026020010151600001516001600160a01b03161415614de15760018b8281518110614dc257fe5b6020908102919091010151901515608090910152600190960195614de9565b600101614d7a565b505b60001901614ced565b5084895103604051908082528060200260200182016040528015614e3257816020015b614e1f615e85565b815260200190600190039081614e175790505b50965084895103604051908082528060200260200182016040528015614e6c57816020015b6060815260200190600190039081614e575790505b5095506000915060005b8951811015614f0057898181518110614e8b57fe5b602002602001015160800151614ef857898181518110614ea757fe5b6020026020010151888481518110614ebb57fe5b6020026020010181905250888181518110614ed257fe5b6020026020010151878481518110614ee657fe5b60200260200101819052508260010192505b600101614e76565b5050505050505b9250929050565b600154825160005b8281101561502b576001614f28615e85565b60018381548110614f3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614fff57878181518110614fc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614ff75760009250614fff565b600101614fb1565b5081156150215780516001600160a01b03166000908152600460205260408120555b5050600101614f16565b50808211156150ea57805b828110156150e857600180548061504957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061509c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906150ce6002830182615f59565b6150dc600383016000615f9d565b50509055600101615036565b505b60008183106150f957816150fb565b825b905060005b8181101561549f576151ad86828151811061511757fe5b60200260200101516001838154811061512c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615c3b565b6153615780600101600460008884815181106151c557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061520157fe5b60200260200101516001828154811061521657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106152d157fe5b6020026020010151600b82815481106152e657fe5b9060005260206000209060160201600201908051906020019061530a929190615d9a565b506000600b828154811061531a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061534b57fe5b6000918252602090912060169091020155615497565b61542785828151811061537057fe5b6020026020010151600b838154811061538557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561541d5780601f106153f25761010080835404028352916020019161541d565b820191906000526020600020905b81548152906001019060200180831161540057829003601f168201915b5050505050615cbc565b6154725784818151811061543757fe5b6020026020010151600b828154811061544c57fe5b90600052602060002090601602016002019080519060200190615470929190615d9a565b505b60006001828154811061548157fe5b9060005260206000209060040201600301819055505b600101615100565b5082821115615677576154b0615d6b565b835b83811015615674578581815181106154c657fe5b6020026020010151826040018190525060018782815181106154e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020616fa38339815191528101918255858301516000805160206175d28339815191528201805491151560ff199092169190911790559285015180518694929361561a93600080516020616fc383398151915201920190615d9a565b5060608201516156309060038301906013615e14565b505050806001016004600089848151811061564757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016154b2565b50505b6000600981905560015493505b838110156156e5576000600b828154811061569b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106156cc57fe5b6000918252602090912060169091020155600101615684565b505050505050565b6000818361570e5760405162461bcd60e51b8152600401610c3b919061646e565b50600083858161571a57fe5b0495945050505050565b600081848411156157485760405162461bcd60e51b8152600401610c3b919061646e565b505050900390565b80516000906157615750600061130b565b6020820151805160001a9060c08210156157805760009250505061130b565b5060019392505050565b8051600090811a60808110156157a457600091505061130b565b60b88110806157bf575060c081108015906157bf575060f881105b156157ce57600191505061130b565b60c08110156157e25760b51901905061130b565b60f51901905061130b565b80516000908190811a608081101561580857600191506158c7565b60b881101561581d57607e19810191506158c7565b60c081101561586e57600060b78203600186019550806020036101000a8651049150600181018201935050808310156158685760405162461bcd60e51b8152600401610c3b90616a12565b506158c7565b60f88110156158835760be19810191506158c7565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158c55760405162461bcd60e51b8152600401610c3b90616a12565b505b5092915050565b80516000906158df5750600061130b565b600080905060006158f3846020015161578a565b602085015185519181019250015b8082101561592157615912826157ed565b82019150826001019250615901565b50909392505050565b805160009060151461593b57600080fd5b6113bb826149cd565b805160609061595257600080fd5b6000615961836020015161578a565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615998576020820181803683370190505b50905060008160200190506144f6848760200151018285615d20565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166159f857506018615a1c565b6fffffffffffffffffffffffffffffffff198416615a1857506010615a1c565b5060005b6020811015615a5257818181518110615a3157fe5b01602001516001600160f81b03191615615a4a57615a52565b600101615a1c565b60008160200390506060816040519080825280601f01601f191660200182016040528015615a87576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615acc5750607f60f81b82600081518110615aba57fe5b01602001516001600160f81b03191611155b15615ad857508061130b565b6113bb615aea8351608060ff16615b69565b835b6060806040519050835180825260208201818101602087015b81831015615b1d578051835260209283019201615b05565b50855184518101855292509050808201602086015b81831015615b4a578051835260209283019201615b32565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615b935760405162461bcd60e51b8152600401610c3b90616816565b60408051600180825281830190925260609160208201818036833701905050905060378411615bed5782840160f81b81600081518110615bcf57fe5b60200101906001600160f81b031916908160001a90535090506113bb565b6060615bf8856159b4565b90508381510160370160f81b82600081518110615c1157fe5b60200101906001600160f81b031916908160001a905350615c328282615aec565b95945050505050565b805182516000916001600160a01b039182169116148015615c75575081602001516001600160a01b031683602001516001600160a01b0316145b8015615c9a575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ea25750506060908101519101516001600160401b0390811691161490565b815181516000916001918114808314615cd85760009250615d16565b600160208701838101602088015b600284838510011415615d11578051835114615d055760009650600093505b60209283019201615ce6565b505050505b5090949350505050565b80615d2a57610c5b565b5b60208110615d4a578251825260209283019290910190601f1901615d2b565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001615d95615fc6565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ddb57805160ff1916838001178555615e08565b82800160010185558215615e08579182015b82811115615e08578251825591602001919060010190615ded565b506126e2929150615fe5565b8260138101928215615e085791602002820182811115615e08578251825591602001919060010190615ded565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040518060400160405280615e78615fac565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ef35780548555615e08565b82800160010185558215615e0857600052602060002091601f016020900482015b82811115615e08578254825591600101919060010190615f14565b8260138101928215615e085791820182811115615e08578254825591600101919060010190615f14565b50805460018160011615610100020316600290046000825580601f10615f7f5750611517565b601f0160209004906000526020600020908101906115179190615fe5565b50611517906013810190615fe5565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269491905b808211156126e25760008155600101615feb565b60008083601f840112616010578182fd5b5081356001600160401b03811115616026578182fd5b6020830191508360208083028501011115614f0757600080fd5b60008083601f840112616051578182fd5b5081356001600160401b03811115616067578182fd5b602083019150836020828501011115614f0757600080fd5b600060208284031215616090578081fd5b81356001600160a01b0381168114610ea2578182fd5b600080600080604085870312156160bb578283fd5b84356001600160401b03808211156160d1578485fd5b6160dd88838901615fff565b909650945060208701359150808211156160f5578384fd5b5061610287828801615fff565b95989497509550505050565b60006020828403121561611f578081fd5b81518015158114610ea2578182fd5b60008060008060408587031215616143578384fd5b84356001600160401b0380821115616159578586fd5b61616588838901616040565b9096509450602087013591508082111561617d578384fd5b5061610287828801616040565b60006020828403121561619b578081fd5b5035919050565b6000602082840312156161b3578081fd5b5051919050565b600080604083850312156161cc578182fd5b505080516020909101519092909150565b6000806000604084860312156161f1578283fd5b833560ff81168114616201578384fd5b925060208401356001600160401b0381111561621b578283fd5b61622786828701616040565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561626c5781516001600160a01b031687529582019590820190600101616247565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526162b9816020860160208601616f56565b601f01601f19169290920160200192915050565b600082516162df818460208701616f56565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610ea26020830184616234565b60006040825261638c6040830185616234565b602083820381850152818551808452828401915082838202850101838801865b838110156163da57601f198784030185526163c88383516162a1565b948601949250908501906001016163ac565b50909998505050505050505050565b6000608082526163fc6080830187616234565b828103602084810191909152865180835287820192820190845b8181101561643257845183529383019391830191600101616416565b505084810360408601526164468188616234565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610ea260208301846162a1565b600060408252616495604083018688616277565b82810360208401526164a8818587616277565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615c3260608301846162a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615c32604083018486616277565b60005b83811015616f71578181015183820152602001616f59565b83811115612c47575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa26469706673582212206cf6e773ca0b0d999abe4e586cd00abd836c1f2e74f76626269d55c8fc09634364736f6c63430006040033", + Code: luban.MainnetValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b60405161029991906132a4565b60405180910390f35b6102aa6104e2565b6040516102999190612b82565b6102ca6102c5366004612ab8565b6104e8565b6040516102999190612bba565b6102df61054e565b6040516102999190612baf565b6102ff6102fa366004612866565b610557565b6040516102999392919061328c565b6102aa61031c366004612a88565b61057a565b61033461032f366004612866565b6105a1565b60405161029992919061327e565b61034a6105f8565b6040516102999190613254565b61034a6105fe565b610367610604565b60405161029991906132b5565b6102aa610609565b61038461060f565b6040516102999190613245565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b7366004612866565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612ab8565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc61045736600461296c565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612ab8565b610ceb565b6103bc61048d366004612866565b610d5c565b6103bc6104a03660046129d5565b61114d565b61034a61169a565b6102aa61169f565b6103bc6116a5565b6102aa6116e1565b6103676116e7565b6103bc6116ec565b6102aa611b35565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b906130cb565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612c9b565b60405162461bcd60e51b815260040161050b9061318e565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac61264d565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612edf565b60005460ff166106685760405162461bcd60e51b815260040161050b90612c9b565b61200063f7a251d7600b61067b84611b3b565b60006040518463ffffffff1660e01b815260040161069b939291906132c3565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b906130cb565b60005460ff166107435760405162461bcd60e51b815260040161050b90612c9b565b61074b612670565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c0d92505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c6916132a4565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610803916132a4565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612c9b565b33611007146108845760405162461bcd60e51b815260040161050b90612f88565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611c8d9050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612e6b565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611ce792505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b90613086565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611c8d9050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b90612fd6565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611ce792505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d09565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611c8d9050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b906131c5565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611ce792505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e1f565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611c8d9050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612d3e565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611cec92505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b90613167565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612bcd565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b906130cb565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612c9b565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b9061311a565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612c9b565b6003544311610dbe5760405162461bcd60e51b815260040161050b90613210565b3a15610ddc5760405162461bcd60e51b815260040161050b90612f5a565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612b82565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061294c565b610e5a57611146565b610e6261264d565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612b82565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611b3b565b60006040518463ffffffff1660e01b8152600401610fc7939291906132c3565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c83602001518360405161106592919061325d565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612b82565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612c9b565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612b82565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061294c565b6112005760405162461bcd60e51b815260040161050b90612bff565b60075460ff166112225760405162461bcd60e51b815260040161050b90612c66565b60065461122f5760146006555b8051514361010090910111801561125157504381602001516000015161010001115b61126d5760405162461bcd60e51b815260040161050b90612c36565b80602001516020015181600001516020015114801561129b5750806020015160600151816000015160600151145b156112b85760405162461bcd60e51b815260040161050b90612eb2565b8051604081015190511080156112d75750602081015160408101519051105b6112f35760405162461bcd60e51b815260040161050b90612de8565b6020810151518151511080156113185750806000015160400151816020015160400151105b8061134357508051516020820151511080156113435750806020015160400151816000015160400151105b8061135d5750806020015160400151816000015160400151145b6113795760405162461bcd60e51b815260040161050b90612cd2565b61138b81600001518260400151611d14565b80156113a457506113a481602001518260400151611d14565b6113c05760405162461bcd60e51b815260040161050b90612d89565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143a9190810190612889565b9150915060005b81518110156115775761146b82828151811061145957fe5b60200260200101518560400151611eec565b1561156f576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f0906114a39033908590600401612b96565b602060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612aa0565b506110006001600160a01b03166335409f7f85848151811061151357fe5b60200260200101516040518263ffffffff1660e01b81526004016115379190612b82565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b5050505050611577565b600101611441565b50600061158984604001516000611f50565b90506120006001600160a01b031663f7a251d7600b6115ab8760400151611f6c565b60006040518463ffffffff1660e01b81526004016115cb939291906132c3565b600060405180830381600087803b1580156115e557600080fd5b505af19250505080156115f6575060015b611668573d808015611624576040519150601f19603f3d011682016040523d82523d6000602084013e611629565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161165a9190612bba565b60405180910390a250611694565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156116c85760405162461bcd60e51b815260040161050b90613018565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461170d5760405162461bcd60e51b815260040161050b90612edf565b60005460ff1661172f5760405162461bcd60e51b815260040161050b90612c9b565b60015461173b57611b33565b600154600090600019015b808211611b07576000805b8284101561186a5761176161264d565b600260006001878154811061177257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611854576004600554816117df57fe5b0481602001510381602001818152505080600260006001888154811061180157fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561185e565b600192505061186a565b50836001019350611751565b828411611a015761187961264d565b600260006001868154811061188a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611972576004600554816118f757fe5b0481602001510381602001818152505080600260006001878154811061191957fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a019050565b600260006001868154811061198357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119c757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119f45750611a01565b506000199092019161186a565b818015611a0b5750805b15611aea576002600060018681548110611a2157fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a6857fe5b600091825260209091200154600180546001600160a01b039092169186908110611a8e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611ac757fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611af6575050611b07565b505060019091019060001901611746565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b56579050509050611b7f836001600160a01b0316611fa7565b81600081518110611b8c57fe5b6020026020010181905250611ba043611fca565b81600181518110611bad57fe5b6020908102919091010152611bc26038611fca565b81600281518110611bcf57fe5b6020026020010181905250611be342611fca565b81600381518110611bf057fe5b6020026020010181905250611c0481611fdd565b9150505b919050565b611c15612670565b6000611c1f612670565b611c27612682565b611c38611c3386612067565b61208c565b90506000805b611c47836120d6565b15611c805780611c7357611c62611c5d846120f7565b612145565b63ffffffff16845260019150611c78565b611c80565b600101611c3e565b5091935090915050915091565b600081604051602001611ca09190612b66565b6040516020818303038152906040528051906020012083604051602001611cc79190612b66565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d06576001915081611d0c565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611d30575050604080516020808252818301909252919250606091908082018180368337019050509050611d758560000151611fca565b82600081518110611d8257fe5b6020026020010181905250611d9d60208660200151836121c7565b611da6816121d7565b82600181518110611db357fe5b6020026020010181905250611dcb8560400151611fca565b82600281518110611dd857fe5b6020026020010181905250611df360208660600151836121c7565b611dfc816121d7565b82600381518110611e0957fe5b6020026020010181905250611e2f6020611e2284611fdd565b80519060200120836121c7565b6040805160b080825260e08201909252606091602082018180368337019050509050611e5f81836000602061222d565b611e718187608001516020606061222d565b611e7f81866080603061222d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611ebc57600080fd5b506001611eca826000612280565b60ff1614611edf576000945050505050611ce1565b5060019695505050505050565b815181516000916001918114808314611f085760009250611f46565b600160208701838101602088015b600284838510011415611f41578051835114611f355760009650600093505b60209283019201611f16565b505050505b5090949350505050565b60008160200183511015611f6357600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611f87579050509050611b7f836121d7565b60408051600560a21b8318601482015260348101909152606090611c04816121d7565b6060611ce1611fd88361229c565b6121d7565b6060815160001415611ffe5750604080516000815260208101909152611c08565b60608260008151811061200d57fe5b602002602001015190506000600190505b835181101561204e576120448285838151811061203757fe5b6020026020010151612382565b915060010161201e565b50611c04612061825160c060ff166123ff565b82612382565b61206f6126a2565b506040805180820190915281518152602082810190820152919050565b612094612682565b61209d826124d1565b6120a657600080fd5b60006120b5836020015161250b565b60208085015160408051808201909152868152920190820152915050919050565b60006120e06126a2565b505080518051602091820151919092015191011190565b6120ff6126a2565b612108826120d6565b61211157600080fd5b602082015160006121218261256e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061215a57508151602110155b61216357600080fd5b6000612172836020015161250b565b905080836000015110156121985760405162461bcd60e51b815260040161050b9061304f565b8251602080850151830180519284900392918310156121be57826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122095750607f60f81b826000815181106121f757fe5b01602001516001600160f81b03191611155b15612215575080611c08565b611ce16122278351608060ff166123ff565b83612382565b60005b818110156106c95783818151811061224457fe5b602001015160f81c60f81b85848060010195508151811061226157fe5b60200101906001600160f81b031916908160001a905350600101612230565b6000816001018351101561229357600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166122e057506018612304565b6fffffffffffffffffffffffffffffffff19841661230057506010612304565b5060005b602081101561233a5781818151811061231957fe5b01602001516001600160f81b031916156123325761233a565b600101612304565b60008160200390506060816040519080825280601f01601f19166020018201604052801561236f576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b818310156123b357805183526020928301920161239b565b50855184518101855292509050808201602086015b818310156123e05780518352602092830192016123c8565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124295760405162461bcd60e51b815260040161050b90612dc0565b604080516001808252818301909252606091602082018180368337019050509050603784116124835782840160f81b8160008151811061246557fe5b60200101906001600160f81b031916908160001a9053509050611ce1565b606061248e8561229c565b90508381510160370160f81b826000815181106124a757fe5b60200101906001600160f81b031916908160001a9053506124c88282612382565b95945050505050565b80516000906124e257506000611c08565b6020820151805160001a9060c082101561250157600092505050611c08565b5060019392505050565b8051600090811a6080811015612525576000915050611c08565b60b8811080612540575060c08110801590612540575060f881105b1561254f576001915050611c08565b60c08110156125635760b519019050611c08565b60f519019050611c08565b80516000908190811a60808110156125895760019150612646565b60b881101561259e57607e1981019150612646565b60c08110156125ef57600060b78203600186019550806020036101000a8651049150600181018201935050808310156125e95760405162461bcd60e51b815260040161050b90612f2f565b50612646565b60f88110156126045760be1981019150612646565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611d0c5760405162461bcd60e51b815260040161050b90612f2f565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806126956126a2565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126126cc578081fd5b81516126df6126da82613316565b6132ef565b818152915060208083019084810160005b84811015612755578151870188603f82011261270b57600080fd5b8381015161271b6126da82613336565b81815260408b8184860101111561273157600080fd5b6127408388840183870161335a565b508652505092820192908201906001016126f0565b505050505092915050565b60008083601f840112612771578182fd5b50813567ffffffffffffffff811115612788578182fd5b6020830191508360208285010111156127a057600080fd5b9250929050565b600082601f8301126127b7578081fd5b81356127c56126da82613336565b91508082528360208285010111156127dc57600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215612806578081fd5b61281060a06132ef565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561284e57600080fd5b61285a848285016127a7565b60808301525092915050565b600060208284031215612877578081fd5b813561288281613386565b9392505050565b6000806040838503121561289b578081fd5b825167ffffffffffffffff808211156128b2578283fd5b81850186601f8201126128c3578384fd5b805192506128d36126da84613316565b80848252602080830192508084018a8283890287010111156128f3578788fd5b8794505b8685101561291e57805161290a81613386565b8452600194909401939281019281016128f7565b508801519096509350505080821115612935578283fd5b50612942858286016126bc565b9150509250929050565b60006020828403121561295d578081fd5b81518015158114612882578182fd5b60008060008060408587031215612981578182fd5b843567ffffffffffffffff80821115612998578384fd5b6129a488838901612760565b909650945060208701359150808211156129bc578384fd5b506129c987828801612760565b95989497509550505050565b6000602082840312156129e6578081fd5b813567ffffffffffffffff808211156129fd578283fd5b81840160608187031215612a0f578384fd5b612a1960606132ef565b9250803582811115612a29578485fd5b612a35878284016127f5565b845250602081013582811115612a49578485fd5b612a55878284016127f5565b602085015250604081013582811115612a6c578485fd5b612a78878284016127a7565b6040850152509195945050505050565b600060208284031215612a99578081fd5b5035919050565b600060208284031215612ab1578081fd5b5051919050565b600080600060408486031215612acc578283fd5b833560ff81168114612adc578384fd5b9250602084013567ffffffffffffffff811115612af7578283fd5b612b0386828701612760565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612b5281602086016020860161335a565b601f01601f19169290920160200192915050565b60008251612b7881846020870161335a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526128826020830184612b3a565b600060408252612be1604083018688612b10565b8281036020840152612bf4818587612b10565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252601690820152751d1bdbc81bdb1908189b1bd8dac81a5b9d9bdb1d995960521b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526132766040830184612b3a565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526132df6060830185612b3a565b9050826040830152949350505050565b60405181810167ffffffffffffffff8111828210171561330e57600080fd5b604052919050565b600067ffffffffffffffff82111561332c578081fd5b5060209081020190565b600067ffffffffffffffff82111561334c578081fd5b50601f01601f191660200190565b60005b8381101561337557818101518382015260200161335d565b838111156116945750506000910152565b6001600160a01b038116811461339b57600080fd5b5056fea26469706673582212207e6be46f5e0281709e9788d33be4928c51610752d8a32e78d1c8c64bea3df55764736f6c63430006040033", + Code: luban.MainnetSlashContract, }, { ContractAddr: common.HexToAddress(SystemRewardContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "6080604052600436106101a05760003560e01c80637942fd05116100ec578063ac4317511161008a578063f9a2bbc711610064578063f9a2bbc714610550578063fb5478b314610565578063fc3e59081461057a578063fd6a68791461058f576101e4565b8063ac43175114610457578063c81b166214610526578063dc927faf1461053b576101e4565b80639dc09262116100c65780639dc0926214610403578063a1a11bf514610418578063a78abc161461042d578063ab51bb9614610442576101e4565b80637942fd05146103a057806396713da9146103b55780639a99b4f0146103ca576101e4565b80634bf6c882116101595780636e47b482116101335780636e47b4821461034c57806370fd5bad14610361578063718a8aa81461037657806375d47a0a1461038b576101e4565b80634bf6c882146102db57806351e80672146102f05780636d70f7ae14610305576101e4565b80630bee7a67146101e95780630e2374a5146102175780633a0b0eff146102485780633dffc3871461026f57806343756e5c1461029a578063493279b1146102af576101e4565b366101e45734156101e25760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101f557600080fd5b506101fe6105a4565b6040805163ffffffff9092168252519081900360200190f35b34801561022357600080fd5b5061022c6105a9565b604080516001600160a01b039092168252519081900360200190f35b34801561025457600080fd5b5061025d6105af565b60408051918252519081900360200190f35b34801561027b57600080fd5b506102846105b5565b6040805160ff9092168252519081900360200190f35b3480156102a657600080fd5b5061022c6105ba565b3480156102bb57600080fd5b506102c46105c0565b6040805161ffff9092168252519081900360200190f35b3480156102e757600080fd5b506102846105c5565b3480156102fc57600080fd5b5061022c6105ca565b34801561031157600080fd5b506103386004803603602081101561032857600080fd5b50356001600160a01b03166105d0565b604080519115158252519081900360200190f35b34801561035857600080fd5b5061022c6105ee565b34801561036d57600080fd5b506102846105f4565b34801561038257600080fd5b506102846105f9565b34801561039757600080fd5b5061022c6105fe565b3480156103ac57600080fd5b50610284610604565b3480156103c157600080fd5b50610284610609565b3480156103d657600080fd5b5061025d600480360360408110156103ed57600080fd5b506001600160a01b03813516906020013561060e565b34801561040f57600080fd5b5061022c6107b9565b34801561042457600080fd5b5061022c6107bf565b34801561043957600080fd5b506103386107c5565b34801561044e57600080fd5b506101fe6107ce565b34801561046357600080fd5b506101e26004803603604081101561047a57600080fd5b81019060208101813564010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460018302840111640100000000831117156104c957600080fd5b9193909290916020810190356401000000008111156104e757600080fd5b8201836020820111156104f957600080fd5b8035906020019184600183028401116401000000008311171561051b57600080fd5b5090925090506107d3565b34801561053257600080fd5b5061022c610b56565b34801561054757600080fd5b5061022c610b5c565b34801561055c57600080fd5b5061022c610b62565b34801561057157600080fd5b5061025d610b68565b34801561058657600080fd5b50610284610b74565b34801561059b57600080fd5b5061022c610b79565b606481565b61200181565b60015481565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff1661068b57600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106d95760405162461bcd60e51b815260040180806020018281038252602b815260200180610c67602b913960400191505060405180910390fd5b60004783106106e857476106ea565b825b9050670de0b6b3a76400008111156107075750670de0b6b3a76400005b8015610788576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610743573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107b2565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b33611007146108135760405162461bcd60e51b815260040180806020018281038252602e815260200180610cc1602e913960400191505060405180910390fd5b61087584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b7f9050565b1561094d57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506108f85760405162461bcd60e51b815260040180806020018281038252602c815260200180610cef602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610ac4565b6109b284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b7f9050565b15610a8757606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610a355760405162461bcd60e51b815260040180806020018281038252602f815260200180610c92602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610ac4565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610bb45780518252601f199092019160209182019101610b95565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610c225780518252601f199092019160209182019101610c03565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a264697066735822122078be72e2672a87e28d3e6849bea141a139b304a089fceb003c016dabd5f556fb64736f6c63430006040033", + Code: luban.MainnetSystemRewardContract, }, { ContractAddr: common.HexToAddress(RelayerHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c80638f83ab1311610130578063c81b1662116100b8578063f3ae24151161007c578063f3ae2415146104e8578063f9a2bbc71461050e578063fc3e590814610516578063fd30d9b81461051e578063fd6a68791461052657610227565b8063c81b1662146104c0578063dc927faf146104c8578063dd91d1c5146104d0578063e1c7392a146104d8578063e79a198f146104e057610227565b8063a1a11bf5116100ff578063a1a11bf5146103de578063a74b83ca146103e6578063a78abc16146103ee578063ab51bb96146103f6578063ac431751146103fe57610227565b80638f83ab13146103a057806395468d26146103c657806396713da9146103ce5780639dc09262146103d657610227565b8063541d5548116101b3578063718a8aa811610182578063718a8aa81461034857806375d47a0a1461035057806378beee67146103585780637942fd051461037e5780637ae230881461038657610227565b8063541d5548146102d85780636a6a419e146103125780636e47b4821461033857806370fd5bad1461034057610227565b80633dffc387116101fa5780633dffc3871461028357806343756e5c146102a1578063493279b1146102a95780634bf6c882146102c857806351e80672146102d057610227565b806303aff02b1461022c578063049a5716146102365780630bee7a671461025a5780630e2374a51461027b575b600080fd5b61023461052e565b005b61023e610539565b604080516001600160a01b039092168252519081900360200190f35b610262610551565b6040805163ffffffff9092168252519081900360200190f35b61023e610556565b61028b61055c565b6040805160ff9092168252519081900360200190f35b61023e610561565b6102b1610567565b6040805161ffff9092168252519081900360200190f35b61028b61056c565b61023e610571565b6102fe600480360360208110156102ee57600080fd5b50356001600160a01b0316610577565b604080519115158252519081900360200190f35b6102fe6004803603602081101561032857600080fd5b50356001600160a01b0316610595565b61023e6105b3565b61028b6105b9565b61028b6105be565b61023e6105c3565b6102346004803603602081101561036e57600080fd5b50356001600160a01b03166105c9565b61028b6107b1565b61038e6107b6565b60408051918252519081900360200190f35b610234600480360360208110156103b657600080fd5b50356001600160a01b03166107c3565b61038e610a02565b61028b610a0e565b61023e610a13565b61023e610a19565b61023e610a1f565b6102fe610a37565b610262610a40565b6102346004803603604081101561041457600080fd5b81019060208101813564010000000081111561042f57600080fd5b82018360208201111561044157600080fd5b8035906020019184600183028401116401000000008311171561046357600080fd5b91939092909160208101903564010000000081111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460018302840111640100000000831117156104b557600080fd5b509092509050610a45565b61023e610d96565b61023e610d9c565b610234610da2565b610234610e43565b610234610ec5565b6102fe600480360360208110156104fe57600080fd5b50356001600160a01b031661107e565b61023e61109c565b61028b6110a2565b6102fe6110a7565b61023e6110b0565b610537336110b6565b565b73b005741528b86f5952469d80a8614591e3c5b63281565b606481565b61200181565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b031660009081526008602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b3360009081526008602052604090205460ff166106175760405162461bcd60e51b81526004018080602001828103825260248152602001806115c26024913960400191505060405180910390fd5b61062033611218565b1561065c5760405162461bcd60e51b815260040180806020018281038252602181526020018061157f6021913960400191505060405180910390fd5b3233146106b0576040805162461bcd60e51b815260206004820152601e60248201527f70726f766973696f6e616c2072656c6179657220697320612070726f78790000604482015290519081900360640190fd5b6001600160a01b038181166000908152600960205260409020541633146107085760405162461bcd60e51b815260040180806020018281038252602781526020018061163b6027913960400191505060405180910390fd5b6001600160a01b03818116600081815260066020908152604080832080543380865260078086528487208054600160ff199182161790915584546001600160a01b031990811684179095556008875285882080548216905597875260098652848720805490941690935596168085529083529281902080549094169093558251828152908101939093528151909260008051602061166283398151915292908290030190a15050565b600b81565b68056bc75e2d6310000081565b3360009081526005602052604090205460ff16610820576040805162461bcd60e51b81526020600482015260166024820152751b585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b61082981611218565b156108655760405162461bcd60e51b81526004018080602001828103825260278152602001806115e66027913960400191505060405180910390fd5b6001600160a01b03811615610921576001600160a01b03811660009081526007602052604090205460ff16156108db576040805162461bcd60e51b815260206004820152601660248201527572656c6179657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152600860209081526040808320805460ff191660011790553383526009909152902080546001600160a01b03191690911790556109c2565b3360008181526006602090815260408083208054600980855283862080546001600160a01b03198085169095556001600160a01b0393841680895260078852868920805460ff19908116909155918516808a5260088952878a20805490931690925598909752908552805490921690915581518581529086169281019290925280516000805160206116628339815191529281900390910190a150506109ff565b604080516001600160a01b038316815290517ffba56633276570c7d3120d4535bf3bce26523da53958e40734210b9fd99b36939181900360200190a15b50565b67016345785d8a000081565b600981565b61100781565b61100681565b73446aa6e0dc65690403df3f127750da1322941f3e81565b60005460ff1681565b600081565b60005460ff16610a98576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361100714610ad85760405162461bcd60e51b815260040180806020018281038252602e81526020018061160d602e913960400191505060405180910390fd5b610b3984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526930b23226b0b730b3b2b960b11b6020820152915061121e9050565b15610bd15760148114610b7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610bc0601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb8161130a565b50610d04565b610c3584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c3932b6b7bb32a6b0b730b3b2b960991b6020820152915061121e9050565b15610cc75760148114610c795760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610cbc601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb816110b6565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b600a5460ff1615610dfa576040805162461bcd60e51b815260206004820152601e60248201527f7468652077686974656c6973747320616c726561647920757064617465640000604482015290519081900360640190fd5b610e1773b005741528b86f5952469d80a8614591e3c5b6326113cc565b610e3473446aa6e0dc65690403df3f127750da1322941f3e6113cc565b600a805460ff19166001179055565b60005460ff1615610e9b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610f20576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610f73576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610f7b611564565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610fbf919063ffffffff61148416565b6040518115909202916000818181858888f19350505050158015610fe7573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f1935050505015801561101d573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b6001600160a01b031660009081526005602052604090205460ff1690565b61100081565b600381565b600a5460ff1681565b61100481565b6001600160a01b03811660009081526005602052604090205460ff1661111b576040805162461bcd60e51b81526020600482015260156024820152741b585b9859d95c88191bd95cdb89dd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038082166000818152600660209081526040808320805460058452828520805460ff1990811690915582546001600160a01b0319908116909355600980865284872080548a16885260088752858820805490931690925595879052948452845490911690935580519384525191909316927f2002866d443ac6c241fecaaa2af4895828c7de2cc423b9d01f7969650f557c76928290030190a16001600160a01b03811615611214576001600160a01b0381166000818152600760209081526040808320805460ff1916905580519384529083019190915280516000805160206116628339815191529281900390910190a15b5050565b3b151590565b6000816040516020018082805190602001908083835b602083106112535780518252601f199092019160209182019101611234565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106112c15780518252601f1990920191602091820191016112a2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526005602052604090205460ff1615611371576040805162461bcd60e51b81526020600482015260166024820152756d616e6167657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a150565b6001600160a01b03811660008181526005602090815260408083208054600160ff1991821681179092556006845282852080546001600160a01b031916871790556007845293829020805490941617909255815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a160408051600081526001600160a01b03831660208201528151600080516020611662833981519152929181900390910190a150565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cd565b9392505050565b6000818484111561155c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe70726f766973696f6e616c2072656c61796572206973206120636f6e74726163746c656e677468206f66206d616e616765722061646472657373206d69736d6174636872656c61796572206973206e6f7420612070726f766973696f6e616c2072656c61796572636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e747261637470726f766973696f6e616c206973206e6f742073657420666f722074686973206d616e61676572a5a19d7e9dab30a215022382d7abe782b579986fcbedec9942ecd0db9510a148a2646970667358221220ca640b19c40787a49d8b8b52c563d76e0125386bfdf94825087004f989e9989d64736f6c63430006040033", + Code: luban.MainnetRelayerHubContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b6104096129c6565b6103a66129ce565b6103e56129d3565b6103e56129d9565b6104236129df565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b5090925090506129e8565b61063d60048036036020811015610a9657600080fd5b503560ff166134ac565b6104096134c7565b6103e56134eb565b6105996134f1565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff16613745565b61070c613765565b610409613784565b6103e561378a565b610599613790565b61063d60048036036020811015610b1d57600080fd5b503560ff16613b47565b610599613b62565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613d81565b6103e5613ec4565b6103a6613eca565b6103e5613ecf565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613ed5565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f1d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f1d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61401a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614098565b509050611386818388516140a2565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d890836140e3565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b03908116908316811461187d576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b1580156118f257600080fd5b505afa158015611906573d6000803e3d6000fd5b505050506040513d602081101561191c57600080fd5b50516119595760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b03166119c3576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a2c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611a7e5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611ac2576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c066110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d6020811015611bd957600080fd5b505160408051808201909152600381526269626360e81b6020820152611bff8e8e613ed5565b8585613f1d565b611c4e576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611c9a57600080fd5b505afa158015611cae573d6000803e3d6000fd5b505050506040513d6020811015611cc457600080fd5b505190508b8b600080806060611cd9896143c8565b935093509350935083611d9b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d53578181015183820152602001611d3b565b50505050905090810190601f168015611d805780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050506129b6565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123205760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611e68578181015183820152602001611e50565b50505050905090810190601f168015611e955780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611eb557600080fd5b505af1925050508015611f9957506040513d6000823e601f3d908101601f191682016040526020811015611ee857600080fd5b8101908080516040519392919084600160201b821115611f0757600080fd5b908301906020820185811115611f1c57600080fd5b8251600160201b811182820188101715611f3557600080fd5b82525081516020918201929091019080838360005b83811015611f62578181015183820152602001611f4a565b50505050905090810190601f168015611f8f5780820380516001836020036101000a031916815260200191505b5060405250505060015b6122ab576040516000815260443d1015611fb557506000612050565b60046000803e60005160e01c6308c379a08114611fd6576000915050612050565b60043d036004833e81513d60248201116001600160401b038211171561200157600092505050612050565b80830180516001600160401b03811115612022576000945050505050612050565b8060208301013d860181111561204057600095505050505050612050565b601f01601f191660405250925050505b8061205b575061216d565b60ff8716600090815260076020526040812054612092916001600160401b0390911690899061208d906002908861131c565b614478565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561212d578181015183820152602001612115565b50505050905090810190601f16801561215a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506122a6565b3d808015612197576040519150601f19603f3d011682016040523d82523d6000602084013e61219c565b606091505b5060ff87166000908152600760205260408120546121cf916001600160401b0390911690899061208d906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561226a578181015183820152602001612252565b50505050905090810190601f1680156122975780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61231a565b8051156123185760ff87166000908152600760205260408120546122e4916001600160401b0390911690899061208d906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506128ee565b60ff8316600114156125c45760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b838110156123aa578181015183820152602001612392565b50505050905090810190601f1680156123d75780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156123f757600080fd5b505af1925050508015612408575060015b61231a576040516000815260443d1015612424575060006124bf565b60046000803e60005160e01c6308c379a081146124455760009150506124bf565b60043d036004833e81513d60248201116001600160401b0382111715612470576000925050506124bf565b80830180516001600160401b038111156124915760009450505050506124bf565b8060208301013d86018111156124af576000955050505050506124bf565b601f01601f191660405250925050505b806124ca575061252f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561212d578181015183820152602001612115565b3d808015612559576040519150601f19603f3d011682016040523d82523d6000602084013e61255e565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561226a578181015183820152602001612252565b60ff8316600214156128ee5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b8381101561264e578181015183820152602001612636565b50505050905090810190601f16801561267b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561269b57600080fd5b505af19250505080156126ac575060015b6128ec576040516000815260443d10156126c857506000612763565b60046000803e60005160e01c6308c379a081146126e9576000915050612763565b60043d036004833e81513d60248201116001600160401b038211171561271457600092505050612763565b80830180516001600160401b03811115612735576000945050505050612763565b8060208301013d860181111561275357600095505050505050612763565b601f01601f191660405250925050505b8061276e5750612817565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d75781810151838201526020016127bf565b50505050905090810190601f1680156128045780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128ec565b3d808015612841576040519150601f19603f3d011682016040523d82523d6000602084013e612846565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128b0578181015183820152602001612898565b50505050905090810190601f1680156128dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612920575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b15801561298057600080fd5b505af1158015612994573d6000803e3d6000fd5b505050506040513d60208110156129aa57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a285760405162461bcd60e51b815260040180806020018281038252602e815260200180614908602e913960400191505060405180910390fd5b600b5460ff1615612a6c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612ad584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146129050565b15612b7057604080516020601f8401819004810282018101909252828152600091612b18918585808385018382808284376000920191909152506146f992505050565b90506127108111158015612b2d5750600a8110155b612b685760405162461bcd60e51b81526004018080602001828103825260328152602001806149806032913960400191505060405180910390fd5b60015561341a565b612bd984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146129050565b15612d6157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612c5c5760405162461bcd60e51b815260040180806020018281038252605a815260200180614821605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612c7a816146fe565b612ccb576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061341a565b612dce84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146129050565b15612eff57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612e515760405162461bcd60e51b815260040180806020018281038252604a815260200180614936604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612ef5576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061341a565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146129050565b156130985760028114612fa75760405162461bcd60e51b815260040180806020018281038252602d8152602001806148af602d913960400191505060405180910390fd5b6000612fea600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff16118015613004575060648161ffff16105b61304e576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6130fb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146129050565b1561322e576002811461313f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806148dc602c913960400191505060405180910390fd5b6000613182600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561319c575060648161ffff16105b6131e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b61329984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146129050565b156133dd57600281146132dd5760405162461bcd60e51b815260040180806020018281038252603481526020018061487b6034913960400191505060405180910390fd5b6000613320600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561333a575060648161ffff16105b61338b576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff16613536576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561357957600080fd5b505afa15801561358d573d6000803e3d6000fd5b505050506040513d60208110156135a357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156135e457600080fd5b505afa1580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b505190508061361b575060155b60008211801561362b5750808211155b61366a576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff166136b1576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613702907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b9050801561374057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff16156137e8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613ba7576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613bea57600080fd5b505afa158015613bfe573d6000803e3d6000fd5b505050506040513d6020811015613c1457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613c5557600080fd5b505afa158015613c69573d6000803e3d6000fd5b505050506040513d6020811015613c7f57600080fd5b5051905080613c8c575060155b600082118015613c9c5750808211155b613cdb576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d1f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613d71907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b905080156137405761374061401a565b60005460ff16613dc6576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e235760405162461bcd60e51b81526004018080602001828103825260318152602001806147f06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613e889284928a9261208d92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f2c57506000614011565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613f63576020820181803683370190505b5090506000613f7182614704565b602080890151825201905086600080613f8989614098565b8086526020909501949092509050613fa28285836140a2565b92830192613faf88614098565b8086526020909501949092509050613fc88285836140a2565b9283018a815260200192613fdb87614098565b9092509050613feb8285836140a2565b508351602001613ff961470a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561405e576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b602081106140c2578251825260209283019290910190601f19016140a3565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff166141ac57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b0316421015806141dd575082816001015414155b156142b0576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b0316021783556001808401869055825191820190925233815261425291600284019190614728565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614364565b60005b600282015481101561433b57336001600160a01b03168260020182815481106142d857fe5b6000918252602090912001546001600160a01b03161415614333576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b6001016142b3565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff909116116143be576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff1916815560018101829055906143b2600283018261478d565b50506001915050613f17565b5060009392505050565b600080600060606021855110156143f8575050604080516000808252602082019092529092508291508190614471565b600185015160218601518651604080516020198301808252601f1960011990940193909316810160200190915260418901939291606091908015614443576020820181803683370190505b509050600061445182614098565b509050614463858260218d51036140a2565b506001975091955093509150505b9193509193565b600b5460ff16156144bc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156144fb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003554360025561453c565b6003805460019081019182905554101561453c576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145d25781810151838201526020016145ba565b50505050905090810190601f1680156145ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146475780518252601f199092019160209182019101614628565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146b55780518252601f199092019160209182019101614696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561477d579160200282015b8281111561477d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614748565b506147899291506147ae565b5090565b50805460008255906000526020600020908101906147ab91906147d5565b50565b6147d291905b808211156147895780546001600160a01b03191681556001016147b4565b90565b6147d291905b8082111561478957600081556001016147db56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a2646970667358221220622dd2ff8c5505e7bf8251c7cfe63da6bfa7891c3682ca46b6d6bf796895609f64736f6c63430006040033", + Code: luban.MainnetCrossChainContract, }, }, } @@ -435,27 +449,27 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "60806040526004361061046c5760003560e01c8063862498821161024a578063c6d3394511610139578063e40716a1116100b6578063f9a2bbc71161007a578063f9a2bbc714610b6b578063fc3e590814610b80578063fccc281314610b95578063fd4ad81f14610baa578063fd6a687914610bd957610473565b8063e40716a114610af9578063eb57e20214610b0e578063eda5868c14610b2e578063f340fa0114610b43578063f92eb86b14610b5657610473565b8063d86222d5116100fd578063d86222d514610a90578063daacdb6614610aa5578063dc927faf14610aba578063e086c7b114610acf578063e1c7392a14610ae457610473565b8063c6d3394514610a3c578063c81b166214610a51578063c8509d811461085f578063d04aa99614610a66578063d68fb56a14610a7b57610473565b8063a5422d5c116101c7578063ad3c9da61161018b578063ad3c9da6146109d0578063aef198a9146109f0578063b7ab4db514610a05578063b8cf4ef114610a27578063bf9f49951461062f57610473565b8063a5422d5c1461095c578063a78abc1614610971578063aaf5eb6814610986578063ab51bb961461099b578063ac431751146109b057610473565b806396713da91161020e57806396713da9146108f35780639dc09262146109085780639fe0f8161461091d578063a0dc275814610932578063a1a11bf51461094757610473565b8063862498821461087f57806388b32f11146108945780638b5ad0c9146108a95780638d19a410146108be5780639369d7de146108de57610473565b80634df6e0c3116103665780636e47b482116102e35780637942fd05116102a75780637942fd05146108205780637a84ca2a1461083557806381650b621461084a578063831d65d11461085f578063853230aa1461080b57610473565b80636e47b482146107b757806370fd5bad146107cc578063718a8aa8146107e157806375d47a0a146107f657806378dfed4a1461080b57610473565b8063565c56b31161032a578063565c56b3146107265780635667515a146107465780635d77156c1461075b57806362b72cf5146107705780636969a25c1461078557610473565b80634df6e0c3146106b25780635192c82c146106c757806351e80672146106dc578063549b03f2146106f157806355614fcc1461070657610473565b8063321d398a116103f45780633dffc387116103b85780633dffc3871461062f57806343756e5c1461065157806345cf9daf14610666578063493279b11461067b5780634bf6c8821461069d57610473565b8063321d398a146105975780633365af3a146105b757806335409f7f146105d75780633b071dcc146105f75780633de0f0d81461061a57610473565b80631182b8751161043b5780631182b875146104fe578063152ad3b81461052b5780631ff180691461054d578063219f22d514610562578063300c35671461057757610473565b806304c4fec61461047857806307a568471461048f5780630bee7a67146104ba5780630e2374a5146104dc57610473565b3661047357005b600080fd5b34801561048457600080fd5b5061048d610bee565b005b34801561049b57600080fd5b506104a4610c60565b6040516104b19190616ef0565b60405180910390f35b3480156104c657600080fd5b506104cf610c66565b6040516104b19190616f1a565b3480156104e857600080fd5b506104f1610c6b565b6040516104b191906162f7565b34801561050a57600080fd5b5061051e6105193660046161dd565b610c71565b6040516104b1919061646e565b34801561053757600080fd5b50610540610ea9565b6040516104b19190616463565b34801561055957600080fd5b506104a4610eb2565b34801561056e57600080fd5b506104cf610eb8565b34801561058357600080fd5b5061048d6105923660046160a6565b610ebd565b3480156105a357600080fd5b506105406105b236600461618a565b611241565b3480156105c357600080fd5b506105406105d236600461618a565b611310565b3480156105e357600080fd5b5061048d6105f236600461607f565b6113c1565b34801561060357600080fd5b5061060c61151a565b6040516104b1929190616379565b34801561062657600080fd5b506104a46117f6565b34801561063b57600080fd5b506106446117fc565b6040516104b19190616f2b565b34801561065d57600080fd5b506104f1611801565b34801561067257600080fd5b506104a4611807565b34801561068757600080fd5b5061069061180d565b6040516104b19190616ee1565b3480156106a957600080fd5b50610644611812565b3480156106be57600080fd5b5061060c611817565b3480156106d357600080fd5b506104a4611995565b3480156106e857600080fd5b506104f161199b565b3480156106fd57600080fd5b506104a46119a1565b34801561071257600080fd5b5061054061072136600461607f565b6119a7565b34801561073257600080fd5b506104a461074136600461607f565b6119dc565b34801561075257600080fd5b50610644611a2d565b34801561076757600080fd5b506104cf611a32565b34801561077c57600080fd5b506104a4611a37565b34801561079157600080fd5b506107a56107a036600461618a565b611a3d565b6040516104b196959493929190616324565b3480156107c357600080fd5b506104f1611aa1565b3480156107d857600080fd5b50610644611aa7565b3480156107ed57600080fd5b50610644611aac565b34801561080257600080fd5b506104f1611ab1565b34801561081757600080fd5b506104a4611ab7565b34801561082c57600080fd5b50610644611abd565b34801561084157600080fd5b506104a4611ac2565b34801561085657600080fd5b506104cf611ac8565b34801561086b57600080fd5b5061048d61087a3660046161dd565b611acd565b34801561088b57600080fd5b506104a4611b2e565b3480156108a057600080fd5b506104a4611b34565b3480156108b557600080fd5b506104a4611b3a565b3480156108ca57600080fd5b506104a46108d936600461607f565b611b40565b3480156108ea57600080fd5b5061048d611b80565b3480156108ff57600080fd5b50610644611c94565b34801561091457600080fd5b506104f1611c99565b34801561092957600080fd5b506104a4611c9f565b34801561093e57600080fd5b506104a4611ca4565b34801561095357600080fd5b506104f1611ca9565b34801561096857600080fd5b5061051e611caf565b34801561097d57600080fd5b50610540611cce565b34801561099257600080fd5b506104a4611cd7565b3480156109a757600080fd5b506104cf611a2d565b3480156109bc57600080fd5b5061048d6109cb36600461612e565b611ce0565b3480156109dc57600080fd5b506104a46109eb36600461607f565b61258c565b3480156109fc57600080fd5b506104a461259e565b348015610a1157600080fd5b50610a1a6125ab565b6040516104b19190616366565b348015610a3357600080fd5b506104a4612697565b348015610a4857600080fd5b506104a4611aa7565b348015610a5d57600080fd5b506104f161269c565b348015610a7257600080fd5b506104a46126a2565b348015610a8757600080fd5b506104a46126a7565b348015610a9c57600080fd5b506104a46126e6565b348015610ab157600080fd5b506104a46126f2565b348015610ac657600080fd5b506104f16126f8565b348015610adb57600080fd5b506104a46126fe565b348015610af057600080fd5b5061048d612703565b348015610b0557600080fd5b506104a46128b2565b348015610b1a57600080fd5b5061048d610b2936600461607f565b6128b8565b348015610b3a57600080fd5b506104cf6129c0565b61048d610b5136600461607f565b6129c5565b348015610b6257600080fd5b506104a4612c4d565b348015610b7757600080fd5b506104f1612c53565b348015610b8c57600080fd5b50610644611c9f565b348015610ba157600080fd5b506104f1612c59565b348015610bb657600080fd5b50610bca610bc536600461618a565b612c5f565b6040516104b193929190616ef9565b348015610be557600080fd5b506104f1612d21565b6000610bf933611b40565b9050600b8181548110610c0857fe5b600091825260209091206001601690920201015460ff16610c445760405162461bcd60e51b8152600401610c3b90616b99565b60405180910390fd5b6000610c4e6126a7565b9050610c5b338383612d27565b505050565b60095481565b606481565b61200181565b60005460609060ff16610c965760405162461bcd60e51b8152600401610c3b9061662d565b3361200014610cb75760405162461bcd60e51b8152600401610c3b90616d78565b600b54610d7557610cc6615d6b565b60015460005b81811015610d7157600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff1916911515919091179055604086015180518794610d4d9360008051602061716e833981519152909101920190615d9a565b506060820151610d639060038301906013615e14565b505050806001019050610ccc565b5050505b610d7d615e41565b6000610dbe85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f1392505050565b9150915080610dda57610dd160646130cf565b92505050610ea2565b815160009060ff16610dff57610df883602001518460400151613130565b9050610e6e565b825160ff1660011415610e6a57826020015151600114610e445760008051602061712e833981519152604051610e3490616a80565b60405180910390a1506067610e65565b610df88360200151600081518110610e5857fe5b6020026020010151613d84565b610e6e565b5060655b63ffffffff8116610e935750506040805160008152602081019091529150610ea29050565b610e9c816130cf565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610edc5760405162461bcd60e51b8152600401610c3b90616dc7565b6010544311610efd5760405162461bcd60e51b8152600401610c3b90616789565b60005460ff16610f1f5760405162461bcd60e51b8152600401610c3b9061662d565b600f54610f37576032600f5561100231601155611237565b60006110023168056bc75e2d63100000811115610f6657610f5f81606463ffffffff613efb16565b9150610faf565b601154811115610fa857610f5f6064610f9c600f54610f9060115486613f3d90919063ffffffff16565b9063ffffffff613f7f16565b9063ffffffff613efb16565b5050611237565b6040516309a99b4f60e41b815261100290639a99b4f090610fd6903090869060040161630b565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906161a2565b6110023160115591508161103d575050611237565b6000805b8481101561106b5785858281811061105557fe5b9050602002013582019150806001019050611041565b508061107957505050611237565b6000806000805b8981101561122f578489898381811061109557fe5b905060200201358802816110a557fe5b0493508a8a828181106110b457fe5b90506020020160208101906110c9919061607f565b6001600160a01b038116600090815260046020526040902054909350915081156111e55760006001808403815481106110fe57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561116b57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858660405161115e9190616ef0565b60405180910390a26111df565b60035461117e908663ffffffff613fb916565b6003908155810154611196908663ffffffff613fb916565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b2906111d6908890616ef0565b60405180910390a25b50611227565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161121e9190616ef0565b60405180910390a25b600101611080565b505050505050505b5050436010555050565b60015460009082106112555750600061130b565b60006001600160a01b03166001838154811061126d57fe5b60009182526020909120600490910201546001600160a01b0316148061129d5750600854158061129d5750600a54155b806112ac575060085460095410155b806112bd57506112bb82611310565b155b806112e657506000600b83815481106112d257fe5b906000526020600020906016020160000154115b806112fa575060016112f66125ab565b5111155b156113075750600061130b565b5060015b919050565b60015460009082106113245750600061130b565b600b548210611361576001828154811061133a57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061130b565b6001828154811061136e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff161580156113bb5750600b82815481106113a257fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146113e25760405162461bcd60e51b8152600401610c3b90616e98565b600b546114a0576113f1615d6b565b60015460005b8181101561149c57600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff19169115159190911790556040860151805187946114789360008051602061716e833981519152909101920190615d9a565b50606082015161148e9060038301906013615e14565b5050508060010190506113f7565b5050505b6001600160a01b038116600090815260046020526040902054806114c45750611517565b6001810390506000600b82815481106114d957fe5b600091825260209091206001601690920201015460ff1690506114fc8383613fde565b80156115055750805b15610c5b576009805460001901905550505b50565b60015460609081906000805b8281101561156d576001818154811061153b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611565576001909101905b600101611526565b5060608160405190808252806020026020018201604052801561159a578160200160208202803683370190505b5090506060826040519080825280602002602001820160405280156115d357816020015b60608152602001906001900390816115be5790505b50600b546000945090915084141561174e5760005b8481101561174857600181815481106115fd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611740576001818154811061162d57fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061165857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061168557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b505050505082858151811061172e57fe5b60209081029190910101526001909301925b6001016115e8565b506117ea565b60005b848110156117e8576001818154811061176657fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117e0576001818154811061179657fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106117c157fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101611751565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c5460609182918061182b575060155b60606118356125ab565b9050606061184282614391565b9050828251116118595790945092506117f2915050565b8383835103101561186b578282510393505b83156118a15760c8430461188783838388880360008a8a6144ff565b61189f8383838888038989038a8b8b8b5103016144ff565b505b6060836040519080825280602002602001820160405280156118cd578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561190657816020015b60608152602001906001900390816118f15790505b50905060005b858110156119875784818151811061192057fe5b602002602001015183828151811061193457fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061196057fe5b602002602001015182828151811061197457fe5b602090810291909101015260010161190c565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b038116600090815260046020526040812054806119cf57600091505061130b565b60001901610ea281611310565b6001600160a01b03811660009081526004602052604081205480611a0457600091505061130b565b600180820381548110611a1357fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60105481565b60018181548110611a4a57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611aee5760405162461bcd60e51b8152600401610c3b90616d78565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611b2193929190616f39565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611b765760405162461bcd60e51b8152600401610c3b90616d00565b6000190192915050565b600b54611c3e57611b8f615d6b565b60015460005b81811015611c3a57600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff1916911515919091179055604086015180518794611c169360008051602061716e833981519152909101920190615d9a565b506060820151611c2c9060038301906013615e14565b505050806001019050611b95565b5050505b600854611c4b5760036008555b600a54611c58576002600a555b6000611c6333611b40565b9050611c6e81611241565b611c8a5760405162461bcd60e51b8152600401610c3b90616a3d565b6115173382614656565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001616f836101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611d025760405162461bcd60e51b8152600401610c3b9061662d565b3361100714611d235760405162461bcd60e51b8152600401610c3b90616b06565b611d8d84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506146ee9050565b15611e2a5760208114611db25760405162461bcd60e51b8152600401610c3b90616cba565b604080516020601f8401819004810282018101909252828152600091611df09185858083850183828082843760009201919091525061474792505050565b905060648110158015611e065750620186a08111155b611e225760405162461bcd60e51b8152600401610c3b906168e6565b600255612549565b611e8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506146ee9050565b15611f265760208114611eaf5760405162461bcd60e51b8152600401610c3b906164b3565b604080516020601f8401819004810282018101909252828152600091611eed9185858083850183828082843760009201919091525061474792505050565b9050612710811115611f115760405162461bcd60e51b8152600401610c3b906167cb565b6006556007805460ff19166001179055612549565b611f9084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506146ee9050565b1561202a5760208114611fb55760405162461bcd60e51b8152600401610c3b906164ea565b604080516020601f8401819004810282018101909252828152600091611ff39185858083850183828082843760009201919091525061474792505050565b600c5490915080612002575060155b8082106120215760405162461bcd60e51b8152600401610c3b9061683e565b50600855612549565b61209384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506146ee9050565b1561212c57602081146120b85760405162461bcd60e51b8152600401610c3b906165b3565b604080516020601f84018190048102820181019092528281526000916120f69185858083850183828082843760009201919091525061474792505050565b90506000811180156121085750600a81105b6121245760405162461bcd60e51b8152600401610c3b90616e14565b600a55612549565b6121a084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506146ee9050565b1561222f57602081146121c55760405162461bcd60e51b8152600401610c3b90616567565b604080516020601f84018190048102820181019092528281526000916122039185858083850183828082843760009201919091525061474792505050565b9050600d548111156122275760405162461bcd60e51b8152600401610c3b9061695c565b600e55612549565b61229884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506146ee9050565b1561231a57602081146122bd5760405162461bcd60e51b8152600401610c3b90616b54565b604080516020601f84018190048102820181019092528281526000916122fb9185858083850183828082843760009201919091525061474792505050565b600d819055600e5490915081101561231457600d54600e555b50612549565b61237e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506146ee9050565b1561242c57602081146123a35760405162461bcd60e51b8152600401610c3b906165f8565b604080516020601f84018190048102820181019092528281526000916123e19185858083850183828082843760009201919091525061474792505050565b9050600081116124035760405162461bcd60e51b8152600401610c3b9061669b565b60298111156124245760405162461bcd60e51b8152600401610c3b906166e3565b600c55612549565b61249684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506146ee9050565b1561253157602081146124bb5760405162461bcd60e51b8152600401610c3b90616c3d565b604080516020601f84018190048102820181019092528281526000916124f99185858083850183828082843760009201919091525061474792505050565b90506001811015801561250d575060648111155b6125295760405162461bcd60e51b8152600401610c3b906169cb565b600f55612549565b60405162461bcd60e51b8152600401610c3b90616e71565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161257e9493929190616481565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156125da576125c681611310565b156125d2578160010191505b6001016125b5565b50606081604051908082528060200260200182016040528015612607578160200160208202803683370190505b5090506000915060005b8381101561268e5761262281611310565b15612686576001818154811061263457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061265f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612611565b50925050505b90565b601581565b61100281565b603281565b60006126b16125ab565b519050600080600c54116126c65760156126ca565b600c545b9050808211156126d8578091505b816126e257600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff16156127265760405162461bcd60e51b8152600401610c3b90616c06565b61272e615e41565b6000612754604051806101e001604052806101ab8152602001616f836101ab9139612f13565b91509150806127755760405162461bcd60e51b8152600401610c3b90616d37565b60005b82602001515181101561289a5760018360200151828151811061279757fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061286d57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612778565b50506103e8600255506000805460ff19166001179055565b600d5481565b33611001146128d95760405162461bcd60e51b8152600401610c3b90616e98565b600b54612997576128e8615d6b565b60015460005b8181101561299357600b8054600181018255600091909152835160008051602061714e833981519152601690920291820190815560208086015160008051602061718e8339815191528401805460ff191691151591909117905560408601518051879461296f9360008051602061716e833981519152909101920190615d9a565b5060608201516129859060038301906013615e14565b5050508060010190506128ee565b5050505b60006129a28261474c565b90506129ad81611241565b156129bc576129bc8282614656565b5050565b606581565b3341146129e45760405162461bcd60e51b8152600401610c3b90616dc7565b60005460ff16612a065760405162461bcd60e51b8152600401610c3b9061662d565b60003411612a265760405162461bcd60e51b8152600401610c3b9061692d565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612a5657506006545b600083118015612a665750600081115b15612b07576000612a83612710610f9c868563ffffffff613f7f16565b90508015612b055760405161dead9082156108fc029083906000818181858888f19350505050158015612aba573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612aea9190616ef0565b60405180910390a1612b02848263ffffffff613f3d16565b93505b505b8115612c05576000600180840381548110612b1e57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612b8b57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612b7e9190616ef0565b60405180910390a2612bff565b600354612b9e908563ffffffff613fb916565b6003908155810154612bb6908563ffffffff613fb916565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612bf6908790616ef0565b60405180910390a25b50612c47565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612c3e9190616ef0565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612c6c57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612d175780601f10612cec57610100808354040283529160200191612d17565b820191906000526020600020905b815481529060010190602001808311612cfa57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612d38575081155b80612d435750600954155b15612d5057506000610ea2565b60096000815460019003919050819055506000612d9b600a54610f9c85610f9c600b8981548110612d7d57fe5b6000918252602090912060169091020154439063ffffffff613f3d16565b90506000600b8581548110612dac57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015612e1157600080fd5b505afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4991906161ba565b9150915060009350808310612ec357612e628787613fde565b506040516305bfb49960e41b815261100190635bfb499090612e88908a906004016162f7565b600060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b5050505060019350612ed5565b818310612ed557612ed38761474c565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b612f1b615e41565b6000612f25615e41565b612f2d615e65565b612f3e612f39866148ef565b614914565b90506000805b612f4d8361495e565b156130c15780612f7257612f68612f638461497f565b6149cd565b60ff1684526130b9565b80600114156130b4576060612f8e612f898561497f565b614a4d565b90508051604051908082528060200260200182016040528015612fcb57816020015b612fb8615e85565b815260200190600190039081612fb05790505b508560200181905250805160405190808252806020026020018201604052801561300957816020015b6060815260200190600190039081612ff45790505b50604086015260005b81518110156130a957613023615e85565b6060600061304385858151811061303657fe5b6020026020010151614b1e565b92509250925080613063578860009a509a505050505050505050506130ca565b828960200151858151811061307457fe5b6020026020010181905250818960400151858151811061309057fe5b6020026020010181905250505050806001019050613012565b5060019250506130b9565b6130c1565b600101612f44565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816130e957905050905061310f8363ffffffff16614c38565b8160008151811061311c57fe5b6020026020010181905250610ea281614c4b565b60006029835111156131675760008051602061712e83398151915260405161315790616740565b60405180910390a15060666113bb565b60005b83518110156132055760005b818110156131fc5784818151811061318a57fe5b6020026020010151600001516001600160a01b03168583815181106131ab57fe5b6020026020010151600001516001600160a01b031614156131f45760008051602061712e8339815191526040516131e19061689b565b60405180910390a16066925050506113bb565b600101613176565b5060010161316a565b506060806132138585614cd5565b60015491935091506000908190815b818110156132985767016345785d8a00006001828154811061324057fe5b9060005260206000209060040201600301541061326257836001019350613290565b60006001828154811061327157fe5b9060005260206000209060040201600301541115613290578260010192505b600101613222565b506060836040519080825280602002602001820160405280156132c5578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156132f4578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015613323578160200160208202803683370190505b509050606086604051908082528060200260200182016040528015613352578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613383578160200160208202803683370190505b5090506060886040519080825280602002602001820160405280156133b2578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fa57600080fd5b505afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343291906161a2565b905067016345785d8a000081111561347d5760008051602061712e83398151915260405161345f90616bc5565b60405180910390a160689d50505050505050505050505050506113bb565b60005b898110156136ee5767016345785d8a00006001828154811061349e57fe5b9060005260206000209060040201600301541061362357600181815481106134c257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106134f357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061352857fe5b9060005260206000209060040201600301548161354157fe5b066001838154811061354f57fe5b9060005260206000209060040201600301540390506135778382613f3d90919063ffffffff16565b898e8151811061358357fe5b6020026020010181815250506001828154811061359c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316878e815181106135cd57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106135fa57fe5b6020908102919091010152613615868263ffffffff613fb916565b95508c6001019c50506136e6565b60006001828154811061363257fe5b90600052602060002090600402016003015411156136e6576001818154811061365757fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061368857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106136b557fe5b906000526020600020906004020160030154838c815181106136d357fe5b6020026020010181815250508a6001019a505b600101613480565b5060008415613964576002546040516303702b2960e51b815261100491636e056520918891613728918e918e918d914201906004016163e9565b6020604051808303818588803b15801561374157600080fd5b505af193505050508015613772575060408051601f3d908101601f1916820190925261376f9181019061610e565b60015b6138e9576040516000815260443d101561378e57506000613829565b60046000803e60005160e01c6308c379a081146137af576000915050613829565b60043d036004833e81513d60248201116001600160401b03821117156137da57600092505050613829565b80830180516001600160401b038111156137fb576000945050505050613829565b8060208301013d860181111561381957600095505050505050613829565b601f01601f191660405250925050505b806138345750613876565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613868919061646e565b60405180910390a2506138e4565b3d8080156138a0576040519150601f19603f3d011682016040523d82523d6000602084013e6138a5565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a45826040516138da919061646e565b60405180910390a2505b613964565b801561392b577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b708660405161391e9190616ef0565b60405180910390a1613962565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28060405161395990616530565b60405180910390a25b505b8015613b1a5760005b8751811015613b1857600088828151811061398457fe5b6020026020010151905060006001828154811061399d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc91859081106139ce57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613a8a5760018281548110613a0f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613a5e57fe5b906000526020600020906004020160030154604051613a7d9190616ef0565b60405180910390a2613b0e565b60018281548110613a9757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613ae657fe5b906000526020600020906004020160030154604051613b059190616ef0565b60405180910390a25b505060010161396d565b505b835115613c645760005b8451811015613c62576000858281518110613b3b57fe5b60200260200101516001600160a01b03166108fc868481518110613b5b57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613bf157858281518110613b9157fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613bcf57fe5b6020026020010151604051613be49190616ef0565b60405180910390a2613c59565b858281518110613bfd57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613c3b57fe5b6020026020010151604051613c509190616ef0565b60405180910390a25b50600101613b24565b505b5050505050505050505050506000471115613ce0577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613ca89190616ef0565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613cde573d6000803e3d6000fd5b505b60006003819055600555815115613cfb57613cfb8282614f0e565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613d3857600080fd5b505af1158015613d4c573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580613dd55750600180820381548110613db557fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b15613e1b5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061130b565b600154600554600019820111801590613e715784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061130b565b600580546001908101909155805481906000198601908110613e8f57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506156ed565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615724565b600082613f8e575060006113bb565b82820282848281613f9b57fe5b0414610ea25760405162461bcd60e51b8152600401610c3b90616ac5565b600082820183811015610ea25760405162461bcd60e51b8152600401610c3b90616664565b60008060018381548110613fee57fe5b906000526020600020906004020160030154905060006001808054905003905060016140186125ab565b511161404d5760006001858154811061402d57fe5b9060005260206000209060040201600301819055506000925050506113bb565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516140869190616ef0565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561427357600181600101815481106140c757fe5b9060005260206000209060040201600182815481106140e257fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106141a357fe5b9060005260206000209060160201600b82815481106141be57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054614215938386019390821615610100026000190190911604615eba565b5061422860038281019084016013615f2f565b5090505080600101600460006001848154811061424157fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016140a9565b50600180548061427f57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806142d257fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906143046002830182615f59565b614312600383016000615f9d565b50509055600081838161432157fe5b04905080156143855760015460005b8181101561438257826001828154811061434657fe5b906000526020600020906004020160030154016001828154811061436657fe5b6000918252602090912060036004909202010155600101614330565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156143d057816020015b60608152602001906001900390816143bb5790505b50600b5490915083146143e757925061130b915050565b60005b828110156144f657600b60016004600089858151811061440657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061443a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156144d25780601f106144a7576101008083540402835291602001916144d2565b820191906000526020600020905b8154815290600101906020018083116144b557829003601f168201915b50505050508282815181106144e357fe5b60209081029190910101526001016143ea565b50949350505050565b60005b8281101561464c57600082878388016040516020016145229291906162e9565b6040516020818303038152906040528051906020012060001c8161454257fe5b06905080850182870114614643576000898388018151811061456057fe5b602002602001015190506060898489018151811061457a57fe5b602002602001015190508a8388018151811061459257fe5b60200260200101518b858a01815181106145a857fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106145d757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061460557fe5b60200260200101518a858a018151811061461b57fe5b6020026020010181905250808a8489018151811061463557fe5b602002602001018190525050505b50600101614502565b5050505050505050565b600980546001908101909155600b80548390811061467057fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106146a657fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161470191906162cd565b604051602081830303815290604052805190602001208360405160200161472891906162cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b038116600090815260046020526040812054806147755750600019905061130b565b60018103905060006001828154811061478a57fe5b90600052602060002090600402016003015490506000600183815481106147ad57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614806908590616ef0565b60405180910390a28061481e5782935050505061130b565b600081838161482957fe5b04905080156148e55760005b8481101561488757816001828154811061484b57fe5b906000526020600020906004020160030154016001828154811061486b57fe5b6000918252602090912060036004909202010155600101614835565b50600180549085015b818110156148e25782600182815481106148a657fe5b90600052602060002090600402016003015401600182815481106148c657fe5b6000918252602090912060036004909202010155600101614890565b50505b5091949350505050565b6148f7615fac565b506040805180820190915281518152602082810190820152919050565b61491c615e65565b61492582615750565b61492e57600080fd5b600061493d836020015161578a565b60208085015160408051808201909152868152920190820152915050919050565b6000614968615fac565b505080518051602091820151919092015191011190565b614987615fac565b6149908261495e565b61499957600080fd5b602082015160006149a9826157ed565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906149e257508151602110155b6149eb57600080fd5b60006149fa836020015161578a565b90508083600001511015614a205760405162461bcd60e51b8152600401610c3b90616c83565b8251602080850151830180519284900392918310156144f657506020919091036101000a90049392505050565b6060614a5882615750565b614a6157600080fd5b6000614a6c836158ce565b9050606081604051908082528060200260200182016040528015614aaa57816020015b614a97615fac565b815260200190600190039081614a8f5790505b5090506000614abc856020015161578a565b60208601510190506000805b84811015614b1357614ad9836157ed565b9150604051806040016040528083815260200184815250848281518110614afc57fe5b602090810291909101015291810191600101614ac8565b509195945050505050565b614b26615e85565b60606000614b32615e85565b6060614b3c615e65565b614b4587614914565b90506000805b614b548361495e565b15614c295780614b7f57614b6f614b6a8461497f565b61592a565b6001600160a01b03168552614c21565b8060011415614ba757614b94614b6a8461497f565b6001600160a01b03166020860152614c21565b8060021415614bcf57614bbc614b6a8461497f565b6001600160a01b03166040860152614c21565b8060031415614bfb57614be4612f638461497f565b6001600160401b0316606086015260019150614c21565b8060041415614c1c57614c15614c108461497f565b615944565b9350614c21565b614c29565b600101614b4b565b50929791965091945092505050565b60606113bb614c46836159b4565b615a9a565b6060815160001415614c6c575060408051600081526020810190915261130b565b606082600081518110614c7b57fe5b602002602001015190506000600190505b8351811015614cbc57614cb282858381518110614ca557fe5b6020026020010151615aec565b9150600101614c8c565b50610ea2614ccf825160c060ff16615b69565b82615aec565b606080600080808080614ce66126a7565b6001549091505b8015614df457600181039250600b8381548110614d0657fe5b600091825260209091206001601690920201015460ff16614d2657614deb565b60018381548110614d3357fe5b60009182526020909120600490910201546001600160a01b03169450614d5a858484612d27565b9350831580614d6d575060018a51038610155b15614d7757614deb565b60005b8a51811015614de957856001600160a01b03168b8281518110614d9957fe5b6020026020010151600001516001600160a01b03161415614de15760018b8281518110614dc257fe5b6020908102919091010151901515608090910152600190960195614de9565b600101614d7a565b505b60001901614ced565b5084895103604051908082528060200260200182016040528015614e3257816020015b614e1f615e85565b815260200190600190039081614e175790505b50965084895103604051908082528060200260200182016040528015614e6c57816020015b6060815260200190600190039081614e575790505b5095506000915060005b8951811015614f0057898181518110614e8b57fe5b602002602001015160800151614ef857898181518110614ea757fe5b6020026020010151888481518110614ebb57fe5b6020026020010181905250888181518110614ed257fe5b6020026020010151878481518110614ee657fe5b60200260200101819052508260010192505b600101614e76565b5050505050505b9250929050565b600154825160005b8281101561502b576001614f28615e85565b60018381548110614f3557fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015614fff57878181518110614fc557fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415614ff75760009250614fff565b600101614fb1565b5081156150215780516001600160a01b03166000908152600460205260408120555b5050600101614f16565b50808211156150ea57805b828110156150e857600180548061504957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061509c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906150ce6002830182615f59565b6150dc600383016000615f9d565b50509055600101615036565b505b60008183106150f957816150fb565b825b905060005b8181101561549f576151ad86828151811061511757fe5b60200260200101516001838154811061512c57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615c3b565b6153615780600101600460008884815181106151c557fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061520157fe5b60200260200101516001828154811061521657fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106152d157fe5b6020026020010151600b82815481106152e657fe5b9060005260206000209060160201600201908051906020019061530a929190615d9a565b506000600b828154811061531a57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061534b57fe5b6000918252602090912060169091020155615497565b61542785828151811061537057fe5b6020026020010151600b838154811061538557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561541d5780601f106153f25761010080835404028352916020019161541d565b820191906000526020600020905b81548152906001019060200180831161540057829003601f168201915b5050505050615cbc565b6154725784818151811061543757fe5b6020026020010151600b828154811061544c57fe5b90600052602060002090601602016002019080519060200190615470929190615d9a565b505b60006001828154811061548157fe5b9060005260206000209060040201600301819055505b600101615100565b5082821115615677576154b0615d6b565b835b83811015615674578581815181106154c657fe5b6020026020010151826040018190525060018782815181106154e457fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061714e83398151915281019182558583015160008051602061718e8339815191528201805491151560ff199092169190911790559285015180518694929361561a9360008051602061716e83398151915201920190615d9a565b5060608201516156309060038301906013615e14565b505050806001016004600089848151811061564757fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016154b2565b50505b6000600981905560015493505b838110156156e5576000600b828154811061569b57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106156cc57fe5b6000918252602090912060169091020155600101615684565b505050505050565b6000818361570e5760405162461bcd60e51b8152600401610c3b919061646e565b50600083858161571a57fe5b0495945050505050565b600081848411156157485760405162461bcd60e51b8152600401610c3b919061646e565b505050900390565b80516000906157615750600061130b565b6020820151805160001a9060c08210156157805760009250505061130b565b5060019392505050565b8051600090811a60808110156157a457600091505061130b565b60b88110806157bf575060c081108015906157bf575060f881105b156157ce57600191505061130b565b60c08110156157e25760b51901905061130b565b60f51901905061130b565b80516000908190811a608081101561580857600191506158c7565b60b881101561581d57607e19810191506158c7565b60c081101561586e57600060b78203600186019550806020036101000a8651049150600181018201935050808310156158685760405162461bcd60e51b8152600401610c3b90616a12565b506158c7565b60f88110156158835760be19810191506158c7565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156158c55760405162461bcd60e51b8152600401610c3b90616a12565b505b5092915050565b80516000906158df5750600061130b565b600080905060006158f3846020015161578a565b602085015185519181019250015b8082101561592157615912826157ed565b82019150826001019250615901565b50909392505050565b805160009060151461593b57600080fd5b6113bb826149cd565b805160609061595257600080fd5b6000615961836020015161578a565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615998576020820181803683370190505b50905060008160200190506144f6848760200151018285615d20565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166159f857506018615a1c565b6fffffffffffffffffffffffffffffffff198416615a1857506010615a1c565b5060005b6020811015615a5257818181518110615a3157fe5b01602001516001600160f81b03191615615a4a57615a52565b600101615a1c565b60008160200390506060816040519080825280601f01601f191660200182016040528015615a87576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615acc5750607f60f81b82600081518110615aba57fe5b01602001516001600160f81b03191611155b15615ad857508061130b565b6113bb615aea8351608060ff16615b69565b835b6060806040519050835180825260208201818101602087015b81831015615b1d578051835260209283019201615b05565b50855184518101855292509050808201602086015b81831015615b4a578051835260209283019201615b32565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615b935760405162461bcd60e51b8152600401610c3b90616816565b60408051600180825281830190925260609160208201818036833701905050905060378411615bed5782840160f81b81600081518110615bcf57fe5b60200101906001600160f81b031916908160001a90535090506113bb565b6060615bf8856159b4565b90508381510160370160f81b82600081518110615c1157fe5b60200101906001600160f81b031916908160001a905350615c328282615aec565b95945050505050565b805182516000916001600160a01b039182169116148015615c75575081602001516001600160a01b031683602001516001600160a01b0316145b8015615c9a575081604001516001600160a01b031683604001516001600160a01b0316145b8015610ea25750506060908101519101516001600160401b0390811691161490565b815181516000916001918114808314615cd85760009250615d16565b600160208701838101602088015b600284838510011415615d11578051835114615d055760009650600093505b60209283019201615ce6565b505050505b5090949350505050565b80615d2a57610c5b565b5b60208110615d4a578251825260209283019290910190601f1901615d2b565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001615d95615fc6565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ddb57805160ff1916838001178555615e08565b82800160010185558215615e08579182015b82811115615e08578251825591602001919060010190615ded565b506126e2929150615fe5565b8260138101928215615e085791602002820182811115615e08578251825591602001919060010190615ded565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040518060400160405280615e78615fac565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615ef35780548555615e08565b82800160010185558215615e0857600052602060002091601f016020900482015b82811115615e08578254825591600101919060010190615f14565b8260138101928215615e085791820182811115615e08578254825591600101919060010190615f14565b50805460018160011615610100020316600290046000825580601f10615f7f5750611517565b601f0160209004906000526020600020908101906115179190615fe5565b50611517906013810190615fe5565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61269491905b808211156126e25760008155600101615feb565b60008083601f840112616010578182fd5b5081356001600160401b03811115616026578182fd5b6020830191508360208083028501011115614f0757600080fd5b60008083601f840112616051578182fd5b5081356001600160401b03811115616067578182fd5b602083019150836020828501011115614f0757600080fd5b600060208284031215616090578081fd5b81356001600160a01b0381168114610ea2578182fd5b600080600080604085870312156160bb578283fd5b84356001600160401b03808211156160d1578485fd5b6160dd88838901615fff565b909650945060208701359150808211156160f5578384fd5b5061610287828801615fff565b95989497509550505050565b60006020828403121561611f578081fd5b81518015158114610ea2578182fd5b60008060008060408587031215616143578384fd5b84356001600160401b0380821115616159578586fd5b61616588838901616040565b9096509450602087013591508082111561617d578384fd5b5061610287828801616040565b60006020828403121561619b578081fd5b5035919050565b6000602082840312156161b3578081fd5b5051919050565b600080604083850312156161cc578182fd5b505080516020909101519092909150565b6000806000604084860312156161f1578283fd5b833560ff81168114616201578384fd5b925060208401356001600160401b0381111561621b578283fd5b61622786828701616040565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561626c5781516001600160a01b031687529582019590820190600101616247565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526162b9816020860160208601616f56565b601f01601f19169290920160200192915050565b600082516162df818460208701616f56565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610ea26020830184616234565b60006040825261638c6040830185616234565b602083820381850152818551808452828401915082838202850101838801865b838110156163da57601f198784030185526163c88383516162a1565b948601949250908501906001016163ac565b50909998505050505050505050565b6000608082526163fc6080830187616234565b828103602084810191909152865180835287820192820190845b8181101561643257845183529383019391830191600101616416565b505084810360408601526164468188616234565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610ea260208301846162a1565b600060408252616495604083018688616277565b82810360208401526164a8818587616277565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615c3260608301846162a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615c32604083018486616277565b60005b83811015616f71578181015183820152602001616f59565b83811115612c47575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa2646970667358221220df3b2f2afc524f6a9eb81529e8bd736333e37b7197419580d4e42bd858b6b14264736f6c63430006040033", + Code: luban.ChapelValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b60405161029991906132a4565b60405180910390f35b6102aa6104e2565b6040516102999190612b82565b6102ca6102c5366004612ab8565b6104e8565b6040516102999190612bba565b6102df61054e565b6040516102999190612baf565b6102ff6102fa366004612866565b610557565b6040516102999392919061328c565b6102aa61031c366004612a88565b61057a565b61033461032f366004612866565b6105a1565b60405161029992919061327e565b61034a6105f8565b6040516102999190613254565b61034a6105fe565b610367610604565b60405161029991906132b5565b6102aa610609565b61038461060f565b6040516102999190613245565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b7366004612866565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612ab8565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc61045736600461296c565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612ab8565b610ceb565b6103bc61048d366004612866565b610d5c565b6103bc6104a03660046129d5565b61114d565b61034a61169a565b6102aa61169f565b6103bc6116a5565b6102aa6116e1565b6103676116e7565b6103bc6116ec565b6102aa611b35565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b906130cb565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612c9b565b60405162461bcd60e51b815260040161050b9061318e565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac61264d565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612edf565b60005460ff166106685760405162461bcd60e51b815260040161050b90612c9b565b61200063f7a251d7600b61067b84611b3b565b60006040518463ffffffff1660e01b815260040161069b939291906132c3565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b906130cb565b60005460ff166107435760405162461bcd60e51b815260040161050b90612c9b565b61074b612670565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c0d92505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c6916132a4565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610803916132a4565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612c9b565b33611007146108845760405162461bcd60e51b815260040161050b90612f88565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611c8d9050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612e6b565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611ce792505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b90613086565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611c8d9050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b90612fd6565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611ce792505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d09565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611c8d9050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b906131c5565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611ce792505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e1f565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611c8d9050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612d3e565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611cec92505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b90613167565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612bcd565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b906130cb565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612c9b565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b9061311a565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612c9b565b6003544311610dbe5760405162461bcd60e51b815260040161050b90613210565b3a15610ddc5760405162461bcd60e51b815260040161050b90612f5a565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612b82565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061294c565b610e5a57611146565b610e6261264d565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612b82565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611b3b565b60006040518463ffffffff1660e01b8152600401610fc7939291906132c3565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c83602001518360405161106592919061325d565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612b82565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612c9b565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612b82565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e4919061294c565b6112005760405162461bcd60e51b815260040161050b90612bff565b60075460ff166112225760405162461bcd60e51b815260040161050b90612c66565b60065461122f5760146006555b8051514361010090910111801561125157504381602001516000015161010001115b61126d5760405162461bcd60e51b815260040161050b90612c36565b80602001516020015181600001516020015114801561129b5750806020015160600151816000015160600151145b156112b85760405162461bcd60e51b815260040161050b90612eb2565b8051604081015190511080156112d75750602081015160408101519051105b6112f35760405162461bcd60e51b815260040161050b90612de8565b6020810151518151511080156113185750806000015160400151816020015160400151105b8061134357508051516020820151511080156113435750806020015160400151816000015160400151105b8061135d5750806020015160400151816000015160400151145b6113795760405162461bcd60e51b815260040161050b90612cd2565b61138b81600001518260400151611d14565b80156113a457506113a481602001518260400151611d14565b6113c05760405162461bcd60e51b815260040161050b90612d89565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143a9190810190612889565b9150915060005b81518110156115775761146b82828151811061145957fe5b60200260200101518560400151611eec565b1561156f576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f0906114a39033908590600401612b96565b602060405180830381600087803b1580156114bd57600080fd5b505af11580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612aa0565b506110006001600160a01b03166335409f7f85848151811061151357fe5b60200260200101516040518263ffffffff1660e01b81526004016115379190612b82565b600060405180830381600087803b15801561155157600080fd5b505af1158015611565573d6000803e3d6000fd5b5050505050611577565b600101611441565b50600061158984604001516000611f50565b90506120006001600160a01b031663f7a251d7600b6115ab8760400151611f6c565b60006040518463ffffffff1660e01b81526004016115cb939291906132c3565b600060405180830381600087803b1580156115e557600080fd5b505af19250505080156115f6575060015b611668573d808015611624576040519150601f19603f3d011682016040523d82523d6000602084013e611629565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161165a9190612bba565b60405180910390a250611694565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156116c85760405162461bcd60e51b815260040161050b90613018565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b336110001461170d5760405162461bcd60e51b815260040161050b90612edf565b60005460ff1661172f5760405162461bcd60e51b815260040161050b90612c9b565b60015461173b57611b33565b600154600090600019015b808211611b07576000805b8284101561186a5761176161264d565b600260006001878154811061177257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611854576004600554816117df57fe5b0481602001510381602001818152505080600260006001888154811061180157fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff191691151591909117905561185e565b600192505061186a565b50836001019350611751565b828411611a015761187961264d565b600260006001868154811061188a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611972576004600554816118f757fe5b0481602001510381602001818152505080600260006001878154811061191957fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a019050565b600260006001868154811061198357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054806119c757fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836119f45750611a01565b506000199092019161186a565b818015611a0b5750805b15611aea576002600060018681548110611a2157fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611a6857fe5b600091825260209091200154600180546001600160a01b039092169186908110611a8e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611ac757fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611af6575050611b07565b505060019091019060001901611746565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611b56579050509050611b7f836001600160a01b0316611fa7565b81600081518110611b8c57fe5b6020026020010181905250611ba043611fca565b81600181518110611bad57fe5b6020908102919091010152611bc26061611fca565b81600281518110611bcf57fe5b6020026020010181905250611be342611fca565b81600381518110611bf057fe5b6020026020010181905250611c0481611fdd565b9150505b919050565b611c15612670565b6000611c1f612670565b611c27612682565b611c38611c3386612067565b61208c565b90506000805b611c47836120d6565b15611c805780611c7357611c62611c5d846120f7565b612145565b63ffffffff16845260019150611c78565b611c80565b600101611c3e565b5091935090915050915091565b600081604051602001611ca09190612b66565b6040516020818303038152906040528051906020012083604051602001611cc79190612b66565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d06576001915081611d0c565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611d30575050604080516020808252818301909252919250606091908082018180368337019050509050611d758560000151611fca565b82600081518110611d8257fe5b6020026020010181905250611d9d60208660200151836121c7565b611da6816121d7565b82600181518110611db357fe5b6020026020010181905250611dcb8560400151611fca565b82600281518110611dd857fe5b6020026020010181905250611df360208660600151836121c7565b611dfc816121d7565b82600381518110611e0957fe5b6020026020010181905250611e2f6020611e2284611fdd565b80519060200120836121c7565b6040805160b080825260e08201909252606091602082018180368337019050509050611e5f81836000602061222d565b611e718187608001516020606061222d565b611e7f81866080603061222d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611ebc57600080fd5b506001611eca826000612280565b60ff1614611edf576000945050505050611ce1565b5060019695505050505050565b815181516000916001918114808314611f085760009250611f46565b600160208701838101602088015b600284838510011415611f41578051835114611f355760009650600093505b60209283019201611f16565b505050505b5090949350505050565b60008160200183511015611f6357600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611f87579050509050611b7f836121d7565b60408051600560a21b8318601482015260348101909152606090611c04816121d7565b6060611ce1611fd88361229c565b6121d7565b6060815160001415611ffe5750604080516000815260208101909152611c08565b60608260008151811061200d57fe5b602002602001015190506000600190505b835181101561204e576120448285838151811061203757fe5b6020026020010151612382565b915060010161201e565b50611c04612061825160c060ff166123ff565b82612382565b61206f6126a2565b506040805180820190915281518152602082810190820152919050565b612094612682565b61209d826124d1565b6120a657600080fd5b60006120b5836020015161250b565b60208085015160408051808201909152868152920190820152915050919050565b60006120e06126a2565b505080518051602091820151919092015191011190565b6120ff6126a2565b612108826120d6565b61211157600080fd5b602082015160006121218261256e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061215a57508151602110155b61216357600080fd5b6000612172836020015161250b565b905080836000015110156121985760405162461bcd60e51b815260040161050b9061304f565b8251602080850151830180519284900392918310156121be57826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122095750607f60f81b826000815181106121f757fe5b01602001516001600160f81b03191611155b15612215575080611c08565b611ce16122278351608060ff166123ff565b83612382565b60005b818110156106c95783818151811061224457fe5b602001015160f81c60f81b85848060010195508151811061226157fe5b60200101906001600160f81b031916908160001a905350600101612230565b6000816001018351101561229357600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166122e057506018612304565b6fffffffffffffffffffffffffffffffff19841661230057506010612304565b5060005b602081101561233a5781818151811061231957fe5b01602001516001600160f81b031916156123325761233a565b600101612304565b60008160200390506060816040519080825280601f01601f19166020018201604052801561236f576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b818310156123b357805183526020928301920161239b565b50855184518101855292509050808201602086015b818310156123e05780518352602092830192016123c8565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124295760405162461bcd60e51b815260040161050b90612dc0565b604080516001808252818301909252606091602082018180368337019050509050603784116124835782840160f81b8160008151811061246557fe5b60200101906001600160f81b031916908160001a9053509050611ce1565b606061248e8561229c565b90508381510160370160f81b826000815181106124a757fe5b60200101906001600160f81b031916908160001a9053506124c88282612382565b95945050505050565b80516000906124e257506000611c08565b6020820151805160001a9060c082101561250157600092505050611c08565b5060019392505050565b8051600090811a6080811015612525576000915050611c08565b60b8811080612540575060c08110801590612540575060f881105b1561254f576001915050611c08565b60c08110156125635760b519019050611c08565b60f519019050611c08565b80516000908190811a60808110156125895760019150612646565b60b881101561259e57607e1981019150612646565b60c08110156125ef57600060b78203600186019550806020036101000a8651049150600181018201935050808310156125e95760405162461bcd60e51b815260040161050b90612f2f565b50612646565b60f88110156126045760be1981019150612646565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611d0c5760405162461bcd60e51b815260040161050b90612f2f565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b60405180604001604052806126956126a2565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126126cc578081fd5b81516126df6126da82613316565b6132ef565b818152915060208083019084810160005b84811015612755578151870188603f82011261270b57600080fd5b8381015161271b6126da82613336565b81815260408b8184860101111561273157600080fd5b6127408388840183870161335a565b508652505092820192908201906001016126f0565b505050505092915050565b60008083601f840112612771578182fd5b50813567ffffffffffffffff811115612788578182fd5b6020830191508360208285010111156127a057600080fd5b9250929050565b600082601f8301126127b7578081fd5b81356127c56126da82613336565b91508082528360208285010111156127dc57600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215612806578081fd5b61281060a06132ef565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561284e57600080fd5b61285a848285016127a7565b60808301525092915050565b600060208284031215612877578081fd5b813561288281613386565b9392505050565b6000806040838503121561289b578081fd5b825167ffffffffffffffff808211156128b2578283fd5b81850186601f8201126128c3578384fd5b805192506128d36126da84613316565b80848252602080830192508084018a8283890287010111156128f3578788fd5b8794505b8685101561291e57805161290a81613386565b8452600194909401939281019281016128f7565b508801519096509350505080821115612935578283fd5b50612942858286016126bc565b9150509250929050565b60006020828403121561295d578081fd5b81518015158114612882578182fd5b60008060008060408587031215612981578182fd5b843567ffffffffffffffff80821115612998578384fd5b6129a488838901612760565b909650945060208701359150808211156129bc578384fd5b506129c987828801612760565b95989497509550505050565b6000602082840312156129e6578081fd5b813567ffffffffffffffff808211156129fd578283fd5b81840160608187031215612a0f578384fd5b612a1960606132ef565b9250803582811115612a29578485fd5b612a35878284016127f5565b845250602081013582811115612a49578485fd5b612a55878284016127f5565b602085015250604081013582811115612a6c578485fd5b612a78878284016127a7565b6040850152509195945050505050565b600060208284031215612a99578081fd5b5035919050565b600060208284031215612ab1578081fd5b5051919050565b600080600060408486031215612acc578283fd5b833560ff81168114612adc578384fd5b9250602084013567ffffffffffffffff811115612af7578283fd5b612b0386828701612760565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612b5281602086016020860161335a565b601f01601f19169290920160200192915050565b60008251612b7881846020870161335a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526128826020830184612b3a565b600060408252612be1604083018688612b10565b8281036020840152612bf4818587612b10565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252601690820152751d1bdbc81bdb1908189b1bd8dac81a5b9d9bdb1d995960521b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526132766040830184612b3a565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526132df6060830185612b3a565b9050826040830152949350505050565b60405181810167ffffffffffffffff8111828210171561330e57600080fd5b604052919050565b600067ffffffffffffffff82111561332c578081fd5b5060209081020190565b600067ffffffffffffffff82111561334c578081fd5b50601f01601f191660200190565b60005b8381101561337557818101518382015260200161335d565b838111156116945750506000910152565b6001600160a01b038116811461339b57600080fd5b5056fea2646970667358221220f826c2f80c6807c5df53c6cfe5be2e59ad7e87dad138f63f83dd1caf79118d6064736f6c63430006040033", + Code: luban.ChapelSlashContract, }, { ContractAddr: common.HexToAddress(SystemRewardContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "6080604052600436106101a05760003560e01c80637942fd05116100ec578063ac4317511161008a578063f9a2bbc711610064578063f9a2bbc714610550578063fb5478b314610565578063fc3e59081461057a578063fd6a68791461058f576101e4565b8063ac43175114610457578063c81b166214610526578063dc927faf1461053b576101e4565b80639dc09262116100c65780639dc0926214610403578063a1a11bf514610418578063a78abc161461042d578063ab51bb9614610442576101e4565b80637942fd05146103a057806396713da9146103b55780639a99b4f0146103ca576101e4565b80634bf6c882116101595780636e47b482116101335780636e47b4821461034c57806370fd5bad14610361578063718a8aa81461037657806375d47a0a1461038b576101e4565b80634bf6c882146102db57806351e80672146102f05780636d70f7ae14610305576101e4565b80630bee7a67146101e95780630e2374a5146102175780633a0b0eff146102485780633dffc3871461026f57806343756e5c1461029a578063493279b1146102af576101e4565b366101e45734156101e25760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101f557600080fd5b506101fe6105a4565b6040805163ffffffff9092168252519081900360200190f35b34801561022357600080fd5b5061022c6105a9565b604080516001600160a01b039092168252519081900360200190f35b34801561025457600080fd5b5061025d6105af565b60408051918252519081900360200190f35b34801561027b57600080fd5b506102846105b5565b6040805160ff9092168252519081900360200190f35b3480156102a657600080fd5b5061022c6105ba565b3480156102bb57600080fd5b506102c46105c0565b6040805161ffff9092168252519081900360200190f35b3480156102e757600080fd5b506102846105c5565b3480156102fc57600080fd5b5061022c6105ca565b34801561031157600080fd5b506103386004803603602081101561032857600080fd5b50356001600160a01b03166105d0565b604080519115158252519081900360200190f35b34801561035857600080fd5b5061022c6105ee565b34801561036d57600080fd5b506102846105f4565b34801561038257600080fd5b506102846105f9565b34801561039757600080fd5b5061022c6105fe565b3480156103ac57600080fd5b50610284610604565b3480156103c157600080fd5b50610284610609565b3480156103d657600080fd5b5061025d600480360360408110156103ed57600080fd5b506001600160a01b03813516906020013561060e565b34801561040f57600080fd5b5061022c6107b9565b34801561042457600080fd5b5061022c6107bf565b34801561043957600080fd5b506103386107c5565b34801561044e57600080fd5b506101fe6107ce565b34801561046357600080fd5b506101e26004803603604081101561047a57600080fd5b81019060208101813564010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460018302840111640100000000831117156104c957600080fd5b9193909290916020810190356401000000008111156104e757600080fd5b8201836020820111156104f957600080fd5b8035906020019184600183028401116401000000008311171561051b57600080fd5b5090925090506107d3565b34801561053257600080fd5b5061022c610b56565b34801561054757600080fd5b5061022c610b5c565b34801561055c57600080fd5b5061022c610b62565b34801561057157600080fd5b5061025d610b68565b34801561058657600080fd5b50610284610b74565b34801561059b57600080fd5b5061022c610b79565b606481565b61200181565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff1661068b57600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106d95760405162461bcd60e51b815260040180806020018281038252602b815260200180610c67602b913960400191505060405180910390fd5b60004783106106e857476106ea565b825b9050670de0b6b3a76400008111156107075750670de0b6b3a76400005b8015610788576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015610743573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107b2565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b600081565b33611007146108135760405162461bcd60e51b815260040180806020018281038252602e815260200180610cc1602e913960400191505060405180910390fd5b61087584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b7f9050565b1561094d57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506108f85760405162461bcd60e51b815260040180806020018281038252602c815260200180610cef602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610ac4565b6109b284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b7f9050565b15610a8757606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610a355760405162461bcd60e51b815260040180806020018281038252602f815260200180610c92602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610ac4565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610bb45780518252601f199092019160209182019101610b95565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610c225780518252601f199092019160209182019101610c03565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a26469706673582212205c998ac20925f17d8af20803f32be2cf1698c9a844de45001ca5ed8c879cc93f64736f6c63430006040033", + Code: luban.ChapelSystemRewardContract, }, { ContractAddr: common.HexToAddress(RelayerHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106102275760003560e01c80638f83ab1311610130578063c81b1662116100b8578063f3ae24151161007c578063f3ae2415146104e8578063f9a2bbc71461050e578063fc3e590814610516578063fd30d9b81461051e578063fd6a68791461052657610227565b8063c81b1662146104c0578063dc927faf146104c8578063dd91d1c5146104d0578063e1c7392a146104d8578063e79a198f146104e057610227565b8063a1a11bf5116100ff578063a1a11bf5146103de578063a74b83ca146103e6578063a78abc16146103ee578063ab51bb96146103f6578063ac431751146103fe57610227565b80638f83ab13146103a057806395468d26146103c657806396713da9146103ce5780639dc09262146103d657610227565b8063541d5548116101b3578063718a8aa811610182578063718a8aa81461034857806375d47a0a1461035057806378beee67146103585780637942fd051461037e5780637ae230881461038657610227565b8063541d5548146102d85780636a6a419e146103125780636e47b4821461033857806370fd5bad1461034057610227565b80633dffc387116101fa5780633dffc3871461028357806343756e5c146102a1578063493279b1146102a95780634bf6c882146102c857806351e80672146102d057610227565b806303aff02b1461022c578063049a5716146102365780630bee7a671461025a5780630e2374a51461027b575b600080fd5b61023461052e565b005b61023e610539565b604080516001600160a01b039092168252519081900360200190f35b610262610551565b6040805163ffffffff9092168252519081900360200190f35b61023e610556565b61028b61055c565b6040805160ff9092168252519081900360200190f35b61023e610561565b6102b1610567565b6040805161ffff9092168252519081900360200190f35b61028b61056c565b61023e610571565b6102fe600480360360208110156102ee57600080fd5b50356001600160a01b0316610577565b604080519115158252519081900360200190f35b6102fe6004803603602081101561032857600080fd5b50356001600160a01b0316610595565b61023e6105b3565b61028b6105b9565b61028b6105be565b61023e6105c3565b6102346004803603602081101561036e57600080fd5b50356001600160a01b03166105c9565b61028b6107b1565b61038e6107b6565b60408051918252519081900360200190f35b610234600480360360208110156103b657600080fd5b50356001600160a01b03166107c3565b61038e610a02565b61028b610a0e565b61023e610a13565b61023e610a19565b61023e610a1f565b6102fe610a37565b610262610a40565b6102346004803603604081101561041457600080fd5b81019060208101813564010000000081111561042f57600080fd5b82018360208201111561044157600080fd5b8035906020019184600183028401116401000000008311171561046357600080fd5b91939092909160208101903564010000000081111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460018302840111640100000000831117156104b557600080fd5b509092509050610a45565b61023e610d96565b61023e610d9c565b610234610da2565b610234610e43565b610234610ec5565b6102fe600480360360208110156104fe57600080fd5b50356001600160a01b031661107e565b61023e61109c565b61028b6110a2565b6102fe6110a7565b61023e6110b0565b610537336110b6565b565b739fb29aac15b9a4b7f17c3385939b007540f4d79181565b606481565b61200181565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526007602052604090205460ff1690565b6001600160a01b031660009081526008602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b3360009081526008602052604090205460ff166106175760405162461bcd60e51b81526004018080602001828103825260248152602001806115c26024913960400191505060405180910390fd5b61062033611218565b1561065c5760405162461bcd60e51b815260040180806020018281038252602181526020018061157f6021913960400191505060405180910390fd5b3233146106b0576040805162461bcd60e51b815260206004820152601e60248201527f70726f766973696f6e616c2072656c6179657220697320612070726f78790000604482015290519081900360640190fd5b6001600160a01b038181166000908152600960205260409020541633146107085760405162461bcd60e51b815260040180806020018281038252602781526020018061163b6027913960400191505060405180910390fd5b6001600160a01b03818116600081815260066020908152604080832080543380865260078086528487208054600160ff199182161790915584546001600160a01b031990811684179095556008875285882080548216905597875260098652848720805490941690935596168085529083529281902080549094169093558251828152908101939093528151909260008051602061166283398151915292908290030190a15050565b600b81565b68056bc75e2d6310000081565b3360009081526005602052604090205460ff16610820576040805162461bcd60e51b81526020600482015260166024820152751b585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b61082981611218565b156108655760405162461bcd60e51b81526004018080602001828103825260278152602001806115e66027913960400191505060405180910390fd5b6001600160a01b03811615610921576001600160a01b03811660009081526007602052604090205460ff16156108db576040805162461bcd60e51b815260206004820152601660248201527572656c6179657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b0381166000818152600860209081526040808320805460ff191660011790553383526009909152902080546001600160a01b03191690911790556109c2565b3360008181526006602090815260408083208054600980855283862080546001600160a01b03198085169095556001600160a01b0393841680895260078852868920805460ff19908116909155918516808a5260088952878a20805490931690925598909752908552805490921690915581518581529086169281019290925280516000805160206116628339815191529281900390910190a150506109ff565b604080516001600160a01b038316815290517ffba56633276570c7d3120d4535bf3bce26523da53958e40734210b9fd99b36939181900360200190a15b50565b67016345785d8a000081565b600981565b61100781565b61100681565b7337b8516a0f88e65d677229b402ec6c1e0e33300481565b60005460ff1681565b600081565b60005460ff16610a98576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b3361100714610ad85760405162461bcd60e51b815260040180806020018281038252602e81526020018061160d602e913960400191505060405180910390fd5b610b3984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526930b23226b0b730b3b2b960b11b6020820152915061121e9050565b15610bd15760148114610b7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610bc0601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb8161130a565b50610d04565b610c3584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c3932b6b7bb32a6b0b730b3b2b960991b6020820152915061121e9050565b15610cc75760148114610c795760405162461bcd60e51b81526004018080602001828103825260228152602001806115a06022913960400191505060405180910390fd5b6000610cbc601484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061130592505050565b9050610bcb816110b6565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b600a5460ff1615610dfa576040805162461bcd60e51b815260206004820152601e60248201527f7468652077686974656c6973747320616c726561647920757064617465640000604482015290519081900360640190fd5b610e17739fb29aac15b9a4b7f17c3385939b007540f4d7916113cc565b610e347337b8516a0f88e65d677229b402ec6c1e0e3330046113cc565b600a805460ff19166001179055565b60005460ff1615610e9b576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b68056bc75e2d63100000600190815567016345785d8a00006002556000805460ff19169091179055565b3360009081526004602052604090205460ff16610f20576040805162461bcd60e51b81526020600482015260146024820152731c995b185e595c88191bc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b60005460ff16610f73576040805162461bcd60e51b81526020600482015260196024820152781d1a194818dbdb9d1c9858dd081b9bdd081a5b9a5d081e595d603a1b604482015290519081900360640190fd5b610f7b611564565b5033600081815260036020908152604091829020825180840190935280548084526001909101549183018290529192916108fc91610fbf919063ffffffff61148416565b6040518115909202916000818181858888f19350505050158015610fe7573d6000803e3d6000fd5b50602081015160405161100291829181156108fc0291906000818181858888f1935050505015801561101d573d6000803e3d6000fd5b50336000818152600460209081526040808320805460ff191690556003825280832083815560010192909255815192835290517fd17202129b83db7880d6b9f25df81c58ad46f7e0e2c92236b1aa10663a4876679281900390910190a15050565b6001600160a01b031660009081526005602052604090205460ff1690565b61100081565b600381565b600a5460ff1681565b61100481565b6001600160a01b03811660009081526005602052604090205460ff1661111b576040805162461bcd60e51b81526020600482015260156024820152741b585b9859d95c88191bd95cdb89dd08195e1a5cdd605a1b604482015290519081900360640190fd5b6001600160a01b038082166000818152600660209081526040808320805460058452828520805460ff1990811690915582546001600160a01b0319908116909355600980865284872080548a16885260088752858820805490931690925595879052948452845490911690935580519384525191909316927f2002866d443ac6c241fecaaa2af4895828c7de2cc423b9d01f7969650f557c76928290030190a16001600160a01b03811615611214576001600160a01b0381166000818152600760209081526040808320805460ff1916905580519384529083019190915280516000805160206116628339815191529281900390910190a15b5050565b3b151590565b6000816040516020018082805190602001908083835b602083106112535780518252601f199092019160209182019101611234565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106112c15780518252601f1990920191602091820191016112a2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b6001600160a01b03811660009081526005602052604090205460ff1615611371576040805162461bcd60e51b81526020600482015260166024820152756d616e6167657220616c72656164792065786973747360501b604482015290519081900360640190fd5b6001600160a01b038116600081815260056020908152604091829020805460ff19166001179055815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a150565b6001600160a01b03811660008181526005602090815260408083208054600160ff1991821681179092556006845282852080546001600160a01b031916871790556007845293829020805490941617909255815192835290517fe0de8e71a22c046647f4ef744348fa126ad6d052d4ce070999481f69d45575179281900390910190a160408051600081526001600160a01b03831660208201528151600080516020611662833981519152929181900390910190a150565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cd565b9392505050565b6000818484111561155c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60405180604001604052806000815260200160008152509056fe70726f766973696f6e616c2072656c61796572206973206120636f6e74726163746c656e677468206f66206d616e616765722061646472657373206d69736d6174636872656c61796572206973206e6f7420612070726f766973696f6e616c2072656c61796572636f6e7472616374206973206e6f7420616c6c6f77656420746f20626520612072656c61796572746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e747261637470726f766973696f6e616c206973206e6f742073657420666f722074686973206d616e61676572a5a19d7e9dab30a215022382d7abe782b579986fcbedec9942ecd0db9510a148a2646970667358221220e87e5b6ca8388e14d2ec9c2453581b5e2346a0aaa8fa61707f4d522357ac45d464736f6c63430006040033", + Code: luban.ChapelRelayerHubContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b144718e94d7a1ebb24a7103202300f08826f369", - Code: "608060405234801561001057600080fd5b50600436106103995760003560e01c8063718a8aa8116101e9578063c27cdcfb1161010f578063dc927faf116100ad578063f7a251d71161007c578063f7a251d714610b2f578063f9a2bbc714610ba7578063fc3e590814610baf578063fd6a687914610bb757610399565b8063dc927faf14610af7578063e1c7392a14610aff578063e3b0480514610b07578063e6400bbe14610b2757610399565b8063ccc108d7116100e9578063ccc108d714610ab0578063d31f968d14610ab8578063d76a867514610ae7578063dc40433114610aef57610399565b8063c27cdcfb14610a80578063c780e9de14610aa0578063c81b166214610aa857610399565b80638cc8f56111610187578063a78abc1611610156578063a78abc16146109b2578063ab51bb96146109ba578063ac431751146109c2578063b0355f5b1461078157610399565b80638cc8f5611461088757806396713da91461099a5780639dc09262146109a2578063a1a11bf5146109aa57610399565b806375d47a0a116101c357806375d47a0a146108a75780637942fd05146108af57806384013b6a146108b7578063863fe4ab1461099257610399565b8063718a8aa81461088f578063719482d51461089757806374f079b81461089f57610399565b8063422f9050116102ce57806363e1394e1161026c5780636de380bd1161023b5780636de380bd146108575780636e47a51a1461085f5780636e47b4821461087f57806370fd5bad1461088757610399565b806363e1394e146107ff5780636a3cb34d146108075780636bacff2c1461080f5780636c46aa681461080757610399565b80634bf6c882116102a85780634bf6c882146107b957806351e80672146107c15780635692ddd3146107c95780635f832177146107d157610399565b8063422f90501461078957806343756e5c146107a9578063493279b1146107b157610399565b8063299b533d1161033b578063308325f411610315578063308325f4146106155780633a648b151461061d5780633bdc47a6146106595780633dffc3871461078157610399565b8063299b533d146105a35780632af6f399146105d75780632ff32aea146105f457610399565b806314b3023b1161037757806314b3023b146104015780631d1309351461041b5780631e275ae11461043757806322556cdc1461059b57610399565b806305e682581461039e5780630bee7a67146103bc5780630e2374a5146103dd575b600080fd5b6103a6610bbf565b6040805160ff9092168252519081900360200190f35b6103c4610bc4565b6040805163ffffffff9092168252519081900360200190f35b6103e5610bc9565b604080516001600160a01b039092168252519081900360200190f35b610409610bcf565b60408051918252519081900360200190f35b610423610bd5565b604080519115158252519081900360200190f35b610599600480360361010081101561044e57600080fd5b81018160a081016080820135600160201b81111561046b57600080fd5b82018360208201111561047d57600080fd5b803590602001918460018302840111600160201b8311171561049e57600080fd5b919390929091602081019035600160201b8111156104bb57600080fd5b8201836020820111156104cd57600080fd5b803590602001918460018302840111600160201b831117156104ee57600080fd5b919390929091602081019035600160201b81111561050b57600080fd5b82018360208201111561051d57600080fd5b803590602001918460018302840111600160201b8311171561053e57600080fd5b919390929091602081019035600160201b81111561055b57600080fd5b82018360208201111561056d57600080fd5b803590602001918460018302840111600160201b8311171561058e57600080fd5b509092509050610bde565b005b6104096112c2565b6105c0600480360360208110156105b957600080fd5b50356112c7565b6040805161ffff9092168252519081900360200190f35b610423600480360360208110156105ed57600080fd5b50356112dd565b6105fc6112f2565b60408051600792830b90920b8252519081900360200190f35b6104096112fb565b61063d6004803603602081101561063357600080fd5b503560ff16611301565b604080516001600160401b039092168252519081900360200190f35b61070c6004803603606081101561066f57600080fd5b60ff82351691602081013591810190606081016040820135600160201b81111561069857600080fd5b8201836020820111156106aa57600080fd5b803590602001918460018302840111600160201b831117156106cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061131c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561074657818101518382015260200161072e565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a6611392565b6104236004803603602081101561079f57600080fd5b503560ff16611397565b6103e56113ac565b6105c06113b2565b6103a66113b7565b6103e56113bc565b6104096113c2565b610599600480360360408110156107e757600080fd5b506001600160a01b03813581169160200135166113f2565b610409611652565b6105c061167a565b61082c6004803603602081101561082557600080fd5b503561167f565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b6104096116ae565b6103e56004803603602081101561087557600080fd5b503560ff166116d5565b6103e56116f0565b6103a661167a565b6103a66116f6565b6105c0611392565b6104096116fb565b6103e5611701565b6103a6611707565b610599600480360360a08110156108cd57600080fd5b810190602081018135600160201b8111156108e757600080fd5b8201836020820111156108f957600080fd5b803590602001918460018302840111600160201b8311171561091a57600080fd5b919390929091602081019035600160201b81111561093757600080fd5b82018360208201111561094957600080fd5b803590602001918460018302840111600160201b8311171561096a57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff1661170c565b6104096129c6565b6103a66129ce565b6103e56129d3565b6103e56129d9565b6104236129df565b6103c4610bbf565b610599600480360360408110156109d857600080fd5b810190602081018135600160201b8111156109f257600080fd5b820183602082011115610a0457600080fd5b803590602001918460018302840111600160201b83111715610a2557600080fd5b919390929091602081019035600160201b811115610a4257600080fd5b820183602082011115610a5457600080fd5b803590602001918460018302840111600160201b83111715610a7557600080fd5b5090925090506129e8565b61063d60048036036020811015610a9657600080fd5b503560ff166134ac565b6104096134c7565b6103e56134eb565b6105996134f1565b61042360048036036040811015610ace57600080fd5b5080356001600160a01b0316906020013560ff16613745565b61070c613765565b610409613784565b6103e561378a565b610599613790565b61063d60048036036020811015610b1d57600080fd5b503560ff16613b47565b610599613b62565b61059960048036036060811015610b4557600080fd5b60ff8235169190810190604081016020820135600160201b811115610b6957600080fd5b820183602082011115610b7b57600080fd5b803590602001918460018302840111600160201b83111715610b9c57600080fd5b919350915035613d81565b6103e5613ec4565b6103a6613eca565b6103e5613ecf565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610c23576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051610cd55760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b5051610d885760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e01576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610e45576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610ec1576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610ee28282613ed5565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610f4b576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561104157600080fd5b505afa158015611055573d6000803e3d6000fd5b505050506040513d602081101561106b57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611098908290898686613f1d565b6110e1576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f6001600481106110f457fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d60208110156111ea57600080fd5b505160408051808201909152600381526269626360e81b6020820152909150611217908290898686613f1d565b611260576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b5050505061126c61401a565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f191660200182016040528015611354576020820181803683370190505b506021810186905260018101879052828152905060418101600061137786614098565b509050611386818388516140a2565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff16611437576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d60208110156114a457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d602081101561150f57600080fd5b505190508061151c575060155b60008211801561152c5750808211155b61156b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906115d890836140e3565b9050801561164a5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b15801561163157600080fd5b505af1158015611645573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b60005460ff16611751576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b505161180d576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b03908116908316811461187d576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b1580156118f257600080fd5b505afa158015611906573d6000803e3d6000fd5b505050506040513d602081101561191c57600080fd5b50516119595760405162461bcd60e51b81526004018080602001828103825260238152602001806149d26023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b03166119c3576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611a2c576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611a7e5760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611ac2576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c066110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d6020811015611bd957600080fd5b505160408051808201909152600381526269626360e81b6020820152611bff8e8e613ed5565b8585613f1d565b611c4e576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611c9a57600080fd5b505afa158015611cae573d6000803e3d6000fd5b505050506040513d6020811015611cc457600080fd5b505190508b8b600080806060611cd9896143c8565b935093509350935083611d9b578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611d53578181015183820152602001611d3b565b50505050905090810190601f168015611d805780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050505050505050506129b6565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123205760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611e68578181015183820152602001611e50565b50505050905090810190601f168015611e955780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611eb557600080fd5b505af1925050508015611f9957506040513d6000823e601f3d908101601f191682016040526020811015611ee857600080fd5b8101908080516040519392919084600160201b821115611f0757600080fd5b908301906020820185811115611f1c57600080fd5b8251600160201b811182820188101715611f3557600080fd5b82525081516020918201929091019080838360005b83811015611f62578181015183820152602001611f4a565b50505050905090810190601f168015611f8f5780820380516001836020036101000a031916815260200191505b5060405250505060015b6122ab576040516000815260443d1015611fb557506000612050565b60046000803e60005160e01c6308c379a08114611fd6576000915050612050565b60043d036004833e81513d60248201116001600160401b038211171561200157600092505050612050565b80830180516001600160401b03811115612022576000945050505050612050565b8060208301013d860181111561204057600095505050505050612050565b601f01601f191660405250925050505b8061205b575061216d565b60ff8716600090815260076020526040812054612092916001600160401b0390911690899061208d906002908861131c565b614478565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b8381101561212d578181015183820152602001612115565b50505050905090810190601f16801561215a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506122a6565b3d808015612197576040519150601f19603f3d011682016040523d82523d6000602084013e61219c565b606091505b5060ff87166000908152600760205260408120546121cf916001600160401b0390911690899061208d906002908861131c565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b8381101561226a578181015183820152602001612252565b50505050905090810190601f1680156122975780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b61231a565b8051156123185760ff87166000908152600760205260408120546122e4916001600160401b0390911690899061208d906001908661131c565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b506128ee565b60ff8316600114156125c45760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b838110156123aa578181015183820152602001612392565b50505050905090810190601f1680156123d75780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156123f757600080fd5b505af1925050508015612408575060015b61231a576040516000815260443d1015612424575060006124bf565b60046000803e60005160e01c6308c379a081146124455760009150506124bf565b60043d036004833e81513d60248201116001600160401b0382111715612470576000925050506124bf565b80830180516001600160401b038111156124915760009450505050506124bf565b8060208301013d86018111156124af576000955050505050506124bf565b601f01601f191660405250925050505b806124ca575061252f565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf938693909283928301918501908083836000831561212d578181015183820152602001612115565b3d808015612559576040519150601f19603f3d011682016040523d82523d6000602084013e61255e565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351938693909283928301918501908083836000831561226a578181015183820152602001612252565b60ff8316600214156128ee5760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b8381101561264e578181015183820152602001612636565b50505050905090810190601f16801561267b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561269b57600080fd5b505af19250505080156126ac575060015b6128ec576040516000815260443d10156126c857506000612763565b60046000803e60005160e01c6308c379a081146126e9576000915050612763565b60043d036004833e81513d60248201116001600160401b038211171561271457600092505050612763565b80830180516001600160401b03811115612735576000945050505050612763565b8060208301013d860181111561275357600095505050505050612763565b601f01601f191660405250925050505b8061276e5750612817565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b838110156127d75781810151838201526020016127bf565b50505050905090810190601f1680156128045780820380516001836020036101000a031916815260200191505b509250505060405180910390a2506128ec565b3d808015612841576040519150601f19603f3d011682016040523d82523d6000602084013e612846565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b838110156128b0578181015183820152602001612898565b50505050905090810190601f1680156128dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a91339187911680612920575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b15801561298057600080fd5b505af1158015612994573d6000803e3d6000fd5b505050506040513d60208110156129aa57600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b3361100714612a285760405162461bcd60e51b815260040180806020018281038252602e815260200180614908602e913960400191505060405180910390fd5b600b5460ff1615612a6c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612ad584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146129050565b15612b7057604080516020601f8401819004810282018101909252828152600091612b18918585808385018382808284376000920191909152506146f992505050565b90506127108111158015612b2d5750600a8110155b612b685760405162461bcd60e51b81526004018080602001828103825260328152602001806149806032913960400191505060405180910390fd5b60015561341a565b612bd984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146129050565b15612d6157606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612c5c5760405162461bcd60e51b815260040180806020018281038252605a815260200180614821605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612c7a816146fe565b612ccb576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a3505050505061341a565b612dce84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146129050565b15612eff57606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612e515760405162461bcd60e51b815260040180806020018281038252604a815260200180614936604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612ef5576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b505050505061341a565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146129050565b156130985760028114612fa75760405162461bcd60e51b815260040180806020018281038252602d8152602001806148af602d913960400191505060405180910390fd5b6000612fea600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff16118015613004575060648161ffff16105b61304e576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6130fb84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146129050565b1561322e576002811461313f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806148dc602c913960400191505060405180910390fd5b6000613182600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561319c575060648161ffff16105b6131e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b61329984848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146129050565b156133dd57600281146132dd5760405162461bcd60e51b815260040180806020018281038252603481526020018061487b6034913960400191505060405180910390fd5b6000613320600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506146f992505050565b905060008161ffff1611801561333a575060648161ffff16105b61338b576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff1990921691909117905561341a565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff16613536576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561357957600080fd5b505afa15801561358d573d6000803e3d6000fd5b505050506040513d60208110156135a357600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b1580156135e457600080fd5b505afa1580156135f8573d6000803e3d6000fd5b505050506040513d602081101561360e57600080fd5b505190508061361b575060155b60008211801561362b5750808211155b61366a576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff166136b1576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f019020600090613702907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b9050801561374057600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b60005460ff16156137e8576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613ba7576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613bea57600080fd5b505afa158015613bfe573d6000803e3d6000fd5b505050506040513d6020811015613c1457600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613c5557600080fd5b505afa158015613c69573d6000803e3d6000fd5b505050506040513d6020811015613c7f57600080fd5b5051905080613c8c575060155b600082118015613c9c5750808211155b613cdb576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613d1f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613d71907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706140e3565b905080156137405761374061401a565b60005460ff16613dc6576040805162461bcd60e51b815260206004820152601960248201526000805160206149b2833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613e235760405162461bcd60e51b81526004018080602001828103825260318152602001806147f06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613e889284928a9261208d92909189918c908c908190840183828082843760009201919091525061131c92505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613f2c57506000614011565b606082518451865160800101016040519080825280601f01601f191660200182016040528015613f63576020820181803683370190505b5090506000613f7182614704565b602080890151825201905086600080613f8989614098565b8086526020909501949092509050613fa28285836140a2565b92830192613faf88614098565b8086526020909501949092509050613fc88285836140a2565b9283018a815260200192613fdb87614098565b9092509050613feb8285836140a2565b508351602001613ff961470a565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561405e576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b602081106140c2578251825260209283019290910190601f19016140a3565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff166141ac57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b0316421015806141dd575082816001015414155b156142b0576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b0316021783556001808401869055825191820190925233815261425291600284019190614728565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614364565b60005b600282015481101561433b57336001600160a01b03168260020182815481106142d857fe5b6000918252602090912001546001600160a01b03161415614333576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b6001016142b3565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff909116116143be576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff1916815560018101829055906143b2600283018261478d565b50506001915050613f17565b5060009392505050565b600080600060606021855110156143f8575050604080516000808252602082019092529092508291508190614471565b600185015160218601518651604080516020198301808252601f1960011990940193909316810160200190915260418901939291606091908015614443576020820181803683370190505b509050600061445182614098565b509050614463858260218d51036140a2565b506001975091955093509150505b9193509193565b600b5460ff16156144bc576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156144fb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003554360025561453c565b6003805460019081019182905554101561453c576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145d25781810151838201526020016145ba565b50505050905090810190601f1680156145ff5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146475780518252601f199092019160209182019101614628565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106146b55780518252601f199092019160209182019101614696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561477d579160200282015b8281111561477d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614748565b506147899291506147ae565b5090565b50805460008255906000526020600020908101906147ab91906147d5565b50565b6147d291905b808211156147895780546001600160a01b03191681556001016147b4565b90565b6147d291905b8082111561478957600081556001016147db56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a26469706673582212200822a3bd79df610f758cc9702e0be636463b002fc0089f5e09cf86383a7f79fc64736f6c63430006040033", + Code: luban.ChapelCrossChainContract, }, }, } @@ -466,12 +480,12 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "60806040526004361061048d5760003560e01c806388b32f1111610255578063c81b166211610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610bd7578063f9a2bbc714610bec578063fc3e590814610c01578063fccc281314610c16578063fd4ad81f14610c2b578063fd6a687914610c5a57610494565b8063e40716a114610b5a578063ea321e4914610b6f578063eb57e20214610b8f578063eda5868c14610baf578063f340fa0114610bc457610494565b8063d86222d511610108578063d86222d514610af1578063daacdb6614610b06578063dc927faf14610b1b578063e086c7b114610b30578063e1c7392a14610b4557610494565b8063c81b166214610a92578063c8509d81146108a0578063ce910b0c14610aa7578063d04aa99614610ac7578063d68fb56a14610adc57610494565b8063a78abc16116101d2578063aef198a911610196578063aef198a914610a31578063b7ab4db514610a46578063b8cf4ef114610a68578063bf9f499514610650578063c6d3394514610a7d57610494565b8063a78abc16146109b2578063aaf5eb68146109c7578063ab51bb96146109dc578063ac431751146109f1578063ad3c9da614610a1157610494565b80639dc09262116102195780639dc09262146109495780639fe0f8161461095e578063a0dc275814610973578063a1a11bf514610988578063a5422d5c1461099d57610494565b806388b32f11146108d55780638b5ad0c9146108ea5780638d19a410146108ff5780639369d7de1461091f57806396713da91461093457610494565b80635192c82c1161037c5780636e47b482116102f95780637942fd05116102bd5780637942fd05146108615780637a84ca2a1461087657806381650b621461088b578063831d65d1146108a0578063853230aa1461084c57806386249882146108c057610494565b80636e47b482146107f857806370fd5bad1461080d578063718a8aa81461082257806375d47a0a1461083757806378dfed4a1461084c57610494565b80635667515a116103405780635667515a146107675780635d77156c1461077c57806360eba4fe1461079157806362b72cf5146107b15780636969a25c146107c657610494565b80635192c82c146106e857806351e80672146106fd578063549b03f21461071257806355614fcc14610727578063565c56b31461074757610494565b80633365af3a1161040a57806343756e5c116103ce57806343756e5c1461067257806345cf9daf14610687578063493279b11461069c5780634bf6c882146106be5780634df6e0c3146106d357610494565b80633365af3a146105d857806335409f7f146105f85780633b071dcc146106185780633de0f0d81461063b5780633dffc3871461065057610494565b8063152ad3b811610451578063152ad3b81461054c5780631ff180691461056e578063219f22d514610583578063300c356714610598578063321d398a146105b857610494565b806304c4fec61461049957806307a56847146104b05780630bee7a67146104db5780630e2374a5146104fd5780631182b8751461051f57610494565b3661049457005b600080fd5b3480156104a557600080fd5b506104ae610c6f565b005b3480156104bc57600080fd5b506104c5610ce1565b6040516104d29190617594565b60405180910390f35b3480156104e757600080fd5b506104f0610ce7565b6040516104d291906175be565b34801561050957600080fd5b50610512610cec565b6040516104d2919061699b565b34801561052b57600080fd5b5061053f61053a366004616881565b610cf2565b6040516104d29190616b12565b34801561055857600080fd5b50610561610f2a565b6040516104d29190616b07565b34801561057a57600080fd5b506104c5610f33565b34801561058f57600080fd5b506104f0610f39565b3480156105a457600080fd5b506104ae6105b336600461670b565b610f3e565b3480156105c457600080fd5b506105616105d336600461682e565b6112c2565b3480156105e457600080fd5b506105616105f336600461682e565b611391565b34801561060457600080fd5b506104ae6106133660046166e4565b611442565b34801561062457600080fd5b5061062d61159b565b6040516104d2929190616a1d565b34801561064757600080fd5b506104c5611877565b34801561065c57600080fd5b5061066561187d565b6040516104d291906175cf565b34801561067e57600080fd5b50610512611882565b34801561069357600080fd5b506104c5611888565b3480156106a857600080fd5b506106b161188e565b6040516104d29190617585565b3480156106ca57600080fd5b50610665611893565b3480156106df57600080fd5b5061062d611898565b3480156106f457600080fd5b506104c5611a16565b34801561070957600080fd5b50610512611a1c565b34801561071e57600080fd5b506104c5611a22565b34801561073357600080fd5b506105616107423660046166e4565b611a28565b34801561075357600080fd5b506104c56107623660046166e4565b611a5d565b34801561077357600080fd5b50610665611aae565b34801561078857600080fd5b506104f0611ab3565b34801561079d57600080fd5b5061053f6107ac36600461682e565b611ab8565b3480156107bd57600080fd5b506104c5611b5e565b3480156107d257600080fd5b506107e66107e136600461682e565b611b64565b6040516104d2969594939291906169c8565b34801561080457600080fd5b50610512611bc8565b34801561081957600080fd5b50610665611bce565b34801561082e57600080fd5b50610665611bd3565b34801561084357600080fd5b50610512611bd8565b34801561085857600080fd5b506104c5611bde565b34801561086d57600080fd5b50610665611be4565b34801561088257600080fd5b506104c5611be9565b34801561089757600080fd5b506104f0611bef565b3480156108ac57600080fd5b506104ae6108bb366004616881565b611bf4565b3480156108cc57600080fd5b506104c5611c55565b3480156108e157600080fd5b506104c5611c5b565b3480156108f657600080fd5b506104c5611c61565b34801561090b57600080fd5b506104c561091a3660046166e4565b611c67565b34801561092b57600080fd5b506104ae611ca7565b34801561094057600080fd5b50610665611dbb565b34801561095557600080fd5b50610512611dc0565b34801561096a57600080fd5b506104c5611dc6565b34801561097f57600080fd5b506104c5611dcb565b34801561099457600080fd5b50610512611dd0565b3480156109a957600080fd5b5061053f611dd6565b3480156109be57600080fd5b50610561611df5565b3480156109d357600080fd5b506104c5611dfe565b3480156109e857600080fd5b506104f0611aae565b3480156109fd57600080fd5b506104ae610a0c3660046167d2565b611e07565b348015610a1d57600080fd5b506104c5610a2c3660046166e4565b6126b3565b348015610a3d57600080fd5b506104c56126c5565b348015610a5257600080fd5b50610a5b6126d2565b6040516104d29190616a0a565b348015610a7457600080fd5b506104c56127be565b348015610a8957600080fd5b506104c5611bce565b348015610a9e57600080fd5b506105126127c3565b348015610ab357600080fd5b5061053f610ac236600461682e565b6127c9565b348015610ad357600080fd5b506104c56127d6565b348015610ae857600080fd5b506104c56127db565b348015610afd57600080fd5b506104c561281a565b348015610b1257600080fd5b506104c5612826565b348015610b2757600080fd5b5061051261282c565b348015610b3c57600080fd5b506104c5612832565b348015610b5157600080fd5b506104ae612837565b348015610b6657600080fd5b506104c56129e6565b348015610b7b57600080fd5b50610561610b8a366004616793565b6129ec565b348015610b9b57600080fd5b506104ae610baa3660046166e4565b612b72565b348015610bbb57600080fd5b506104f0612c7a565b6104ae610bd23660046166e4565b612c7f565b348015610be357600080fd5b506104c5612f07565b348015610bf857600080fd5b50610512612f0d565b348015610c0d57600080fd5b50610665611dc6565b348015610c2257600080fd5b50610512612f13565b348015610c3757600080fd5b50610c4b610c4636600461682e565b612f19565b6040516104d29392919061759d565b348015610c6657600080fd5b50610512612fdb565b6000610c7a33611c67565b9050600b8181548110610c8957fe5b600091825260209091206001601690920201015460ff16610cc55760405162461bcd60e51b8152600401610cbc9061723d565b60405180910390fd5b6000610ccf6127db565b9050610cdc338383612fe1565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d175760405162461bcd60e51b8152600401610cbc90616cd1565b3361200014610d385760405162461bcd60e51b8152600401610cbc9061741c565b600b54610df657610d476163d0565b60015460005b81811015610df257600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794610dce936000805160206176678339815191529091019201906163ff565b506060820151610de49060038301906013616479565b505050806001019050610d4d565b5050505b610dfe6164a6565b6000610e3f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131cd92505050565b9150915080610e5b57610e526064613389565b92505050610f23565b815160009060ff16610e8057610e79836020015184604001516133ea565b9050610eef565b825160ff1660011415610eeb57826020015151600114610ec557600080516020617627833981519152604051610eb590617124565b60405180910390a1506067610ee6565b610e798360200151600081518110610ed957fe5b602002602001015161403e565b610eef565b5060655b63ffffffff8116610f145750506040805160008152602081019091529150610f239050565b610f1d81613389565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f5d5760405162461bcd60e51b8152600401610cbc9061746b565b6010544311610f7e5760405162461bcd60e51b8152600401610cbc90616e2d565b60005460ff16610fa05760405162461bcd60e51b8152600401610cbc90616cd1565b600f54610fb8576032600f55611002316011556112b8565b60006110023168056bc75e2d63100000811115610fe757610fe081606463ffffffff6141b516565b9150611030565b60115481111561102957610fe0606461101d600f54611011601154866141f790919063ffffffff16565b9063ffffffff61423916565b9063ffffffff6141b516565b50506112b8565b6040516309a99b4f60e41b815261100290639a99b4f09061105790309086906004016169af565b602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190616846565b611002316011559150816110be5750506112b8565b6000805b848110156110ec578585828181106110d657fe5b90506020020135820191508060010190506110c2565b50806110fa575050506112b8565b6000806000805b898110156112b0578489898381811061111657fe5b9050602002013588028161112657fe5b0493508a8a8281811061113557fe5b905060200201602081019061114a91906166e4565b6001600160a01b0381166000908152600460205260409020549093509150811561126657600060018084038154811061117f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111ec57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111df9190617594565b60405180910390a2611260565b6003546111ff908663ffffffff61427316565b6003908155810154611217908663ffffffff61427316565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611257908890617594565b60405180910390a25b506112a8565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161129f9190617594565b60405180910390a25b600101611101565b505050505050505b5050436010555050565b60015460009082106112d65750600061138c565b60006001600160a01b0316600183815481106112ee57fe5b60009182526020909120600490910201546001600160a01b0316148061131e5750600854158061131e5750600a54155b8061132d575060085460095410155b8061133e575061133c82611391565b155b8061136757506000600b838154811061135357fe5b906000526020600020906016020160000154115b8061137b575060016113776126d2565b5111155b156113885750600061138c565b5060015b919050565b60015460009082106113a55750600061138c565b600b5482106113e257600182815481106113bb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061138c565b600182815481106113ef57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561143c5750600b828154811061142357fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114635760405162461bcd60e51b8152600401610cbc9061753c565b600b54611521576114726163d0565b60015460005b8181101561151d57600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff19169115159190911790556040860151805187946114f9936000805160206176678339815191529091019201906163ff565b50606082015161150f9060038301906013616479565b505050806001019050611478565b5050505b6001600160a01b038116600090815260046020526040902054806115455750611598565b6001810390506000600b828154811061155a57fe5b600091825260209091206001601690920201015460ff16905061157d8383614298565b80156115865750805b15610cdc576009805460001901905550505b50565b60015460609081906000805b828110156115ee57600181815481106115bc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115e6576001909101905b6001016115a7565b5060608160405190808252806020026020018201604052801561161b578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561165457816020015b606081526020019060019003908161163f5790505b50600b54600094509091508414156117cf5760005b848110156117c9576001818154811061167e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117c157600181815481106116ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061170657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b50505050508285815181106117af57fe5b60209081029190910101526001909301925b600101611669565b5061186b565b60005b8481101561186957600181815481106117e757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611861576001818154811061181757fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061184257fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117d2565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c546060918291806118ac575060155b60606118b66126d2565b905060606118c38261464b565b9050828251116118da579094509250611873915050565b838383510310156118ec578282510393505b83156119225760c8430461190883838388880360008a8a6147b9565b6119208383838888038989038a8b8b8b5103016147b9565b505b60608360405190808252806020026020018201604052801561194e578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561198757816020015b60608152602001906001900390816119725790505b50905060005b85811015611a08578481815181106119a157fe5b60200260200101518382815181106119b557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119e157fe5b60200260200101518282815181106119f557fe5b602090810291909101015260010161198d565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b03811660009081526004602052604081205480611a5057600091505061138c565b60001901610f2381611391565b6001600160a01b03811660009081526004602052604081205480611a8557600091505061138c565b600180820381548110611a9457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60128181548110611ac557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b565780601f10611b2b57610100808354040283529160200191611b56565b820191906000526020600020905b815481529060010190602001808311611b3957829003601f168201915b505050505081565b60105481565b60018181548110611b7157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c155760405162461bcd60e51b8152600401610cbc9061741c565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c48939291906175dd565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c9d5760405162461bcd60e51b8152600401610cbc906173a4565b6000190192915050565b600b54611d6557611cb66163d0565b60015460005b81811015611d6157600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794611d3d936000805160206176678339815191529091019201906163ff565b506060820151611d539060038301906013616479565b505050806001019050611cbc565b5050505b600854611d725760036008555b600a54611d7f576002600a555b6000611d8a33611c67565b9050611d95816112c2565b611db15760405162461bcd60e51b8152600401610cbc906170e1565b6115983382614910565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016176876105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611e295760405162461bcd60e51b8152600401610cbc90616cd1565b3361100714611e4a5760405162461bcd60e51b8152600401610cbc906171aa565b611eb484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149a89050565b15611f515760208114611ed95760405162461bcd60e51b8152600401610cbc9061735e565b604080516020601f8401819004810282018101909252828152600091611f1791858580838501838280828437600092019190915250614a0192505050565b905060648110158015611f2d5750620186a08111155b611f495760405162461bcd60e51b8152600401610cbc90616f8a565b600255612670565b611fb184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149a89050565b1561204d5760208114611fd65760405162461bcd60e51b8152600401610cbc90616b57565b604080516020601f840181900481028201810190925282815260009161201491858580838501838280828437600092019190915250614a0192505050565b90506127108111156120385760405162461bcd60e51b8152600401610cbc90616e6f565b6006556007805460ff19166001179055612670565b6120b784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149a89050565b1561215157602081146120dc5760405162461bcd60e51b8152600401610cbc90616b8e565b604080516020601f840181900481028201810190925282815260009161211a91858580838501838280828437600092019190915250614a0192505050565b600c5490915080612129575060155b8082106121485760405162461bcd60e51b8152600401610cbc90616ee2565b50600855612670565b6121ba84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149a89050565b1561225357602081146121df5760405162461bcd60e51b8152600401610cbc90616c57565b604080516020601f840181900481028201810190925282815260009161221d91858580838501838280828437600092019190915250614a0192505050565b905060008111801561222f5750600a81105b61224b5760405162461bcd60e51b8152600401610cbc906174b8565b600a55612670565b6122c784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149a89050565b1561235657602081146122ec5760405162461bcd60e51b8152600401610cbc90616c0b565b604080516020601f840181900481028201810190925282815260009161232a91858580838501838280828437600092019190915250614a0192505050565b9050600d5481111561234e5760405162461bcd60e51b8152600401610cbc90617000565b600e55612670565b6123bf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149a89050565b1561244157602081146123e45760405162461bcd60e51b8152600401610cbc906171f8565b604080516020601f840181900481028201810190925282815260009161242291858580838501838280828437600092019190915250614a0192505050565b600d819055600e5490915081101561243b57600d54600e555b50612670565b6124a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149a89050565b1561255357602081146124ca5760405162461bcd60e51b8152600401610cbc90616c9c565b604080516020601f840181900481028201810190925282815260009161250891858580838501838280828437600092019190915250614a0192505050565b90506000811161252a5760405162461bcd60e51b8152600401610cbc90616d3f565b602981111561254b5760405162461bcd60e51b8152600401610cbc90616d87565b600c55612670565b6125bd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506149a89050565b1561265857602081146125e25760405162461bcd60e51b8152600401610cbc906172e1565b604080516020601f840181900481028201810190925282815260009161262091858580838501838280828437600092019190915250614a0192505050565b905060018110158015612634575060648111155b6126505760405162461bcd60e51b8152600401610cbc9061706f565b600f55612670565b60405162461bcd60e51b8152600401610cbc90617515565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516126a59493929190616b25565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612701576126ed81611391565b156126f9578160010191505b6001016126dc565b5060608160405190808252806020026020018201604052801561272e578160200160208202803683370190505b5090506000915060005b838110156127b55761274981611391565b156127ad576001818154811061275b57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061278657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612738565b50925050505b90565b601581565b61100281565b60138181548110611ac557fe5b603281565b60006127e56126d2565b519050600080600c54116127fa5760156127fe565b600c545b90508082111561280c578091505b8161281657600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561285a5760405162461bcd60e51b8152600401610cbc906172aa565b6128626164a6565b60006128886040518061062001604052806105ef81526020016176876105ef91396131cd565b91509150806128a95760405162461bcd60e51b8152600401610cbc906173db565b60005b8260200151518110156129ce576001836020015182815181106128cb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106129a157fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016128ac565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612af557612add85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a4557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b820191906000526020600020905b815481529060010190602001808311612ab657829003601f168201915b5050505050614a06565b15612aed5760019250505061143c565b6001016129f4565b5060125460005b81811015612b6657612b4d86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a4557fe5b15612b5e576001935050505061143c565b600101612afc565b50600095945050505050565b3361100114612b935760405162461bcd60e51b8152600401610cbc9061753c565b600b54612c5157612ba26163d0565b60015460005b81811015612c4d57600b805460018101825560009190915283516000805160206176478339815191526016909202918201908155602080860151600080516020617c768339815191528401805460ff1916911515919091179055604086015180518794612c29936000805160206176678339815191529091019201906163ff565b506060820151612c3f9060038301906013616479565b505050806001019050612ba8565b5050505b6000612c5c82614a6a565b9050612c67816112c2565b15612c7657612c768282614910565b5050565b606581565b334114612c9e5760405162461bcd60e51b8152600401610cbc9061746b565b60005460ff16612cc05760405162461bcd60e51b8152600401610cbc90616cd1565b60003411612ce05760405162461bcd60e51b8152600401610cbc90616fd1565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612d1057506006545b600083118015612d205750600081115b15612dc1576000612d3d61271061101d868563ffffffff61423916565b90508015612dbf5760405161dead9082156108fc029083906000818181858888f19350505050158015612d74573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612da49190617594565b60405180910390a1612dbc848263ffffffff6141f716565b93505b505b8115612ebf576000600180840381548110612dd857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612e4557846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612e389190617594565b60405180910390a2612eb9565b600354612e58908563ffffffff61427316565b6003908155810154612e70908563ffffffff61427316565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612eb0908790617594565b60405180910390a25b50612f01565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612ef89190617594565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612f2657fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612fd15780601f10612fa657610100808354040283529160200191612fd1565b820191906000526020600020905b815481529060010190602001808311612fb457829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612ff2575081155b80612ffd5750600954155b1561300a57506000610f23565b60096000815460019003919050819055506000613055600a5461101d8561101d600b898154811061303757fe5b6000918252602090912060169091020154439063ffffffff6141f716565b90506000600b858154811061306657fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b1580156130cb57600080fd5b505afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613103919061685e565b915091506000935080831061317d5761311c8787614298565b506040516305bfb49960e41b815261100190635bfb499090613142908a9060040161699b565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b505050506001935061318f565b81831061318f5761318d87614a6a565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b6131d56164a6565b60006131df6164a6565b6131e76164ca565b6131f86131f386614c0d565b614c32565b90506000805b61320783614c7c565b1561337b578061322c5761322261321d84614c9d565b614ceb565b60ff168452613373565b806001141561336e57606061324861324385614c9d565b614d6b565b9050805160405190808252806020026020018201604052801561328557816020015b6132726164ea565b81526020019060019003908161326a5790505b50856020018190525080516040519080825280602002602001820160405280156132c357816020015b60608152602001906001900390816132ae5790505b50604086015260005b8151811015613363576132dd6164ea565b606060006132fd8585815181106132f057fe5b6020026020010151614e3c565b9250925092508061331d578860009a509a50505050505050505050613384565b828960200151858151811061332e57fe5b6020026020010181905250818960400151858151811061334a57fe5b60200260200101819052505050508060010190506132cc565b506001925050613373565b61337b565b6001016131fe565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816133a35790505090506133c98363ffffffff16614f56565b816000815181106133d657fe5b6020026020010181905250610f2381614f69565b60006029835111156134215760008051602061762783398151915260405161341190616de4565b60405180910390a150606661143c565b60005b83518110156134bf5760005b818110156134b65784818151811061344457fe5b6020026020010151600001516001600160a01b031685838151811061346557fe5b6020026020010151600001516001600160a01b031614156134ae5760008051602061762783398151915260405161349b90616f3f565b60405180910390a160669250505061143c565b600101613430565b50600101613424565b506060806134cd8585614ff3565b60015491935091506000908190815b818110156135525767016345785d8a0000600182815481106134fa57fe5b9060005260206000209060040201600301541061351c5783600101935061354a565b60006001828154811061352b57fe5b906000526020600020906004020160030154111561354a578260010192505b6001016134dc565b5060608360405190808252806020026020018201604052801561357f578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156135ae578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156135dd578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561360c578160200160208202803683370190505b509050600060608760405190808252806020026020018201604052801561363d578160200160208202803683370190505b50905060608860405190808252806020026020018201604052801561366c578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190616846565b905067016345785d8a00008111156137375760008051602061762783398151915260405161371990617269565b60405180910390a160689d505050505050505050505050505061143c565b60005b898110156139a85767016345785d8a00006001828154811061375857fe5b906000526020600020906004020160030154106138dd576001818154811061377c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106137ad57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106137e257fe5b906000526020600020906004020160030154816137fb57fe5b066001838154811061380957fe5b90600052602060002090600402016003015403905061383183826141f790919063ffffffff16565b898e8151811061383d57fe5b6020026020010181815250506001828154811061385657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061388757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106138b457fe5b60209081029190910101526138cf868263ffffffff61427316565b95508c6001019c50506139a0565b6000600182815481106138ec57fe5b90600052602060002090600402016003015411156139a0576001818154811061391157fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061394257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061396f57fe5b906000526020600020906004020160030154838c8151811061398d57fe5b6020026020010181815250508a6001019a505b60010161373a565b5060008415613c1e576002546040516303702b2960e51b815261100491636e0565209188916139e2918e918e918d91420190600401616a8d565b6020604051808303818588803b1580156139fb57600080fd5b505af193505050508015613a2c575060408051601f3d908101601f19168201909252613a2991810190616773565b60015b613ba3576040516000815260443d1015613a4857506000613ae3565b60046000803e60005160e01c6308c379a08114613a69576000915050613ae3565b60043d036004833e81513d60248201116001600160401b0382111715613a9457600092505050613ae3565b80830180516001600160401b03811115613ab5576000945050505050613ae3565b8060208301013d8601811115613ad357600095505050505050613ae3565b601f01601f191660405250925050505b80613aee5750613b30565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613b229190616b12565b60405180910390a250613b9e565b3d808015613b5a576040519150601f19603f3d011682016040523d82523d6000602084013e613b5f565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613b949190616b12565b60405180910390a2505b613c1e565b8015613be5577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613bd89190617594565b60405180910390a1613c1c565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613c1390616bd4565b60405180910390a25b505b8015613dd45760005b8751811015613dd2576000888281518110613c3e57fe5b60200260200101519050600060018281548110613c5757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613c8857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613d445760018281548110613cc957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613d1857fe5b906000526020600020906004020160030154604051613d379190617594565b60405180910390a2613dc8565b60018281548110613d5157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613da057fe5b906000526020600020906004020160030154604051613dbf9190617594565b60405180910390a25b5050600101613c27565b505b835115613f1e5760005b8451811015613f1c576000858281518110613df557fe5b60200260200101516001600160a01b03166108fc868481518110613e1557fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613eab57858281518110613e4b57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613e8957fe5b6020026020010151604051613e9e9190617594565b60405180910390a2613f13565b858281518110613eb757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613ef557fe5b6020026020010151604051613f0a9190617594565b60405180910390a25b50600101613dde565b505b5050505050505050505050506000471115613f9a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613f629190617594565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613f98573d6000803e3d6000fd5b505b60006003819055600555815115613fb557613fb5828261522c565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ff257600080fd5b505af1158015614006573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b031660009081526004602052604081205480158061408f575060018082038154811061406f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156140d55782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061138c565b60015460055460001982011180159061412b5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061138c565b60058054600190810190915580548190600019860190811061414957fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159e6565b6000610f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615a1d565b6000826142485750600061143c565b8282028284828161425557fe5b0414610f235760405162461bcd60e51b8152600401610cbc90617169565b600082820183811015610f235760405162461bcd60e51b8152600401610cbc90616d08565b600080600183815481106142a857fe5b906000526020600020906004020160030154905060006001808054905003905060016142d26126d2565b5111614307576000600185815481106142e757fe5b90600052602060002090600402016003018190555060009250505061143c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143409190617594565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561452d576001816001018154811061438157fe5b90600052602060002090600402016001828154811061439c57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061445d57fe5b9060005260206000209060160201600b828154811061447857fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546144cf93838601939082161561010002600019019091160461651f565b506144e260038281019084016013616594565b509050508060010160046000600184815481106144fb57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614363565b50600180548061453957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061458c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906145be60028301826165be565b6145cc600383016000616602565b5050905560008183816145db57fe5b049050801561463f5760015460005b8181101561463c57826001828154811061460057fe5b906000526020600020906004020160030154016001828154811061462057fe5b60009182526020909120600360049092020101556001016145ea565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561468a57816020015b60608152602001906001900390816146755790505b50600b5490915083146146a157925061138c915050565b60005b828110156147b057600b6001600460008985815181106146c057fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106146f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561478c5780601f106147615761010080835404028352916020019161478c565b820191906000526020600020905b81548152906001019060200180831161476f57829003601f168201915b505050505082828151811061479d57fe5b60209081029190910101526001016146a4565b50949350505050565b60005b8281101561490657600082878388016040516020016147dc92919061698d565b6040516020818303038152906040528051906020012060001c816147fc57fe5b069050808501828701146148fd576000898388018151811061481a57fe5b602002602001015190506060898489018151811061483457fe5b602002602001015190508a8388018151811061484c57fe5b60200260200101518b858a018151811061486257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061489157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106148bf57fe5b60200260200101518a858a01815181106148d557fe5b6020026020010181905250808a848901815181106148ef57fe5b602002602001018190525050505b506001016147bc565b5050505050505050565b600980546001908101909155600b80548390811061492a57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061496057fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016149bb9190616971565b60405160208183030381529060405280519060200120836040516020016149e29190616971565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a225760009250614a60565b600160208701838101602088015b600284838510011415614a5b578051835114614a4f5760009650600093505b60209283019201614a30565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614a935750600019905061138c565b600181039050600060018281548110614aa857fe5b9060005260206000209060040201600301549050600060018381548110614acb57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b24908590617594565b60405180910390a280614b3c5782935050505061138c565b6000818381614b4757fe5b0490508015614c035760005b84811015614ba5578160018281548110614b6957fe5b9060005260206000209060040201600301540160018281548110614b8957fe5b6000918252602090912060036004909202010155600101614b53565b50600180549085015b81811015614c00578260018281548110614bc457fe5b9060005260206000209060040201600301540160018281548110614be457fe5b6000918252602090912060036004909202010155600101614bae565b50505b5091949350505050565b614c15616611565b506040805180820190915281518152602082810190820152919050565b614c3a6164ca565b614c4382615a49565b614c4c57600080fd5b6000614c5b8360200151615a83565b60208085015160408051808201909152868152920190820152915050919050565b6000614c86616611565b505080518051602091820151919092015191011190565b614ca5616611565b614cae82614c7c565b614cb757600080fd5b60208201516000614cc782615ae6565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614d0057508151602110155b614d0957600080fd5b6000614d188360200151615a83565b90508083600001511015614d3e5760405162461bcd60e51b8152600401610cbc90617327565b8251602080850151830180519284900392918310156147b057506020919091036101000a90049392505050565b6060614d7682615a49565b614d7f57600080fd5b6000614d8a83615bc7565b9050606081604051908082528060200260200182016040528015614dc857816020015b614db5616611565b815260200190600190039081614dad5790505b5090506000614dda8560200151615a83565b60208601510190506000805b84811015614e3157614df783615ae6565b9150604051806040016040528083815260200184815250848281518110614e1a57fe5b602090810291909101015291810191600101614de6565b509195945050505050565b614e446164ea565b60606000614e506164ea565b6060614e5a6164ca565b614e6387614c32565b90506000805b614e7283614c7c565b15614f475780614e9d57614e8d614e8884614c9d565b615c23565b6001600160a01b03168552614f3f565b8060011415614ec557614eb2614e8884614c9d565b6001600160a01b03166020860152614f3f565b8060021415614eed57614eda614e8884614c9d565b6001600160a01b03166040860152614f3f565b8060031415614f1957614f0261321d84614c9d565b6001600160401b0316606086015260019150614f3f565b8060041415614f3a57614f33614f2e84614c9d565b615c3d565b9350614f3f565b614f47565b600101614e69565b50929791965091945092505050565b606061143c614f6483615cad565b615d93565b6060815160001415614f8a575060408051600081526020810190915261138c565b606082600081518110614f9957fe5b602002602001015190506000600190505b8351811015614fda57614fd082858381518110614fc357fe5b6020026020010151615de5565b9150600101614faa565b50610f23614fed825160c060ff16615e62565b82615de5565b6060806000808080806150046127db565b6001549091505b801561511257600181039250600b838154811061502457fe5b600091825260209091206001601690920201015460ff1661504457615109565b6001838154811061505157fe5b60009182526020909120600490910201546001600160a01b03169450615078858484612fe1565b935083158061508b575060018a51038610155b1561509557615109565b60005b8a5181101561510757856001600160a01b03168b82815181106150b757fe5b6020026020010151600001516001600160a01b031614156150ff5760018b82815181106150e057fe5b6020908102919091010151901515608090910152600190960195615107565b600101615098565b505b6000190161500b565b508489510360405190808252806020026020018201604052801561515057816020015b61513d6164ea565b8152602001906001900390816151355790505b5096508489510360405190808252806020026020018201604052801561518a57816020015b60608152602001906001900390816151755790505b5095506000915060005b895181101561521e578981815181106151a957fe5b602002602001015160800151615216578981815181106151c557fe5b60200260200101518884815181106151d957fe5b60200260200101819052508881815181106151f057fe5b602002602001015187848151811061520457fe5b60200260200101819052508260010192505b600101615194565b5050505050505b9250929050565b600154825160005b828110156153495760016152466164ea565b6001838154811061525357fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561531d578781815181106152e357fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615315576000925061531d565b6001016152cf565b50811561533f5780516001600160a01b03166000908152600460205260408120555b5050600101615234565b508082111561540857805b8281101561540657600180548061536757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806153ba57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906153ec60028301826165be565b6153fa600383016000616602565b50509055600101615354565b505b60008183106154175781615419565b825b905060005b81811015615788576154cb86828151811061543557fe5b60200260200101516001838154811061544a57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615f34565b61567f5780600101600460008884815181106154e357fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061551f57fe5b60200260200101516001828154811061553457fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106155ef57fe5b6020026020010151600b828154811061560457fe5b906000526020600020906016020160020190805190602001906156289291906163ff565b506000600b828154811061563857fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061566957fe5b6000918252602090912060169091020155615780565b61571085828151811061568e57fe5b6020026020010151600b83815481106156a357fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b61575b5784818151811061572057fe5b6020026020010151600b828154811061573557fe5b906000526020600020906016020160020190805190602001906157599291906163ff565b505b60006001828154811061576a57fe5b9060005260206000209060040201600301819055505b60010161541e565b5082821115615960576157996163d0565b835b8381101561595d578581815181106157af57fe5b6020026020010151826040018190525060018782815181106157cd57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020617647833981519152810191825585830151600080516020617c768339815191528201805491151560ff199092169190911790559285015180518694929361590393600080516020617667833981519152019201906163ff565b5060608201516159199060038301906013616479565b505050806001016004600089848151811061593057fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161579b565b50505b615968615fb5565b615970616197565b6000600981905560015493505b838110156159de576000600b828154811061599457fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106159c557fe5b600091825260209091206016909102015560010161597d565b505050505050565b60008183615a075760405162461bcd60e51b8152600401610cbc9190616b12565b506000838581615a1357fe5b0495945050505050565b60008184841115615a415760405162461bcd60e51b8152600401610cbc9190616b12565b505050900390565b8051600090615a5a5750600061138c565b6020820151805160001a9060c0821015615a795760009250505061138c565b5060019392505050565b8051600090811a6080811015615a9d57600091505061138c565b60b8811080615ab8575060c08110801590615ab8575060f881105b15615ac757600191505061138c565b60c0811015615adb5760b51901905061138c565b60f51901905061138c565b80516000908190811a6080811015615b015760019150615bc0565b60b8811015615b1657607e1981019150615bc0565b60c0811015615b6757600060b78203600186019550806020036101000a865104915060018101820193505080831015615b615760405162461bcd60e51b8152600401610cbc906170b6565b50615bc0565b60f8811015615b7c5760be1981019150615bc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615bbe5760405162461bcd60e51b8152600401610cbc906170b6565b505b5092915050565b8051600090615bd85750600061138c565b60008090506000615bec8460200151615a83565b602085015185519181019250015b80821015615c1a57615c0b82615ae6565b82019150826001019250615bfa565b50909392505050565b8051600090601514615c3457600080fd5b61143c82614ceb565b8051606090615c4b57600080fd5b6000615c5a8360200151615a83565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615c91576020820181803683370190505b50905060008160200190506147b0848760200151018285616385565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615cf157506018615d15565b6fffffffffffffffffffffffffffffffff198416615d1157506010615d15565b5060005b6020811015615d4b57818181518110615d2a57fe5b01602001516001600160f81b03191615615d4357615d4b565b600101615d15565b60008160200390506060816040519080825280601f01601f191660200182016040528015615d80576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615dc55750607f60f81b82600081518110615db357fe5b01602001516001600160f81b03191611155b15615dd157508061138c565b61143c615de38351608060ff16615e62565b835b6060806040519050835180825260208201818101602087015b81831015615e16578051835260209283019201615dfe565b50855184518101855292509050808201602086015b81831015615e43578051835260209283019201615e2b565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615e8c5760405162461bcd60e51b8152600401610cbc90616eba565b60408051600180825281830190925260609160208201818036833701905050905060378411615ee65782840160f81b81600081518110615ec857fe5b60200101906001600160f81b031916908160001a905350905061143c565b6060615ef185615cad565b90508381510160370160f81b82600081518110615f0a57fe5b60200101906001600160f81b031916908160001a905350615f2b8282615de5565b95945050505050565b805182516000916001600160a01b039182169116148015615f6e575081602001516001600160a01b031683602001516001600160a01b0316145b8015615f93575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f235750506060908101519101516001600160401b0390811691161490565b6012546013548082111561600057805b82811015615ffe576012805480615fd857fe5b600190038181906000526020600020016000615ff491906165be565b9055600101615fc5565b505b600081831061600f5781616011565b825b905060005b81811015616129576160ce6012828154811061602e57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156160bc5780601f10616091576101008083540402835291602001916160bc565b820191906000526020600020905b81548152906001019060200180831161609f57829003601f168201915b505050505060138381548110612a4557fe5b61612157601381815481106160df57fe5b90600052602060002001601282815481106160f657fe5b90600052602060002001908054600181600116156101000203166002900461611f92919061651f565b505b600101616016565b5082821115610cdc57825b82811015612f015760126013828154811061614b57fe5b600091825260208083208454600181810187559585529190932092909101805461618e94939092019290916002610100928216159290920260001901160461651f565b50600101616134565b601354600b54808211156161e257805b828110156161e05760138054806161ba57fe5b6001900381819060005260206000200160006161d691906165be565b90556001016161a7565b505b60008183106161f157816161f3565b825b905060005b81811015616312576162b06013828154811061621057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561629e5780601f106162735761010080835404028352916020019161629e565b820191906000526020600020905b81548152906001019060200180831161628157829003601f168201915b5050505050600b83815481106156a357fe5b61630a57600b81815481106162c157fe5b9060005260206000209060160201600201601382815481106162df57fe5b90600052602060002001908054600181600116156101000203166002900461630892919061651f565b505b6001016161f8565b5082821115610cdc57825b82811015612f01576013600b828154811061633457fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461637c9593909401939092600019908216156101000201160461651f565b5060010161631d565b8061638f57610cdc565b5b602081106163af578251825260209283019290910190601f1901616390565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016163fa61662b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061644057805160ff191683800117855561646d565b8280016001018555821561646d579182015b8281111561646d578251825591602001919060010190616452565b5061281692915061664a565b826013810192821561646d579160200282018281111561646d578251825591602001919060010190616452565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806164dd616611565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616558578054855561646d565b8280016001018555821561646d57600052602060002091601f016020900482015b8281111561646d578254825591600101919060010190616579565b826013810192821561646d579182018281111561646d578254825591600101919060010190616579565b50805460018160011615610100020316600290046000825580601f106165e45750611598565b601f016020900490600052602060002090810190611598919061664a565b5061159890601381019061664a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127bb91905b808211156128165760008155600101616650565b60008083601f840112616675578182fd5b5081356001600160401b0381111561668b578182fd5b602083019150836020808302850101111561522557600080fd5b60008083601f8401126166b6578182fd5b5081356001600160401b038111156166cc578182fd5b60208301915083602082850101111561522557600080fd5b6000602082840312156166f5578081fd5b81356001600160a01b0381168114610f23578182fd5b60008060008060408587031215616720578283fd5b84356001600160401b0380821115616736578485fd5b61674288838901616664565b9096509450602087013591508082111561675a578384fd5b5061676787828801616664565b95989497509550505050565b600060208284031215616784578081fd5b81518015158114610f23578182fd5b600080602083850312156167a5578182fd5b82356001600160401b038111156167ba578283fd5b6167c6858286016166a5565b90969095509350505050565b600080600080604085870312156167e7578384fd5b84356001600160401b03808211156167fd578586fd5b616809888389016166a5565b90965094506020870135915080821115616821578384fd5b50616767878288016166a5565b60006020828403121561683f578081fd5b5035919050565b600060208284031215616857578081fd5b5051919050565b60008060408385031215616870578182fd5b505080516020909101519092909150565b600080600060408486031215616895578283fd5b833560ff811681146168a5578384fd5b925060208401356001600160401b038111156168bf578283fd5b6168cb868287016166a5565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169105781516001600160a01b0316875295820195908201906001016168eb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261695d8160208601602086016175fa565b601f01601f19169290920160200192915050565b600082516169838184602087016175fa565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f2360208301846168d8565b600060408252616a3060408301856168d8565b602083820381850152818551808452828401915082838202850101838801865b83811015616a7e57601f19878403018552616a6c838351616945565b94860194925090850190600101616a50565b50909998505050505050505050565b600060808252616aa060808301876168d8565b828103602084810191909152865180835287820192820190845b81811015616ad657845183529383019391830191600101616aba565b50508481036040860152616aea81886168d8565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f236020830184616945565b600060408252616b3960408301868861691b565b8281036020840152616b4c81858761691b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615f2b6060830184616945565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615f2b60408301848661691b565b60005b838110156176155781810151838201526020016175fd565b83811115612f01575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa2646970667358221220f34958dbcda05e6d94770a38da790183bc12f970a53f415eb7a8e4ba99cbf89e64736f6c63430006040033", + Code: plato.MainnetValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b604051610299919061336a565b60405180910390f35b6102aa6104e2565b6040516102999190612c1b565b6102ca6102c5366004612b51565b6104e8565b6040516102999190612c53565b6102df61054e565b6040516102999190612c48565b6102ff6102fa3660046128ff565b610557565b60405161029993929190613352565b6102aa61031c366004612b21565b61057a565b61033461032f3660046128ff565b6105a1565b604051610299929190613344565b61034a6105f8565b604051610299919061331a565b61034a6105fe565b610367610604565b604051610299919061337b565b6102aa610609565b61038461060f565b604051610299919061330b565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b73660046128ff565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612b51565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc610457366004612a05565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612b51565b610ceb565b6103bc61048d3660046128ff565b610d5c565b6103bc6104a0366004612a6e565b61114d565b61034a611733565b6102aa611738565b6103bc61173e565b6102aa61177a565b610367611780565b6103bc611785565b6102aa611bce565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b90613163565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612d04565b60405162461bcd60e51b815260040161050b90613254565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac6126e6565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612f48565b60005460ff166106685760405162461bcd60e51b815260040161050b90612d04565b61200063f7a251d7600b61067b84611bd4565b60006040518463ffffffff1660e01b815260040161069b93929190613389565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b90613163565b60005460ff166107435760405162461bcd60e51b815260040161050b90612d04565b61074b612709565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca692505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c69161336a565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108039161336a565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612d04565b33611007146108845760405162461bcd60e51b815260040161050b90613020565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611d269050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612ed4565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611d8092505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b9061311e565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611d269050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b9061306e565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611d8092505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d72565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611d269050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b9061328b565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611d8092505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e88565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611d269050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612da7565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611d8592505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b906131ff565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612c66565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b90613163565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612d04565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b906131b2565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612d04565b6003544311610dbe5760405162461bcd60e51b815260040161050b906132d6565b3a15610ddc5760405162461bcd60e51b815260040161050b90612fc3565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612c1b565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906129e5565b610e5a57611146565b610e626126e6565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612c1b565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611bd4565b60006040518463ffffffff1660e01b8152600401610fc793929190613389565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c836020015183604051611065929190613323565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612c1b565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612d04565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612c1b565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906129e5565b6112005760405162461bcd60e51b815260040161050b90612c98565b60075460ff166112225760405162461bcd60e51b815260040161050b90612ccf565b60065461122f5760146006555b438160000151604001516101000111801561125557504381602001516040015161010001115b6112715760405162461bcd60e51b815260040161050b90613226565b80602001516020015181600001516020015114801561129f5750806020015160600151816000015160600151145b156112bc5760405162461bcd60e51b815260040161050b90612f1b565b8051604081015190511080156112db5750602081015160408101519051105b6112f75760405162461bcd60e51b815260040161050b90612e51565b60208101515181515110801561131c5750806000015160400151816020015160400151105b8061134757508051516020820151511080156113475750806020015160400151816000015160400151105b806113615750806020015160400151816000015160400151145b61137d5760405162461bcd60e51b815260040161050b90612d3b565b604080820151905163ea321e4960e01b81526110009163ea321e49916113a69190600401612c53565b60206040518083038186803b1580156113be57600080fd5b505afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f691906129e5565b6114125760405162461bcd60e51b815260040161050b90612ff1565b61142481600001518260400151611dad565b801561143d575061143d81602001518260400151611dad565b6114595760405162461bcd60e51b815260040161050b90612df2565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561149757600080fd5b505afa1580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d39190810190612922565b9150915060005b8151811015611610576115048282815181106114f257fe5b60200260200101518560400151611f85565b15611608576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f09061153c9033908590600401612c2f565b602060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612b39565b506110006001600160a01b03166335409f7f8584815181106115ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016115d09190612c1b565b600060405180830381600087803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b5050505050611610565b6001016114da565b50600061162284604001516000611fe9565b90506120006001600160a01b031663f7a251d7600b6116448760400151612005565b60006040518463ffffffff1660e01b815260040161166493929190613389565b600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b611701573d8080156116bd576040519150601f19603f3d011682016040523d82523d6000602084013e6116c2565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f3628826040516116f39190612c53565b60405180910390a25061172d565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156117615760405162461bcd60e51b815260040161050b906130b0565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146117a65760405162461bcd60e51b815260040161050b90612f48565b60005460ff166117c85760405162461bcd60e51b815260040161050b90612d04565b6001546117d457611bcc565b600154600090600019015b808211611ba0576000805b82841015611903576117fa6126e6565b600260006001878154811061180b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118ed5760046005548161187857fe5b0481602001510381602001818152505080600260006001888154811061189a57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff19169115159190911790556118f7565b6001925050611903565b508360010193506117ea565b828411611a9a576119126126e6565b600260006001868154811061192357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a0b5760046005548161199057fe5b048160200151038160200181815250508060026000600187815481106119b257fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a9a9050565b6002600060018681548110611a1c57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611a6057fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a8d5750611a9a565b5060001990920191611903565b818015611aa45750805b15611b83576002600060018681548110611aba57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611b0157fe5b600091825260209091200154600180546001600160a01b039092169186908110611b2757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611b6057fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b8f575050611ba0565b5050600190910190600019016117df565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611bef579050509050611c18836001600160a01b0316612040565b81600081518110611c2557fe5b6020026020010181905250611c3943612063565b81600181518110611c4657fe5b6020908102919091010152611c5b6038612063565b81600281518110611c6857fe5b6020026020010181905250611c7c42612063565b81600381518110611c8957fe5b6020026020010181905250611c9d81612076565b9150505b919050565b611cae612709565b6000611cb8612709565b611cc061271b565b611cd1611ccc86612100565b612125565b90506000805b611ce08361216f565b15611d195780611d0c57611cfb611cf684612190565b6121de565b63ffffffff16845260019150611d11565b611d19565b600101611cd7565b5091935090915050915091565b600081604051602001611d399190612bff565b6040516020818303038152906040528051906020012083604051602001611d609190612bff565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d9f576001915081611da5565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611dc9575050604080516020808252818301909252919250606091908082018180368337019050509050611e0e8560000151612063565b82600081518110611e1b57fe5b6020026020010181905250611e366020866020015183612260565b611e3f81612270565b82600181518110611e4c57fe5b6020026020010181905250611e648560400151612063565b82600281518110611e7157fe5b6020026020010181905250611e8c6020866060015183612260565b611e9581612270565b82600381518110611ea257fe5b6020026020010181905250611ec86020611ebb84612076565b8051906020012083612260565b6040805160b080825260e08201909252606091602082018180368337019050509050611ef88183600060206122c6565b611f0a818760800151602060606122c6565b611f188186608060306122c6565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611f5557600080fd5b506001611f63826000612319565b60ff1614611f78576000945050505050611d7a565b5060019695505050505050565b815181516000916001918114808314611fa15760009250611fdf565b600160208701838101602088015b600284838510011415611fda578051835114611fce5760009650600093505b60209283019201611faf565b505050505b5090949350505050565b60008160200183511015611ffc57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612020579050509050611c1883612270565b60408051600560a21b8318601482015260348101909152606090611c9d81612270565b6060611d7a61207183612335565b612270565b60608151600014156120975750604080516000815260208101909152611ca1565b6060826000815181106120a657fe5b602002602001015190506000600190505b83518110156120e7576120dd828583815181106120d057fe5b602002602001015161241b565b91506001016120b7565b50611c9d6120fa825160c060ff16612498565b8261241b565b61210861273b565b506040805180820190915281518152602082810190820152919050565b61212d61271b565b6121368261256a565b61213f57600080fd5b600061214e83602001516125a4565b60208085015160408051808201909152868152920190820152915050919050565b600061217961273b565b505080518051602091820151919092015191011190565b61219861273b565b6121a18261216f565b6121aa57600080fd5b602082015160006121ba82612607565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906121f357508151602110155b6121fc57600080fd5b600061220b83602001516125a4565b905080836000015110156122315760405162461bcd60e51b815260040161050b906130e7565b82516020808501518301805192849003929183101561225757826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122a25750607f60f81b8260008151811061229057fe5b01602001516001600160f81b03191611155b156122ae575080611ca1565b611d7a6122c08351608060ff16612498565b8361241b565b60005b818110156106c9578381815181106122dd57fe5b602001015160f81c60f81b8584806001019550815181106122fa57fe5b60200101906001600160f81b031916908160001a9053506001016122c9565b6000816001018351101561232c57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166123795750601861239d565b6fffffffffffffffffffffffffffffffff1984166123995750601061239d565b5060005b60208110156123d3578181815181106123b257fe5b01602001516001600160f81b031916156123cb576123d3565b60010161239d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612408576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561244c578051835260209283019201612434565b50855184518101855292509050808201602086015b81831015612479578051835260209283019201612461565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124c25760405162461bcd60e51b815260040161050b90612e29565b6040805160018082528183019092526060916020820181803683370190505090506037841161251c5782840160f81b816000815181106124fe57fe5b60200101906001600160f81b031916908160001a9053509050611d7a565b606061252785612335565b90508381510160370160f81b8260008151811061254057fe5b60200101906001600160f81b031916908160001a905350612561828261241b565b95945050505050565b805160009061257b57506000611ca1565b6020820151805160001a9060c082101561259a57600092505050611ca1565b5060019392505050565b8051600090811a60808110156125be576000915050611ca1565b60b88110806125d9575060c081108015906125d9575060f881105b156125e8576001915050611ca1565b60c08110156125fc5760b519019050611ca1565b60f519019050611ca1565b80516000908190811a608081101561262257600191506126df565b60b881101561263757607e19810191506126df565b60c081101561268857600060b78203600186019550806020036101000a8651049150600181018201935050808310156126825760405162461bcd60e51b815260040161050b90612f98565b506126df565b60f881101561269d5760be19810191506126df565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611da55760405162461bcd60e51b815260040161050b90612f98565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061272e61273b565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612765578081fd5b8151612778612773826133dc565b6133b5565b818152915060208083019084810160005b848110156127ee578151870188603f8201126127a457600080fd5b838101516127b4612773826133fc565b81815260408b818486010111156127ca57600080fd5b6127d983888401838701613420565b50865250509282019290820190600101612789565b505050505092915050565b60008083601f84011261280a578182fd5b50813567ffffffffffffffff811115612821578182fd5b60208301915083602082850101111561283957600080fd5b9250929050565b600082601f830112612850578081fd5b813561285e612773826133fc565b915080825283602082850101111561287557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561289f578081fd5b6128a960a06133b5565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156128e757600080fd5b6128f384828501612840565b60808301525092915050565b600060208284031215612910578081fd5b813561291b8161344c565b9392505050565b60008060408385031215612934578081fd5b825167ffffffffffffffff8082111561294b578283fd5b81850186601f82011261295c578384fd5b8051925061296c612773846133dc565b80848252602080830192508084018a82838902870101111561298c578788fd5b8794505b868510156129b75780516129a38161344c565b845260019490940193928101928101612990565b5088015190965093505050808211156129ce578283fd5b506129db85828601612755565b9150509250929050565b6000602082840312156129f6578081fd5b8151801515811461291b578182fd5b60008060008060408587031215612a1a578182fd5b843567ffffffffffffffff80821115612a31578384fd5b612a3d888389016127f9565b90965094506020870135915080821115612a55578384fd5b50612a62878288016127f9565b95989497509550505050565b600060208284031215612a7f578081fd5b813567ffffffffffffffff80821115612a96578283fd5b81840160608187031215612aa8578384fd5b612ab260606133b5565b9250803582811115612ac2578485fd5b612ace8782840161288e565b845250602081013582811115612ae2578485fd5b612aee8782840161288e565b602085015250604081013582811115612b05578485fd5b612b1187828401612840565b6040850152509195945050505050565b600060208284031215612b32578081fd5b5035919050565b600060208284031215612b4a578081fd5b5051919050565b600080600060408486031215612b65578283fd5b833560ff81168114612b75578384fd5b9250602084013567ffffffffffffffff811115612b90578283fd5b612b9c868287016127f9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612beb816020860160208601613420565b601f01601f19169290920160200192915050565b60008251612c11818460208701613420565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261291b6020830184612bd3565b600060408252612c7a604083018688612ba9565b8281036020840152612c8d818587612ba9565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008382526040602083015261333c6040830184612bd3565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526133a56060830185612bd3565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156133d457600080fd5b604052919050565b600067ffffffffffffffff8211156133f2578081fd5b5060209081020190565b600067ffffffffffffffff821115613412578081fd5b50601f01601f191660200190565b60005b8381101561343b578181015183820152602001613423565b8381111561172d5750506000910152565b6001600160a01b038116811461346157600080fd5b5056fea2646970667358221220532ad4dea38f301adf4b42a3bbc7b2ca9d59afe0f9ac4088e05b58394b1c666564736f6c63430006040033", + Code: plato.MainnetSlashContract, }, }, } @@ -482,12 +496,12 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "60806040526004361061048d5760003560e01c806388b32f1111610255578063c81b166211610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610bd7578063f9a2bbc714610bec578063fc3e590814610c01578063fccc281314610c16578063fd4ad81f14610c2b578063fd6a687914610c5a57610494565b8063e40716a114610b5a578063ea321e4914610b6f578063eb57e20214610b8f578063eda5868c14610baf578063f340fa0114610bc457610494565b8063d86222d511610108578063d86222d514610af1578063daacdb6614610b06578063dc927faf14610b1b578063e086c7b114610b30578063e1c7392a14610b4557610494565b8063c81b166214610a92578063c8509d81146108a0578063ce910b0c14610aa7578063d04aa99614610ac7578063d68fb56a14610adc57610494565b8063a78abc16116101d2578063aef198a911610196578063aef198a914610a31578063b7ab4db514610a46578063b8cf4ef114610a68578063bf9f499514610650578063c6d3394514610a7d57610494565b8063a78abc16146109b2578063aaf5eb68146109c7578063ab51bb96146109dc578063ac431751146109f1578063ad3c9da614610a1157610494565b80639dc09262116102195780639dc09262146109495780639fe0f8161461095e578063a0dc275814610973578063a1a11bf514610988578063a5422d5c1461099d57610494565b806388b32f11146108d55780638b5ad0c9146108ea5780638d19a410146108ff5780639369d7de1461091f57806396713da91461093457610494565b80635192c82c1161037c5780636e47b482116102f95780637942fd05116102bd5780637942fd05146108615780637a84ca2a1461087657806381650b621461088b578063831d65d1146108a0578063853230aa1461084c57806386249882146108c057610494565b80636e47b482146107f857806370fd5bad1461080d578063718a8aa81461082257806375d47a0a1461083757806378dfed4a1461084c57610494565b80635667515a116103405780635667515a146107675780635d77156c1461077c57806360eba4fe1461079157806362b72cf5146107b15780636969a25c146107c657610494565b80635192c82c146106e857806351e80672146106fd578063549b03f21461071257806355614fcc14610727578063565c56b31461074757610494565b80633365af3a1161040a57806343756e5c116103ce57806343756e5c1461067257806345cf9daf14610687578063493279b11461069c5780634bf6c882146106be5780634df6e0c3146106d357610494565b80633365af3a146105d857806335409f7f146105f85780633b071dcc146106185780633de0f0d81461063b5780633dffc3871461065057610494565b8063152ad3b811610451578063152ad3b81461054c5780631ff180691461056e578063219f22d514610583578063300c356714610598578063321d398a146105b857610494565b806304c4fec61461049957806307a56847146104b05780630bee7a67146104db5780630e2374a5146104fd5780631182b8751461051f57610494565b3661049457005b600080fd5b3480156104a557600080fd5b506104ae610c6f565b005b3480156104bc57600080fd5b506104c5610ce1565b6040516104d29190617594565b60405180910390f35b3480156104e757600080fd5b506104f0610ce7565b6040516104d291906175be565b34801561050957600080fd5b50610512610cec565b6040516104d2919061699b565b34801561052b57600080fd5b5061053f61053a366004616881565b610cf2565b6040516104d29190616b12565b34801561055857600080fd5b50610561610f2a565b6040516104d29190616b07565b34801561057a57600080fd5b506104c5610f33565b34801561058f57600080fd5b506104f0610f39565b3480156105a457600080fd5b506104ae6105b336600461670b565b610f3e565b3480156105c457600080fd5b506105616105d336600461682e565b6112c2565b3480156105e457600080fd5b506105616105f336600461682e565b611391565b34801561060457600080fd5b506104ae6106133660046166e4565b611442565b34801561062457600080fd5b5061062d61159b565b6040516104d2929190616a1d565b34801561064757600080fd5b506104c5611877565b34801561065c57600080fd5b5061066561187d565b6040516104d291906175cf565b34801561067e57600080fd5b50610512611882565b34801561069357600080fd5b506104c5611888565b3480156106a857600080fd5b506106b161188e565b6040516104d29190617585565b3480156106ca57600080fd5b50610665611893565b3480156106df57600080fd5b5061062d611898565b3480156106f457600080fd5b506104c5611a16565b34801561070957600080fd5b50610512611a1c565b34801561071e57600080fd5b506104c5611a22565b34801561073357600080fd5b506105616107423660046166e4565b611a28565b34801561075357600080fd5b506104c56107623660046166e4565b611a5d565b34801561077357600080fd5b50610665611aae565b34801561078857600080fd5b506104f0611ab3565b34801561079d57600080fd5b5061053f6107ac36600461682e565b611ab8565b3480156107bd57600080fd5b506104c5611b5e565b3480156107d257600080fd5b506107e66107e136600461682e565b611b64565b6040516104d2969594939291906169c8565b34801561080457600080fd5b50610512611bc8565b34801561081957600080fd5b50610665611bce565b34801561082e57600080fd5b50610665611bd3565b34801561084357600080fd5b50610512611bd8565b34801561085857600080fd5b506104c5611bde565b34801561086d57600080fd5b50610665611be4565b34801561088257600080fd5b506104c5611be9565b34801561089757600080fd5b506104f0611bef565b3480156108ac57600080fd5b506104ae6108bb366004616881565b611bf4565b3480156108cc57600080fd5b506104c5611c55565b3480156108e157600080fd5b506104c5611c5b565b3480156108f657600080fd5b506104c5611c61565b34801561090b57600080fd5b506104c561091a3660046166e4565b611c67565b34801561092b57600080fd5b506104ae611ca7565b34801561094057600080fd5b50610665611dbb565b34801561095557600080fd5b50610512611dc0565b34801561096a57600080fd5b506104c5611dc6565b34801561097f57600080fd5b506104c5611dcb565b34801561099457600080fd5b50610512611dd0565b3480156109a957600080fd5b5061053f611dd6565b3480156109be57600080fd5b50610561611df5565b3480156109d357600080fd5b506104c5611dfe565b3480156109e857600080fd5b506104f0611aae565b3480156109fd57600080fd5b506104ae610a0c3660046167d2565b611e07565b348015610a1d57600080fd5b506104c5610a2c3660046166e4565b6126b3565b348015610a3d57600080fd5b506104c56126c5565b348015610a5257600080fd5b50610a5b6126d2565b6040516104d29190616a0a565b348015610a7457600080fd5b506104c56127be565b348015610a8957600080fd5b506104c5611bce565b348015610a9e57600080fd5b506105126127c3565b348015610ab357600080fd5b5061053f610ac236600461682e565b6127c9565b348015610ad357600080fd5b506104c56127d6565b348015610ae857600080fd5b506104c56127db565b348015610afd57600080fd5b506104c561281a565b348015610b1257600080fd5b506104c5612826565b348015610b2757600080fd5b5061051261282c565b348015610b3c57600080fd5b506104c5612832565b348015610b5157600080fd5b506104ae612837565b348015610b6657600080fd5b506104c56129e6565b348015610b7b57600080fd5b50610561610b8a366004616793565b6129ec565b348015610b9b57600080fd5b506104ae610baa3660046166e4565b612b72565b348015610bbb57600080fd5b506104f0612c7a565b6104ae610bd23660046166e4565b612c7f565b348015610be357600080fd5b506104c5612f07565b348015610bf857600080fd5b50610512612f0d565b348015610c0d57600080fd5b50610665611dc6565b348015610c2257600080fd5b50610512612f13565b348015610c3757600080fd5b50610c4b610c4636600461682e565b612f19565b6040516104d29392919061759d565b348015610c6657600080fd5b50610512612fdb565b6000610c7a33611c67565b9050600b8181548110610c8957fe5b600091825260209091206001601690920201015460ff16610cc55760405162461bcd60e51b8152600401610cbc9061723d565b60405180910390fd5b6000610ccf6127db565b9050610cdc338383612fe1565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d175760405162461bcd60e51b8152600401610cbc90616cd1565b3361200014610d385760405162461bcd60e51b8152600401610cbc9061741c565b600b54610df657610d476163d0565b60015460005b81811015610df257600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794610dce936000805160206178128339815191529091019201906163ff565b506060820151610de49060038301906013616479565b505050806001019050610d4d565b5050505b610dfe6164a6565b6000610e3f85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131cd92505050565b9150915080610e5b57610e526064613389565b92505050610f23565b815160009060ff16610e8057610e79836020015184604001516133ea565b9050610eef565b825160ff1660011415610eeb57826020015151600114610ec5576000805160206177d2833981519152604051610eb590617124565b60405180910390a1506067610ee6565b610e798360200151600081518110610ed957fe5b602002602001015161403e565b610eef565b5060655b63ffffffff8116610f145750506040805160008152602081019091529150610f239050565b610f1d81613389565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f5d5760405162461bcd60e51b8152600401610cbc9061746b565b6010544311610f7e5760405162461bcd60e51b8152600401610cbc90616e2d565b60005460ff16610fa05760405162461bcd60e51b8152600401610cbc90616cd1565b600f54610fb8576032600f55611002316011556112b8565b60006110023168056bc75e2d63100000811115610fe757610fe081606463ffffffff6141b516565b9150611030565b60115481111561102957610fe0606461101d600f54611011601154866141f790919063ffffffff16565b9063ffffffff61423916565b9063ffffffff6141b516565b50506112b8565b6040516309a99b4f60e41b815261100290639a99b4f09061105790309086906004016169af565b602060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190616846565b611002316011559150816110be5750506112b8565b6000805b848110156110ec578585828181106110d657fe5b90506020020135820191508060010190506110c2565b50806110fa575050506112b8565b6000806000805b898110156112b0578489898381811061111657fe5b9050602002013588028161112657fe5b0493508a8a8281811061113557fe5b905060200201602081019061114a91906166e4565b6001600160a01b0381166000908152600460205260409020549093509150811561126657600060018084038154811061117f57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111ec57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111df9190617594565b60405180910390a2611260565b6003546111ff908663ffffffff61427316565b6003908155810154611217908663ffffffff61427316565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611257908890617594565b60405180910390a25b506112a8565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161129f9190617594565b60405180910390a25b600101611101565b505050505050505b5050436010555050565b60015460009082106112d65750600061138c565b60006001600160a01b0316600183815481106112ee57fe5b60009182526020909120600490910201546001600160a01b0316148061131e5750600854158061131e5750600a54155b8061132d575060085460095410155b8061133e575061133c82611391565b155b8061136757506000600b838154811061135357fe5b906000526020600020906016020160000154115b8061137b575060016113776126d2565b5111155b156113885750600061138c565b5060015b919050565b60015460009082106113a55750600061138c565b600b5482106113e257600182815481106113bb57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061138c565b600182815481106113ef57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561143c5750600b828154811061142357fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114635760405162461bcd60e51b8152600401610cbc9061753c565b600b54611521576114726163d0565b60015460005b8181101561151d57600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff19169115159190911790556040860151805187946114f9936000805160206178128339815191529091019201906163ff565b50606082015161150f9060038301906013616479565b505050806001019050611478565b5050505b6001600160a01b038116600090815260046020526040902054806115455750611598565b6001810390506000600b828154811061155a57fe5b600091825260209091206001601690920201015460ff16905061157d8383614298565b80156115865750805b15610cdc576009805460001901905550505b50565b60015460609081906000805b828110156115ee57600181815481106115bc57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115e6576001909101905b6001016115a7565b5060608160405190808252806020026020018201604052801561161b578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561165457816020015b606081526020019060019003908161163f5790505b50600b54600094509091508414156117cf5760005b848110156117c9576001818154811061167e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117c157600181815481106116ae57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116d957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061170657fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561179e5780601f106117735761010080835404028352916020019161179e565b820191906000526020600020905b81548152906001019060200180831161178157829003601f168201915b50505050508285815181106117af57fe5b60209081029190910101526001909301925b600101611669565b5061186b565b60005b8481101561186957600181815481106117e757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611861576001818154811061181757fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061184257fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117d2565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c546060918291806118ac575060155b60606118b66126d2565b905060606118c38261464b565b9050828251116118da579094509250611873915050565b838383510310156118ec578282510393505b83156119225760c8430461190883838388880360008a8a6147b9565b6119208383838888038989038a8b8b8b5103016147b9565b505b60608360405190808252806020026020018201604052801561194e578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561198757816020015b60608152602001906001900390816119725790505b50905060005b85811015611a08578481815181106119a157fe5b60200260200101518382815181106119b557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119e157fe5b60200260200101518282815181106119f557fe5b602090810291909101015260010161198d565b509096509450505050509091565b60065481565b61200081565b600f5481565b6001600160a01b03811660009081526004602052604081205480611a5057600091505061138c565b60001901610f2381611391565b6001600160a01b03811660009081526004602052604081205480611a8557600091505061138c565b600180820381548110611a9457fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b60128181548110611ac557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b565780601f10611b2b57610100808354040283529160200191611b56565b820191906000526020600020905b815481529060010190602001808311611b3957829003601f168201915b505050505081565b60105481565b60018181548110611b7157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c155760405162461bcd60e51b8152600401610cbc9061741c565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c48939291906175dd565b60405180910390a1505050565b60025481565b60115481565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c9d5760405162461bcd60e51b8152600401610cbc906173a4565b6000190192915050565b600b54611d6557611cb66163d0565b60015460005b81811015611d6157600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794611d3d936000805160206178128339815191529091019201906163ff565b506060820151611d539060038301906013616479565b505050806001019050611cbc565b5050505b600854611d725760036008555b600a54611d7f576002600a555b6000611d8a33611c67565b9050611d95816112c2565b611db15760405162461bcd60e51b8152600401610cbc906170e1565b6115983382614910565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016176276101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e295760405162461bcd60e51b8152600401610cbc90616cd1565b3361100714611e4a5760405162461bcd60e51b8152600401610cbc906171aa565b611eb484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149a89050565b15611f515760208114611ed95760405162461bcd60e51b8152600401610cbc9061735e565b604080516020601f8401819004810282018101909252828152600091611f1791858580838501838280828437600092019190915250614a0192505050565b905060648110158015611f2d5750620186a08111155b611f495760405162461bcd60e51b8152600401610cbc90616f8a565b600255612670565b611fb184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149a89050565b1561204d5760208114611fd65760405162461bcd60e51b8152600401610cbc90616b57565b604080516020601f840181900481028201810190925282815260009161201491858580838501838280828437600092019190915250614a0192505050565b90506127108111156120385760405162461bcd60e51b8152600401610cbc90616e6f565b6006556007805460ff19166001179055612670565b6120b784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149a89050565b1561215157602081146120dc5760405162461bcd60e51b8152600401610cbc90616b8e565b604080516020601f840181900481028201810190925282815260009161211a91858580838501838280828437600092019190915250614a0192505050565b600c5490915080612129575060155b8082106121485760405162461bcd60e51b8152600401610cbc90616ee2565b50600855612670565b6121ba84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149a89050565b1561225357602081146121df5760405162461bcd60e51b8152600401610cbc90616c57565b604080516020601f840181900481028201810190925282815260009161221d91858580838501838280828437600092019190915250614a0192505050565b905060008111801561222f5750600a81105b61224b5760405162461bcd60e51b8152600401610cbc906174b8565b600a55612670565b6122c784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149a89050565b1561235657602081146122ec5760405162461bcd60e51b8152600401610cbc90616c0b565b604080516020601f840181900481028201810190925282815260009161232a91858580838501838280828437600092019190915250614a0192505050565b9050600d5481111561234e5760405162461bcd60e51b8152600401610cbc90617000565b600e55612670565b6123bf84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149a89050565b1561244157602081146123e45760405162461bcd60e51b8152600401610cbc906171f8565b604080516020601f840181900481028201810190925282815260009161242291858580838501838280828437600092019190915250614a0192505050565b600d819055600e5490915081101561243b57600d54600e555b50612670565b6124a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149a89050565b1561255357602081146124ca5760405162461bcd60e51b8152600401610cbc90616c9c565b604080516020601f840181900481028201810190925282815260009161250891858580838501838280828437600092019190915250614a0192505050565b90506000811161252a5760405162461bcd60e51b8152600401610cbc90616d3f565b602981111561254b5760405162461bcd60e51b8152600401610cbc90616d87565b600c55612670565b6125bd84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601381527266696e616c697479526577617264526174696f60681b602082015291506149a89050565b1561265857602081146125e25760405162461bcd60e51b8152600401610cbc906172e1565b604080516020601f840181900481028201810190925282815260009161262091858580838501838280828437600092019190915250614a0192505050565b905060018110158015612634575060648111155b6126505760405162461bcd60e51b8152600401610cbc9061706f565b600f55612670565b60405162461bcd60e51b8152600401610cbc90617515565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516126a59493929190616b25565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b82811015612701576126ed81611391565b156126f9578160010191505b6001016126dc565b5060608160405190808252806020026020018201604052801561272e578160200160208202803683370190505b5090506000915060005b838110156127b55761274981611391565b156127ad576001818154811061275b57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061278657fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612738565b50925050505b90565b601581565b61100281565b60138181548110611ac557fe5b603281565b60006127e56126d2565b519050600080600c54116127fa5760156127fe565b600c545b90508082111561280c578091505b8161281657600191505b5090565b67016345785d8a000081565b60055481565b61100381565b602981565b60005460ff161561285a5760405162461bcd60e51b8152600401610cbc906172aa565b6128626164a6565b6000612888604051806101e001604052806101ab81526020016176276101ab91396131cd565b91509150806128a95760405162461bcd60e51b8152600401610cbc906173db565b60005b8260200151518110156129ce576001836020015182815181106128cb57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a0909301516003909301929092559186015180519185019391859081106129a157fe5b602090810291909101810151516001600160a01b03168252810191909152604001600020556001016128ac565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612af557612add85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a4557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b820191906000526020600020905b815481529060010190602001808311612ab657829003601f168201915b5050505050614a06565b15612aed5760019250505061143c565b6001016129f4565b5060125460005b81811015612b6657612b4d86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a4557fe5b15612b5e576001935050505061143c565b600101612afc565b50600095945050505050565b3361100114612b935760405162461bcd60e51b8152600401610cbc9061753c565b600b54612c5157612ba26163d0565b60015460005b81811015612c4d57600b805460018101825560009190915283516000805160206177f283398151915260169092029182019081556020808601516000805160206178328339815191528401805460ff1916911515919091179055604086015180518794612c29936000805160206178128339815191529091019201906163ff565b506060820151612c3f9060038301906013616479565b505050806001019050612ba8565b5050505b6000612c5c82614a6a565b9050612c67816112c2565b15612c7657612c768282614910565b5050565b606581565b334114612c9e5760405162461bcd60e51b8152600401610cbc9061746b565b60005460ff16612cc05760405162461bcd60e51b8152600401610cbc90616cd1565b60003411612ce05760405162461bcd60e51b8152600401610cbc90616fd1565b6001600160a01b0381166000908152600460205260409020546007543491906103e89060ff1615612d1057506006545b600083118015612d205750600081115b15612dc1576000612d3d61271061101d868563ffffffff61423916565b90508015612dbf5760405161dead9082156108fc029083906000818181858888f19350505050158015612d74573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612da49190617594565b60405180910390a1612dbc848263ffffffff6141f716565b93505b505b8115612ebf576000600180840381548110612dd857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612e4557846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612e389190617594565b60405180910390a2612eb9565b600354612e58908563ffffffff61427316565b6003908155810154612e70908563ffffffff61427316565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612eb0908790617594565b60405180910390a25b50612f01565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612ef89190617594565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612f2657fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015612fd15780601f10612fa657610100808354040283529160200191612fd1565b820191906000526020600020905b815481529060010190602001808311612fb457829003601f168201915b5050505050905083565b61100481565b6000600a5460001480612ff2575081155b80612ffd5750600954155b1561300a57506000610f23565b60096000815460019003919050819055506000613055600a5461101d8561101d600b898154811061303757fe5b6000918252602090912060169091020154439063ffffffff6141f716565b90506000600b858154811061306657fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b1580156130cb57600080fd5b505afa1580156130df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613103919061685e565b915091506000935080831061317d5761311c8787614298565b506040516305bfb49960e41b815261100190635bfb499090613142908a9060040161699b565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b505050506001935061318f565b81831061318f5761318d87614a6a565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b6131d56164a6565b60006131df6164a6565b6131e76164ca565b6131f86131f386614c0d565b614c32565b90506000805b61320783614c7c565b1561337b578061322c5761322261321d84614c9d565b614ceb565b60ff168452613373565b806001141561336e57606061324861324385614c9d565b614d6b565b9050805160405190808252806020026020018201604052801561328557816020015b6132726164ea565b81526020019060019003908161326a5790505b50856020018190525080516040519080825280602002602001820160405280156132c357816020015b60608152602001906001900390816132ae5790505b50604086015260005b8151811015613363576132dd6164ea565b606060006132fd8585815181106132f057fe5b6020026020010151614e3c565b9250925092508061331d578860009a509a50505050505050505050613384565b828960200151858151811061332e57fe5b6020026020010181905250818960400151858151811061334a57fe5b60200260200101819052505050508060010190506132cc565b506001925050613373565b61337b565b6001016131fe565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b60608152602001906001900390816133a35790505090506133c98363ffffffff16614f56565b816000815181106133d657fe5b6020026020010181905250610f2381614f69565b6000602983511115613421576000805160206177d283398151915260405161341190616de4565b60405180910390a150606661143c565b60005b83518110156134bf5760005b818110156134b65784818151811061344457fe5b6020026020010151600001516001600160a01b031685838151811061346557fe5b6020026020010151600001516001600160a01b031614156134ae576000805160206177d283398151915260405161349b90616f3f565b60405180910390a160669250505061143c565b600101613430565b50600101613424565b506060806134cd8585614ff3565b60015491935091506000908190815b818110156135525767016345785d8a0000600182815481106134fa57fe5b9060005260206000209060040201600301541061351c5783600101935061354a565b60006001828154811061352b57fe5b906000526020600020906004020160030154111561354a578260010192505b6001016134dc565b5060608360405190808252806020026020018201604052801561357f578160200160208202803683370190505b5090506060846040519080825280602002602001820160405280156135ae578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156135dd578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561360c578160200160208202803683370190505b509050600060608760405190808252806020026020018201604052801561363d578160200160208202803683370190505b50905060608860405190808252806020026020018201604052801561366c578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190616846565b905067016345785d8a0000811115613737576000805160206177d283398151915260405161371990617269565b60405180910390a160689d505050505050505050505050505061143c565b60005b898110156139a85767016345785d8a00006001828154811061375857fe5b906000526020600020906004020160030154106138dd576001818154811061377c57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d815181106137ad57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106137e257fe5b906000526020600020906004020160030154816137fb57fe5b066001838154811061380957fe5b90600052602060002090600402016003015403905061383183826141f790919063ffffffff16565b898e8151811061383d57fe5b6020026020010181815250506001828154811061385657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061388757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e815181106138b457fe5b60209081029190910101526138cf868263ffffffff61427316565b95508c6001019c50506139a0565b6000600182815481106138ec57fe5b90600052602060002090600402016003015411156139a0576001818154811061391157fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c8151811061394257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061396f57fe5b906000526020600020906004020160030154838c8151811061398d57fe5b6020026020010181815250508a6001019a505b60010161373a565b5060008415613c1e576002546040516303702b2960e51b815261100491636e0565209188916139e2918e918e918d91420190600401616a8d565b6020604051808303818588803b1580156139fb57600080fd5b505af193505050508015613a2c575060408051601f3d908101601f19168201909252613a2991810190616773565b60015b613ba3576040516000815260443d1015613a4857506000613ae3565b60046000803e60005160e01c6308c379a08114613a69576000915050613ae3565b60043d036004833e81513d60248201116001600160401b0382111715613a9457600092505050613ae3565b80830180516001600160401b03811115613ab5576000945050505050613ae3565b8060208301013d8601811115613ad357600095505050505050613ae3565b601f01601f191660405250925050505b80613aee5750613b30565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613b229190616b12565b60405180910390a250613b9e565b3d808015613b5a576040519150601f19603f3d011682016040523d82523d6000602084013e613b5f565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613b949190616b12565b60405180910390a2505b613c1e565b8015613be5577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613bd89190617594565b60405180910390a1613c1c565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613c1390616bd4565b60405180910390a25b505b8015613dd45760005b8751811015613dd2576000888281518110613c3e57fe5b60200260200101519050600060018281548110613c5757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613c8857fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613d445760018281548110613cc957fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613d1857fe5b906000526020600020906004020160030154604051613d379190617594565b60405180910390a2613dc8565b60018281548110613d5157fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613da057fe5b906000526020600020906004020160030154604051613dbf9190617594565b60405180910390a25b5050600101613c27565b505b835115613f1e5760005b8451811015613f1c576000858281518110613df557fe5b60200260200101516001600160a01b03166108fc868481518110613e1557fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613eab57858281518110613e4b57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613e8957fe5b6020026020010151604051613e9e9190617594565b60405180910390a2613f13565b858281518110613eb757fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613ef557fe5b6020026020010151604051613f0a9190617594565b60405180910390a25b50600101613dde565b505b5050505050505050505050506000471115613f9a577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d47604051613f629190617594565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015613f98573d6000803e3d6000fd5b505b60006003819055600555815115613fb557613fb5828261522c565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015613ff257600080fd5b505af1158015614006573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b031660009081526004602052604081205480158061408f575060018082038154811061406f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156140d55782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061138c565b60015460055460001982011180159061412b5784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061138c565b60058054600190810190915580548190600019860190811061414957fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506159e6565b6000610f2383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615a1d565b6000826142485750600061143c565b8282028284828161425557fe5b0414610f235760405162461bcd60e51b8152600401610cbc90617169565b600082820183811015610f235760405162461bcd60e51b8152600401610cbc90616d08565b600080600183815481106142a857fe5b906000526020600020906004020160030154905060006001808054905003905060016142d26126d2565b5111614307576000600185815481106142e757fe5b90600052602060002090600402016003018190555060009250505061143c565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143409190617594565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561452d576001816001018154811061438157fe5b90600052602060002090600402016001828154811061439c57fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061445d57fe5b9060005260206000209060160201600b828154811061447857fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546144cf93838601939082161561010002600019019091160461651f565b506144e260038281019084016013616594565b509050508060010160046000600184815481106144fb57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101614363565b50600180548061453957fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061458c57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906145be60028301826165be565b6145cc600383016000616602565b5050905560008183816145db57fe5b049050801561463f5760015460005b8181101561463c57826001828154811061460057fe5b906000526020600020906004020160030154016001828154811061462057fe5b60009182526020909120600360049092020101556001016145ea565b50505b50600195945050505050565b60015481516040805182815260208084028201019091526060929190839082801561468a57816020015b60608152602001906001900390816146755790505b50600b5490915083146146a157925061138c915050565b60005b828110156147b057600b6001600460008985815181106146c057fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106146f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561478c5780601f106147615761010080835404028352916020019161478c565b820191906000526020600020905b81548152906001019060200180831161476f57829003601f168201915b505050505082828151811061479d57fe5b60209081029190910101526001016146a4565b50949350505050565b60005b8281101561490657600082878388016040516020016147dc92919061698d565b6040516020818303038152906040528051906020012060001c816147fc57fe5b069050808501828701146148fd576000898388018151811061481a57fe5b602002602001015190506060898489018151811061483457fe5b602002602001015190508a8388018151811061484c57fe5b60200260200101518b858a018151811061486257fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061489157fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106148bf57fe5b60200260200101518a858a01815181106148d557fe5b6020026020010181905250808a848901815181106148ef57fe5b602002602001018190525050505b506001016147bc565b5050505050505050565b600980546001908101909155600b80548390811061492a57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061496057fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016149bb9190616971565b60405160208183030381529060405280519060200120836040516020016149e29190616971565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a225760009250614a60565b600160208701838101602088015b600284838510011415614a5b578051835114614a4f5760009650600093505b60209283019201614a30565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614a935750600019905061138c565b600181039050600060018281548110614aa857fe5b9060005260206000209060040201600301549050600060018381548110614acb57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b24908590617594565b60405180910390a280614b3c5782935050505061138c565b6000818381614b4757fe5b0490508015614c035760005b84811015614ba5578160018281548110614b6957fe5b9060005260206000209060040201600301540160018281548110614b8957fe5b6000918252602090912060036004909202010155600101614b53565b50600180549085015b81811015614c00578260018281548110614bc457fe5b9060005260206000209060040201600301540160018281548110614be457fe5b6000918252602090912060036004909202010155600101614bae565b50505b5091949350505050565b614c15616611565b506040805180820190915281518152602082810190820152919050565b614c3a6164ca565b614c4382615a49565b614c4c57600080fd5b6000614c5b8360200151615a83565b60208085015160408051808201909152868152920190820152915050919050565b6000614c86616611565b505080518051602091820151919092015191011190565b614ca5616611565b614cae82614c7c565b614cb757600080fd5b60208201516000614cc782615ae6565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614d0057508151602110155b614d0957600080fd5b6000614d188360200151615a83565b90508083600001511015614d3e5760405162461bcd60e51b8152600401610cbc90617327565b8251602080850151830180519284900392918310156147b057506020919091036101000a90049392505050565b6060614d7682615a49565b614d7f57600080fd5b6000614d8a83615bc7565b9050606081604051908082528060200260200182016040528015614dc857816020015b614db5616611565b815260200190600190039081614dad5790505b5090506000614dda8560200151615a83565b60208601510190506000805b84811015614e3157614df783615ae6565b9150604051806040016040528083815260200184815250848281518110614e1a57fe5b602090810291909101015291810191600101614de6565b509195945050505050565b614e446164ea565b60606000614e506164ea565b6060614e5a6164ca565b614e6387614c32565b90506000805b614e7283614c7c565b15614f475780614e9d57614e8d614e8884614c9d565b615c23565b6001600160a01b03168552614f3f565b8060011415614ec557614eb2614e8884614c9d565b6001600160a01b03166020860152614f3f565b8060021415614eed57614eda614e8884614c9d565b6001600160a01b03166040860152614f3f565b8060031415614f1957614f0261321d84614c9d565b6001600160401b0316606086015260019150614f3f565b8060041415614f3a57614f33614f2e84614c9d565b615c3d565b9350614f3f565b614f47565b600101614e69565b50929791965091945092505050565b606061143c614f6483615cad565b615d93565b6060815160001415614f8a575060408051600081526020810190915261138c565b606082600081518110614f9957fe5b602002602001015190506000600190505b8351811015614fda57614fd082858381518110614fc357fe5b6020026020010151615de5565b9150600101614faa565b50610f23614fed825160c060ff16615e62565b82615de5565b6060806000808080806150046127db565b6001549091505b801561511257600181039250600b838154811061502457fe5b600091825260209091206001601690920201015460ff1661504457615109565b6001838154811061505157fe5b60009182526020909120600490910201546001600160a01b03169450615078858484612fe1565b935083158061508b575060018a51038610155b1561509557615109565b60005b8a5181101561510757856001600160a01b03168b82815181106150b757fe5b6020026020010151600001516001600160a01b031614156150ff5760018b82815181106150e057fe5b6020908102919091010151901515608090910152600190960195615107565b600101615098565b505b6000190161500b565b508489510360405190808252806020026020018201604052801561515057816020015b61513d6164ea565b8152602001906001900390816151355790505b5096508489510360405190808252806020026020018201604052801561518a57816020015b60608152602001906001900390816151755790505b5095506000915060005b895181101561521e578981815181106151a957fe5b602002602001015160800151615216578981815181106151c557fe5b60200260200101518884815181106151d957fe5b60200260200101819052508881815181106151f057fe5b602002602001015187848151811061520457fe5b60200260200101819052508260010192505b600101615194565b5050505050505b9250929050565b600154825160005b828110156153495760016152466164ea565b6001838154811061525357fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b8481101561531d578781815181106152e357fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615315576000925061531d565b6001016152cf565b50811561533f5780516001600160a01b03166000908152600460205260408120555b5050600101615234565b508082111561540857805b8281101561540657600180548061536757fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806153ba57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906153ec60028301826165be565b6153fa600383016000616602565b50509055600101615354565b505b60008183106154175781615419565b825b905060005b81811015615788576154cb86828151811061543557fe5b60200260200101516001838154811061544a57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615f34565b61567f5780600101600460008884815181106154e357fe5b6020026020010151600001516001600160a01b03166001600160a01b031681526020019081526020016000208190555085818151811061551f57fe5b60200260200101516001828154811061553457fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106155ef57fe5b6020026020010151600b828154811061560457fe5b906000526020600020906016020160020190805190602001906156289291906163ff565b506000600b828154811061563857fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061566957fe5b6000918252602090912060169091020155615780565b61571085828151811061568e57fe5b6020026020010151600b83815481106156a357fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ad35780601f10612aa857610100808354040283529160200191612ad3565b61575b5784818151811061572057fe5b6020026020010151600b828154811061573557fe5b906000526020600020906016020160020190805190602001906157599291906163ff565b505b60006001828154811061576a57fe5b9060005260206000209060040201600301819055505b60010161541e565b5082821115615960576157996163d0565b835b8381101561595d578581815181106157af57fe5b6020026020010151826040018190525060018782815181106157cd57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206177f28339815191528101918255858301516000805160206178328339815191528201805491151560ff199092169190911790559285015180518694929361590393600080516020617812833981519152019201906163ff565b5060608201516159199060038301906013616479565b505050806001016004600089848151811061593057fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161579b565b50505b615968615fb5565b615970616197565b6000600981905560015493505b838110156159de576000600b828154811061599457fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106159c557fe5b600091825260209091206016909102015560010161597d565b505050505050565b60008183615a075760405162461bcd60e51b8152600401610cbc9190616b12565b506000838581615a1357fe5b0495945050505050565b60008184841115615a415760405162461bcd60e51b8152600401610cbc9190616b12565b505050900390565b8051600090615a5a5750600061138c565b6020820151805160001a9060c0821015615a795760009250505061138c565b5060019392505050565b8051600090811a6080811015615a9d57600091505061138c565b60b8811080615ab8575060c08110801590615ab8575060f881105b15615ac757600191505061138c565b60c0811015615adb5760b51901905061138c565b60f51901905061138c565b80516000908190811a6080811015615b015760019150615bc0565b60b8811015615b1657607e1981019150615bc0565b60c0811015615b6757600060b78203600186019550806020036101000a865104915060018101820193505080831015615b615760405162461bcd60e51b8152600401610cbc906170b6565b50615bc0565b60f8811015615b7c5760be1981019150615bc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615bbe5760405162461bcd60e51b8152600401610cbc906170b6565b505b5092915050565b8051600090615bd85750600061138c565b60008090506000615bec8460200151615a83565b602085015185519181019250015b80821015615c1a57615c0b82615ae6565b82019150826001019250615bfa565b50909392505050565b8051600090601514615c3457600080fd5b61143c82614ceb565b8051606090615c4b57600080fd5b6000615c5a8360200151615a83565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615c91576020820181803683370190505b50905060008160200190506147b0848760200151018285616385565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615cf157506018615d15565b6fffffffffffffffffffffffffffffffff198416615d1157506010615d15565b5060005b6020811015615d4b57818181518110615d2a57fe5b01602001516001600160f81b03191615615d4357615d4b565b600101615d15565b60008160200390506060816040519080825280601f01601f191660200182016040528015615d80576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615dc55750607f60f81b82600081518110615db357fe5b01602001516001600160f81b03191611155b15615dd157508061138c565b61143c615de38351608060ff16615e62565b835b6060806040519050835180825260208201818101602087015b81831015615e16578051835260209283019201615dfe565b50855184518101855292509050808201602086015b81831015615e43578051835260209283019201615e2b565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615e8c5760405162461bcd60e51b8152600401610cbc90616eba565b60408051600180825281830190925260609160208201818036833701905050905060378411615ee65782840160f81b81600081518110615ec857fe5b60200101906001600160f81b031916908160001a905350905061143c565b6060615ef185615cad565b90508381510160370160f81b82600081518110615f0a57fe5b60200101906001600160f81b031916908160001a905350615f2b8282615de5565b95945050505050565b805182516000916001600160a01b039182169116148015615f6e575081602001516001600160a01b031683602001516001600160a01b0316145b8015615f93575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f235750506060908101519101516001600160401b0390811691161490565b6012546013548082111561600057805b82811015615ffe576012805480615fd857fe5b600190038181906000526020600020016000615ff491906165be565b9055600101615fc5565b505b600081831061600f5781616011565b825b905060005b81811015616129576160ce6012828154811061602e57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156160bc5780601f10616091576101008083540402835291602001916160bc565b820191906000526020600020905b81548152906001019060200180831161609f57829003601f168201915b505050505060138381548110612a4557fe5b61612157601381815481106160df57fe5b90600052602060002001601282815481106160f657fe5b90600052602060002001908054600181600116156101000203166002900461611f92919061651f565b505b600101616016565b5082821115610cdc57825b82811015612f015760126013828154811061614b57fe5b600091825260208083208454600181810187559585529190932092909101805461618e94939092019290916002610100928216159290920260001901160461651f565b50600101616134565b601354600b54808211156161e257805b828110156161e05760138054806161ba57fe5b6001900381819060005260206000200160006161d691906165be565b90556001016161a7565b505b60008183106161f157816161f3565b825b905060005b81811015616312576162b06013828154811061621057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561629e5780601f106162735761010080835404028352916020019161629e565b820191906000526020600020905b81548152906001019060200180831161628157829003601f168201915b5050505050600b83815481106156a357fe5b61630a57600b81815481106162c157fe5b9060005260206000209060160201600201601382815481106162df57fe5b90600052602060002001908054600181600116156101000203166002900461630892919061651f565b505b6001016161f8565b5082821115610cdc57825b82811015612f01576013600b828154811061633457fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461637c9593909401939092600019908216156101000201160461651f565b5060010161631d565b8061638f57610cdc565b5b602081106163af578251825260209283019290910190601f1901616390565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016163fa61662b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061644057805160ff191683800117855561646d565b8280016001018555821561646d579182015b8281111561646d578251825591602001919060010190616452565b5061281692915061664a565b826013810192821561646d579160200282018281111561646d578251825591602001919060010190616452565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806164dd616611565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616558578054855561646d565b8280016001018555821561646d57600052602060002091601f016020900482015b8281111561646d578254825591600101919060010190616579565b826013810192821561646d579182018281111561646d578254825591600101919060010190616579565b50805460018160011615610100020316600290046000825580601f106165e45750611598565b601f016020900490600052602060002090810190611598919061664a565b5061159890601381019061664a565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127bb91905b808211156128165760008155600101616650565b60008083601f840112616675578182fd5b5081356001600160401b0381111561668b578182fd5b602083019150836020808302850101111561522557600080fd5b60008083601f8401126166b6578182fd5b5081356001600160401b038111156166cc578182fd5b60208301915083602082850101111561522557600080fd5b6000602082840312156166f5578081fd5b81356001600160a01b0381168114610f23578182fd5b60008060008060408587031215616720578283fd5b84356001600160401b0380821115616736578485fd5b61674288838901616664565b9096509450602087013591508082111561675a578384fd5b5061676787828801616664565b95989497509550505050565b600060208284031215616784578081fd5b81518015158114610f23578182fd5b600080602083850312156167a5578182fd5b82356001600160401b038111156167ba578283fd5b6167c6858286016166a5565b90969095509350505050565b600080600080604085870312156167e7578384fd5b84356001600160401b03808211156167fd578586fd5b616809888389016166a5565b90965094506020870135915080821115616821578384fd5b50616767878288016166a5565b60006020828403121561683f578081fd5b5035919050565b600060208284031215616857578081fd5b5051919050565b60008060408385031215616870578182fd5b505080516020909101519092909150565b600080600060408486031215616895578283fd5b833560ff811681146168a5578384fd5b925060208401356001600160401b038111156168bf578283fd5b6168cb868287016166a5565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169105781516001600160a01b0316875295820195908201906001016168eb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261695d8160208601602086016175fa565b601f01601f19169290920160200192915050565b600082516169838184602087016175fa565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f2360208301846168d8565b600060408252616a3060408301856168d8565b602083820381850152818551808452828401915082838202850101838801865b83811015616a7e57601f19878403018552616a6c838351616945565b94860194925090850190600101616a50565b50909998505050505050505050565b600060808252616aa060808301876168d8565b828103602084810191909152865180835287820192820190845b81811015616ad657845183529383019391830191600101616aba565b50508481036040860152616aea81886168d8565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f236020830184616945565b600060408252616b3960408301868861691b565b8281036020840152616b4c81858761691b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b60208082526027908201527f7468652066696e616c697479526577617264526174696f206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662066696e616c697479526577617264526174696f206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615f2b6060830184616945565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615f2b60408301848661691b565b60005b838110156176155781810151838201526020016175fd565b83811115612f01575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa26469706673582212201bfbc326e63aa136a8685cddd241600b97b8502885f737aee34f1189c78be29b64736f6c63430006040033", + Code: plato.ChapelValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/0f352c4623898d92664a46cbfc26c52b79aad838", - Code: "608060405234801561001057600080fd5b506004361061027f5760003560e01c80637942fd051161015c578063c80d4b8f116100ce578063dc927faf11610087578063dc927faf146104ad578063e1c7392a146104b5578063f9a2bbc7146104bd578063fc3e5908146104c5578063fc4333cd146104cd578063fd6a6879146104d55761027f565b8063c80d4b8f1461045c578063c81b166214610464578063c8509d811461046c578063c96be4cb1461047f578063cc844b7314610492578063d2a42e4b146104a55761027f565b80639dc09262116101205780639dc0926214610421578063a1a11bf514610429578063a78abc1614610431578063ab51bb9614610439578063ac0af62914610441578063ac431751146104495761027f565b80637942fd05146103ee5780638256ace6146103f6578063831d65d1146103fe57806396713da9146104115780639bc8e4f2146104195761027f565b8063493279b1116101f557806362b72cf5116101b957806362b72cf5146103be5780636e47b482146103c657806370fd5bad146103ce578063718a8aa8146103d657806375d47a0a146103de5780637912a65d146103e65761027f565b8063493279b11461037c5780634bf6c8821461039157806351e8067214610399578063567a372d146103a15780635bfb4990146103a95761027f565b806335aa2e441161024757806335aa2e441461030e57806337c8dab914610321578063389f4f71146103425780633a63f4b1146103575780633dffc3871461035f57806343756e5c146103745761027f565b80630bee7a67146102845780630e2374a5146102a25780631182b875146102b757806322d1e80b146102d757806323bac5a2146102ec575b600080fd5b61028c6104dd565b604051610299919061336a565b60405180910390f35b6102aa6104e2565b6040516102999190612c1b565b6102ca6102c5366004612b51565b6104e8565b6040516102999190612c53565b6102df61054e565b6040516102999190612c48565b6102ff6102fa3660046128ff565b610557565b60405161029993929190613352565b6102aa61031c366004612b21565b61057a565b61033461032f3660046128ff565b6105a1565b604051610299929190613344565b61034a6105f8565b604051610299919061331a565b61034a6105fe565b610367610604565b604051610299919061337b565b6102aa610609565b61038461060f565b604051610299919061330b565b610367610614565b6102aa610619565b61034a61061f565b6103bc6103b73660046128ff565b610625565b005b61034a6106d0565b6102aa6106d6565b6103676106dc565b6103676106e1565b6102aa6106e6565b61034a6106ec565b6103676106f1565b6103346106f6565b6103bc61040c366004612b51565b610700565b610367610812565b61034a610817565b6102aa610822565b6102aa610828565b6102df61082e565b61028c610837565b61034a61083c565b6103bc610457366004612a05565b610841565b61034a610ce0565b6102aa610ce5565b6103bc61047a366004612b51565b610ceb565b6103bc61048d3660046128ff565b610d5c565b6103bc6104a0366004612a6e565b61114d565b61034a611733565b6102aa611738565b6103bc61173e565b6102aa61177a565b610367611780565b6103bc611785565b6102aa611bce565b606481565b61200181565b606033612000146105145760405162461bcd60e51b815260040161050b90613163565b60405180910390fd5b60005460ff166105365760405162461bcd60e51b815260040161050b90612d04565b60405162461bcd60e51b815260040161050b90613254565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b6001818154811061058757fe5b6000918252602090912001546001600160a01b0316905081565b6000806105ac6126e6565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b33611000146106465760405162461bcd60e51b815260040161050b90612f48565b60005460ff166106685760405162461bcd60e51b815260040161050b90612d04565b61200063f7a251d7600b61067b84611bd4565b60006040518463ffffffff1660e01b815260040161069b93929190613389565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107215760405162461bcd60e51b815260040161050b90613163565b60005460ff166107435760405162461bcd60e51b815260040161050b90612d04565b61074b612709565b600061078c84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca692505050565b9150915080156107d35781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107c69161336a565b60405180910390a16106c9565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108039161336a565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108635760405162461bcd60e51b815260040161050b90612d04565b33611007146108845760405162461bcd60e51b815260040161050b90613020565b6108ef84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611d269050565b1561098a57602081146109145760405162461bcd60e51b815260040161050b90612ed4565b604080516020601f840181900481028201810190925282815260009161095291858580838501838280828437600092019190915250611d8092505050565b905060018110158015610966575060055481105b6109825760405162461bcd60e51b815260040161050b9061311e565b600455610c9d565b6109f084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611d269050565b15610a8c5760208114610a155760405162461bcd60e51b815260040161050b9061306e565b604080516020601f8401819004810282018101909252828152600091610a5391858580838501838280828437600092019190915250611d8092505050565b90506103e88111158015610a68575060045481115b610a845760405162461bcd60e51b815260040161050b90612d72565b600555610c9d565b610b0084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611d269050565b15610b9a5760208114610b255760405162461bcd60e51b815260040161050b9061328b565b604080516020601f8401819004810282018101909252828152600091610b6391858580838501838280828437600092019190915250611d8092505050565b9050600a8110158015610b765750606481105b610b925760405162461bcd60e51b815260040161050b90612e88565b600655610c9d565b610c0e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611d269050565b15610c855760208114610c335760405162461bcd60e51b815260040161050b90612da7565b604080516020601f8401819004810282018101909252828152610c6f9190848480838501838280828437600092019190915250611d8592505050565b6007805460ff1916911515919091179055610c9d565b60405162461bcd60e51b815260040161050b906131ff565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610cd29493929190612c66565b60405180910390a150505050565b609681565b61100281565b3361200014610d0c5760405162461bcd60e51b815260040161050b90613163565b60005460ff16610d2e5760405162461bcd60e51b815260040161050b90612d04565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610d7b5760405162461bcd60e51b815260040161050b906131b2565b60005460ff16610d9d5760405162461bcd60e51b815260040161050b90612d04565b6003544311610dbe5760405162461bcd60e51b815260040161050b906132d6565b3a15610ddc5760405162461bcd60e51b815260040161050b90612fc3565b60405163155853f360e21b8152611000906355614fcc90610e01908490600401612c1b565b60206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906129e5565b610e5a57611146565b610e626126e6565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ebd576020810180516001019052610f16565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b438152600554602082015181610f2857fe5b0661107457600060208201526040516335409f7f60e01b8152611000906335409f7f90610f59908590600401612c1b565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b610fa785611bd4565b60006040518463ffffffff1660e01b8152600401610fc793929190613389565b600060405180830381600087803b158015610fe157600080fd5b505af1925050508015610ff2575060015b61106f573d808015611020576040519150601f19603f3d011682016040523d82523d6000602084013e611025565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c836020015183604051611065929190613323565b60405180910390a2505b6110e0565b60045481602001518161108357fe5b066110e0576040516375abf10160e11b81526110009063eb57e202906110ad908590600401612c1b565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff1661116f5760405162461bcd60e51b815260040161050b90612d04565b604051630a83aaa960e31b81526110069063541d554890611194903390600401612c1b565b60206040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906129e5565b6112005760405162461bcd60e51b815260040161050b90612c98565b60075460ff166112225760405162461bcd60e51b815260040161050b90612ccf565b60065461122f5760146006555b438160000151604001516101000111801561125557504381602001516040015161010001115b6112715760405162461bcd60e51b815260040161050b90613226565b80602001516020015181600001516020015114801561129f5750806020015160600151816000015160600151145b156112bc5760405162461bcd60e51b815260040161050b90612f1b565b8051604081015190511080156112db5750602081015160408101519051105b6112f75760405162461bcd60e51b815260040161050b90612e51565b60208101515181515110801561131c5750806000015160400151816020015160400151105b8061134757508051516020820151511080156113475750806020015160400151816000015160400151105b806113615750806020015160400151816000015160400151145b61137d5760405162461bcd60e51b815260040161050b90612d3b565b604080820151905163ea321e4960e01b81526110009163ea321e49916113a69190600401612c53565b60206040518083038186803b1580156113be57600080fd5b505afa1580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f691906129e5565b6114125760405162461bcd60e51b815260040161050b90612ff1565b61142481600001518260400151611dad565b801561143d575061143d81602001518260400151611dad565b6114595760405162461bcd60e51b815260040161050b90612df2565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b15801561149757600080fd5b505afa1580156114ab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d39190810190612922565b9150915060005b8151811015611610576115048282815181106114f257fe5b60200260200101518560400151611f85565b15611608576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f09061153c9033908590600401612c2f565b602060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612b39565b506110006001600160a01b03166335409f7f8584815181106115ac57fe5b60200260200101516040518263ffffffff1660e01b81526004016115d09190612c1b565b600060405180830381600087803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b5050505050611610565b6001016114da565b50600061162284604001516000611fe9565b90506120006001600160a01b031663f7a251d7600b6116448760400151612005565b60006040518463ffffffff1660e01b815260040161166493929190613389565b600060405180830381600087803b15801561167e57600080fd5b505af192505050801561168f575060015b611701573d8080156116bd576040519150601f19603f3d011682016040523d82523d6000602084013e6116c2565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f3628826040516116f39190612c53565b60405180910390a25061172d565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156117615760405162461bcd60e51b815260040161050b906130b0565b603260045560966005556000805460ff19166001179055565b61100081565b600381565b33611000146117a65760405162461bcd60e51b815260040161050b90612f48565b60005460ff166117c85760405162461bcd60e51b815260040161050b90612d04565b6001546117d457611bcc565b600154600090600019015b808211611ba0576000805b82841015611903576117fa6126e6565b600260006001878154811061180b57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156118ed5760046005548161187857fe5b0481602001510381602001818152505080600260006001888154811061189a57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff19169115159190911790556118f7565b6001925050611903565b508360010193506117ea565b828411611a9a576119126126e6565b600260006001868154811061192357fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a0b5760046005548161199057fe5b048160200151038160200181815250508060026000600187815481106119b257fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611a9a9050565b6002600060018681548110611a1c57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611a6057fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611a8d5750611a9a565b5060001990920191611903565b818015611aa45750805b15611b83576002600060018681548110611aba57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611b0157fe5b600091825260209091200154600180546001600160a01b039092169186908110611b2757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611b6057fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611b8f575050611ba0565b5050600190910190600019016117df565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611bef579050509050611c18836001600160a01b0316612040565b81600081518110611c2557fe5b6020026020010181905250611c3943612063565b81600181518110611c4657fe5b6020908102919091010152611c5b6061612063565b81600281518110611c6857fe5b6020026020010181905250611c7c42612063565b81600381518110611c8957fe5b6020026020010181905250611c9d81612076565b9150505b919050565b611cae612709565b6000611cb8612709565b611cc061271b565b611cd1611ccc86612100565b612125565b90506000805b611ce08361216f565b15611d195780611d0c57611cfb611cf684612190565b6121de565b63ffffffff16845260019150611d11565b611d19565b600101611cd7565b5091935090915050915091565b600081604051602001611d399190612bff565b6040516020818303038152906040528051906020012083604051602001611d609190612bff565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611d9f576001915081611da5565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611dc9575050604080516020808252818301909252919250606091908082018180368337019050509050611e0e8560000151612063565b82600081518110611e1b57fe5b6020026020010181905250611e366020866020015183612260565b611e3f81612270565b82600181518110611e4c57fe5b6020026020010181905250611e648560400151612063565b82600281518110611e7157fe5b6020026020010181905250611e8c6020866060015183612260565b611e9581612270565b82600381518110611ea257fe5b6020026020010181905250611ec86020611ebb84612076565b8051906020012083612260565b6040805160b080825260e08201909252606091602082018180368337019050509050611ef88183600060206122c6565b611f0a818760800151602060606122c6565b611f188186608060306122c6565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa611f5557600080fd5b506001611f63826000612319565b60ff1614611f78576000945050505050611d7a565b5060019695505050505050565b815181516000916001918114808314611fa15760009250611fdf565b600160208701838101602088015b600284838510011415611fda578051835114611fce5760009650600093505b60209283019201611faf565b505050505b5090949350505050565b60008160200183511015611ffc57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081612020579050509050611c1883612270565b60408051600560a21b8318601482015260348101909152606090611c9d81612270565b6060611d7a61207183612335565b612270565b60608151600014156120975750604080516000815260208101909152611ca1565b6060826000815181106120a657fe5b602002602001015190506000600190505b83518110156120e7576120dd828583815181106120d057fe5b602002602001015161241b565b91506001016120b7565b50611c9d6120fa825160c060ff16612498565b8261241b565b61210861273b565b506040805180820190915281518152602082810190820152919050565b61212d61271b565b6121368261256a565b61213f57600080fd5b600061214e83602001516125a4565b60208085015160408051808201909152868152920190820152915050919050565b600061217961273b565b505080518051602091820151919092015191011190565b61219861273b565b6121a18261216f565b6121aa57600080fd5b602082015160006121ba82612607565b80830160209586015260408051808201909152908152938401919091525090919050565b8051600090158015906121f357508151602110155b6121fc57600080fd5b600061220b83602001516125a4565b905080836000015110156122315760405162461bcd60e51b815260040161050b906130e7565b82516020808501518301805192849003929183101561225757826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156122a25750607f60f81b8260008151811061229057fe5b01602001516001600160f81b03191611155b156122ae575080611ca1565b611d7a6122c08351608060ff16612498565b8361241b565b60005b818110156106c9578381815181106122dd57fe5b602001015160f81c60f81b8584806001019550815181106122fa57fe5b60200101906001600160f81b031916908160001a9053506001016122c9565b6000816001018351101561232c57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166123795750601861239d565b6fffffffffffffffffffffffffffffffff1984166123995750601061239d565b5060005b60208110156123d3578181815181106123b257fe5b01602001516001600160f81b031916156123cb576123d3565b60010161239d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612408576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561244c578051835260209283019201612434565b50855184518101855292509050808201602086015b81831015612479578051835260209283019201612461565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106124c25760405162461bcd60e51b815260040161050b90612e29565b6040805160018082528183019092526060916020820181803683370190505090506037841161251c5782840160f81b816000815181106124fe57fe5b60200101906001600160f81b031916908160001a9053509050611d7a565b606061252785612335565b90508381510160370160f81b8260008151811061254057fe5b60200101906001600160f81b031916908160001a905350612561828261241b565b95945050505050565b805160009061257b57506000611ca1565b6020820151805160001a9060c082101561259a57600092505050611ca1565b5060019392505050565b8051600090811a60808110156125be576000915050611ca1565b60b88110806125d9575060c081108015906125d9575060f881105b156125e8576001915050611ca1565b60c08110156125fc5760b519019050611ca1565b60f519019050611ca1565b80516000908190811a608081101561262257600191506126df565b60b881101561263757607e19810191506126df565b60c081101561268857600060b78203600186019550806020036101000a8651049150600181018201935050808310156126825760405162461bcd60e51b815260040161050b90612f98565b506126df565b60f881101561269d5760be19810191506126df565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611da55760405162461bcd60e51b815260040161050b90612f98565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061272e61273b565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612765578081fd5b8151612778612773826133dc565b6133b5565b818152915060208083019084810160005b848110156127ee578151870188603f8201126127a457600080fd5b838101516127b4612773826133fc565b81815260408b818486010111156127ca57600080fd5b6127d983888401838701613420565b50865250509282019290820190600101612789565b505050505092915050565b60008083601f84011261280a578182fd5b50813567ffffffffffffffff811115612821578182fd5b60208301915083602082850101111561283957600080fd5b9250929050565b600082601f830112612850578081fd5b813561285e612773826133fc565b915080825283602082850101111561287557600080fd5b8060208401602084013760009082016020015292915050565b600060a0828403121561289f578081fd5b6128a960a06133b5565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156128e757600080fd5b6128f384828501612840565b60808301525092915050565b600060208284031215612910578081fd5b813561291b8161344c565b9392505050565b60008060408385031215612934578081fd5b825167ffffffffffffffff8082111561294b578283fd5b81850186601f82011261295c578384fd5b8051925061296c612773846133dc565b80848252602080830192508084018a82838902870101111561298c578788fd5b8794505b868510156129b75780516129a38161344c565b845260019490940193928101928101612990565b5088015190965093505050808211156129ce578283fd5b506129db85828601612755565b9150509250929050565b6000602082840312156129f6578081fd5b8151801515811461291b578182fd5b60008060008060408587031215612a1a578182fd5b843567ffffffffffffffff80821115612a31578384fd5b612a3d888389016127f9565b90965094506020870135915080821115612a55578384fd5b50612a62878288016127f9565b95989497509550505050565b600060208284031215612a7f578081fd5b813567ffffffffffffffff80821115612a96578283fd5b81840160608187031215612aa8578384fd5b612ab260606133b5565b9250803582811115612ac2578485fd5b612ace8782840161288e565b845250602081013582811115612ae2578485fd5b612aee8782840161288e565b602085015250604081013582811115612b05578485fd5b612b1187828401612840565b6040850152509195945050505050565b600060208284031215612b32578081fd5b5035919050565b600060208284031215612b4a578081fd5b5051919050565b600080600060408486031215612b65578283fd5b833560ff81168114612b75578384fd5b9250602084013567ffffffffffffffff811115612b90578283fd5b612b9c868287016127f9565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612beb816020860160208601613420565b601f01601f19169290920160200192915050565b60008251612c11818460208701613420565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261291b6020830184612bd3565b600060408252612c7a604083018688612ba9565b8281036020840152612c8d818587612ba9565b979650505050505050565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008382526040602083015261333c6040830184612bd3565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526133a56060830185612bd3565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156133d457600080fd5b604052919050565b600067ffffffffffffffff8211156133f2578081fd5b5060209081020190565b600067ffffffffffffffff821115613412578081fd5b50601f01601f191660200190565b60005b8381101561343b578181015183820152602001613423565b8381111561172d5750506000910152565b6001600160a01b038116811461346157600080fd5b5056fea2646970667358221220c3310788cc2517fb88ccc86019bc9b743e07923bbb3700f681487f4aa3af63b964736f6c63430006040033", + Code: plato.ChapelSlashContract, }, }, } @@ -498,17 +512,17 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b3a5c1fa8882c0e546dc5ba913ce4db77ec9befe", - Code: "6080604052600436106104a35760003560e01c806388b32f1111610260578063c6d3394511610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610c02578063f9a2bbc714610c17578063fc3e590814610c2c578063fccc281314610c41578063fd4ad81f14610c56578063fd6a687914610c85576104aa565b8063e40716a114610b85578063ea321e4914610b9a578063eb57e20214610bba578063eda5868c14610bda578063f340fa0114610bef576104aa565b8063d86222d511610108578063d86222d514610b1c578063daacdb6614610b31578063dc927faf14610b46578063e086c7b114610b5b578063e1c7392a14610b70576104aa565b8063c6d3394514610abd578063c81b166214610ad2578063c8509d81146108b6578063ce910b0c14610ae7578063d68fb56a14610b07576104aa565b8063a5422d5c116101dd578063ad3c9da6116101a1578063ad3c9da614610a3c578063aef198a914610a5c578063b7ab4db514610a71578063b8cf4ef114610a93578063bf9f499514610666578063c466689d14610aa8576104aa565b8063a5422d5c146109c8578063a78abc16146109dd578063aaf5eb68146109f2578063ab51bb9614610a07578063ac43175114610a1c576104aa565b806396713da91161022457806396713da91461095f5780639dc09262146109745780639fe0f81614610989578063a0dc27581461099e578063a1a11bf5146109b3576104aa565b806388b32f11146108eb5780638a7beb01146109005780638b5ad0c9146109155780638d19a4101461092a5780639369d7de1461094a576104aa565b806351e80672116103875780636e47b482116103045780637942fd05116102c85780637942fd05146108775780637a84ca2a1461088c57806381650b62146108a1578063831d65d1146108b6578063853230aa1461086257806386249882146108d6576104aa565b80636e47b4821461080e57806370fd5bad14610823578063718a8aa81461083857806375d47a0a1461084d57806378dfed4a14610862576104aa565b80635de1e22c1161034b5780635de1e22c14610792578063603d86d31461065157806360eba4fe146107a757806362b72cf5146107c75780636969a25c146107dc576104aa565b806351e806721461071357806355614fcc14610728578063565c56b3146107485780635667515a146107685780635d77156c1461077d576104aa565b80633365af3a1161042057806343756e5c116103e457806343756e5c1461068857806345cf9daf1461069d578063493279b1146106b25780634bf6c882146106d45780634df6e0c3146106e95780635192c82c146106fe576104aa565b80633365af3a146105ee57806335409f7f1461060e5780633b071dcc1461062e5780633de0f0d8146106515780633dffc38714610666576104aa565b8063152ad3b811610467578063152ad3b8146105625780631ff1806914610584578063219f22d514610599578063300c3567146105ae578063321d398a146105ce576104aa565b806304c4fec6146104af57806307a56847146104c65780630bee7a67146104f15780630e2374a5146105135780631182b87514610535576104aa565b366104aa57005b600080fd5b3480156104bb57600080fd5b506104c4610c9a565b005b3480156104d257600080fd5b506104db610d0c565b6040516104e89190617691565b60405180910390f35b3480156104fd57600080fd5b50610506610d12565b6040516104e891906176bb565b34801561051f57600080fd5b50610528610d17565b6040516104e89190616a60565b34801561054157600080fd5b50610555610550366004616946565b610d1d565b6040516104e89190616bd7565b34801561056e57600080fd5b50610577610f55565b6040516104e89190616bcc565b34801561059057600080fd5b506104db610f5e565b3480156105a557600080fd5b50610506610f64565b3480156105ba57600080fd5b506104c46105c93660046167d0565b610f69565b3480156105da57600080fd5b506105776105e93660046168f3565b6112b0565b3480156105fa57600080fd5b506105776106093660046168f3565b61137f565b34801561061a57600080fd5b506104c46106293660046167a9565b611430565b34801561063a57600080fd5b50610643611589565b6040516104e8929190616ae2565b34801561065d57600080fd5b506104db611865565b34801561067257600080fd5b5061067b61186b565b6040516104e891906176cc565b34801561069457600080fd5b50610528611870565b3480156106a957600080fd5b506104db611876565b3480156106be57600080fd5b506106c761187c565b6040516104e89190617682565b3480156106e057600080fd5b5061067b611881565b3480156106f557600080fd5b50610643611886565b34801561070a57600080fd5b506104db611a04565b34801561071f57600080fd5b50610528611a0a565b34801561073457600080fd5b506105776107433660046167a9565b611a10565b34801561075457600080fd5b506104db6107633660046167a9565b611a45565b34801561077457600080fd5b5061067b611a96565b34801561078957600080fd5b50610506611a9b565b34801561079e57600080fd5b506104db611aa0565b3480156107b357600080fd5b506105556107c23660046168f3565b611aa6565b3480156107d357600080fd5b506104db611b4c565b3480156107e857600080fd5b506107fc6107f73660046168f3565b611b52565b6040516104e896959493929190616a8d565b34801561081a57600080fd5b50610528611bb6565b34801561082f57600080fd5b5061067b611bbc565b34801561084457600080fd5b5061067b611bc1565b34801561085957600080fd5b50610528611bc6565b34801561086e57600080fd5b506104db611bcc565b34801561088357600080fd5b5061067b611bd2565b34801561089857600080fd5b506104db611bd7565b3480156108ad57600080fd5b50610506611bdd565b3480156108c257600080fd5b506104c46108d1366004616946565b611be2565b3480156108e257600080fd5b506104db611c43565b3480156108f757600080fd5b506104db611c49565b34801561090c57600080fd5b50610577611c4f565b34801561092157600080fd5b506104db611c58565b34801561093657600080fd5b506104db6109453660046167a9565b611c5e565b34801561095657600080fd5b506104c4611c9e565b34801561096b57600080fd5b5061067b611db2565b34801561098057600080fd5b50610528611db7565b34801561099557600080fd5b506104db611dbd565b3480156109aa57600080fd5b506104db611dc2565b3480156109bf57600080fd5b50610528611dc7565b3480156109d457600080fd5b50610555611dcd565b3480156109e957600080fd5b50610577611dec565b3480156109fe57600080fd5b506104db611df5565b348015610a1357600080fd5b50610506611a96565b348015610a2857600080fd5b506104c4610a37366004616897565b611dfe565b348015610a4857600080fd5b506104db610a573660046167a9565b61269c565b348015610a6857600080fd5b506104db6126ae565b348015610a7d57600080fd5b50610a866126bb565b6040516104e89190616acf565b348015610a9f57600080fd5b506104db6127a7565b348015610ab457600080fd5b506104db6127ac565b348015610ac957600080fd5b506104db611bbc565b348015610ade57600080fd5b506105286127b2565b348015610af357600080fd5b50610555610b023660046168f3565b6127b8565b348015610b1357600080fd5b506104db6127c5565b348015610b2857600080fd5b506104db612804565b348015610b3d57600080fd5b506104db612810565b348015610b5257600080fd5b50610528612816565b348015610b6757600080fd5b506104db610d12565b348015610b7c57600080fd5b506104c461281c565b348015610b9157600080fd5b506104db6129cb565b348015610ba657600080fd5b50610577610bb5366004616858565b6129d1565b348015610bc657600080fd5b506104c4610bd53660046167a9565b612b57565b348015610be657600080fd5b50610506612c5f565b6104c4610bfd3660046167a9565b612c64565b348015610c0e57600080fd5b506104db612fcc565b348015610c2357600080fd5b50610528612fd2565b348015610c3857600080fd5b5061067b611dbd565b348015610c4d57600080fd5b50610528612fd8565b348015610c6257600080fd5b50610c76610c713660046168f3565b612fde565b6040516104e89392919061769a565b348015610c9157600080fd5b506105286130a0565b6000610ca533611c5e565b9050600b8181548110610cb457fe5b600091825260209091206001601690920201015460ff16610cf05760405162461bcd60e51b8152600401610ce79061733c565b60405180910390fd5b6000610cfa6127c5565b9050610d073383836130a6565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d425760405162461bcd60e51b8152600401610ce790616d96565b3361200014610d635760405162461bcd60e51b8152600401610ce7906174d5565b600b54610e2157610d72616495565b60015460005b81811015610e1d57600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794610df9936000805160206177648339815191529091019201906164c4565b506060820151610e0f906003830190601361653e565b505050806001019050610d78565b5050505b610e2961656b565b6000610e6a85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061329292505050565b9150915080610e8657610e7d606461344e565b92505050610f4e565b815160009060ff16610eab57610ea4836020015184604001516134af565b9050610f1a565b825160ff1660011415610f1657826020015151600114610ef057600080516020617724833981519152604051610ee0906171f5565b60405180910390a1506067610f11565b610ea48360200151600081518110610f0457fe5b6020026020010151614103565b610f1a565b5060655b63ffffffff8116610f3f5750506040805160008152602081019091529150610f4e9050565b610f488161344e565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f885760405162461bcd60e51b8152600401610ce790617524565b6010544311610fa95760405162461bcd60e51b8152600401610ce790616ef2565b3a15610fc75760405162461bcd60e51b8152600401610ce79061727b565b60005460ff16610fe95760405162461bcd60e51b8152600401610ce790616d96565b60006110023168056bc75e2d63100000811115611020576110198168056bc75e2d6310000063ffffffff61427a16565b9150611027565b50506112a6565b6040516213929d60e11b8152611002906227253a9061104c9030908690600401616a74565b602060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e919061690b565b9150816110ac5750506112a6565b6000805b848110156110da578585828181106110c457fe5b90506020020135820191508060010190506110b0565b50806110e8575050506112a6565b6000806000805b8981101561129e578489898381811061110457fe5b9050602002013588028161111457fe5b0493508a8a8281811061112357fe5b905060200201602081019061113891906167a9565b6001600160a01b0381166000908152600460205260409020549093509150811561125457600060018084038154811061116d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111da57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111cd9190617691565b60405180910390a261124e565b6003546111ed908663ffffffff6142bc16565b6003908155810154611205908663ffffffff6142bc16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611245908890617691565b60405180910390a25b50611296565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161128d9190617691565b60405180910390a25b6001016110ef565b505050505050505b5050436010555050565b60015460009082106112c45750600061137a565b60006001600160a01b0316600183815481106112dc57fe5b60009182526020909120600490910201546001600160a01b0316148061130c5750600854158061130c5750600a54155b8061131b575060085460095410155b8061132c575061132a8261137f565b155b8061135557506000600b838154811061134157fe5b906000526020600020906016020160000154115b80611369575060016113656126bb565b5111155b156113765750600061137a565b5060015b919050565b60015460009082106113935750600061137a565b600b5482106113d057600182815481106113a957fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061137a565b600182815481106113dd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561142a5750600b828154811061141157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114515760405162461bcd60e51b8152600401610ce790617639565b600b5461150f57611460616495565b60015460005b8181101561150b57600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff19169115159190911790556040860151805187946114e7936000805160206177648339815191529091019201906164c4565b5060608201516114fd906003830190601361653e565b505050806001019050611466565b5050505b6001600160a01b038116600090815260046020526040902054806115335750611586565b6001810390506000600b828154811061154857fe5b600091825260209091206001601690920201015460ff16905061156b83836142e1565b80156115745750805b15610d07576009805460001901905550505b50565b60015460609081906000805b828110156115dc57600181815481106115aa57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115d4576001909101905b600101611595565b50606081604051908082528060200260200182016040528015611609578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561164257816020015b606081526020019060019003908161162d5790505b50600b54600094509091508414156117bd5760005b848110156117b7576001818154811061166c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117af576001818154811061169c57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116c757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106116f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561178c5780601f106117615761010080835404028352916020019161178c565b820191906000526020600020905b81548152906001019060200180831161176f57829003601f168201915b505050505082858151811061179d57fe5b60209081029190910101526001909301925b600101611657565b50611859565b60005b8481101561185757600181815481106117d557fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661184f576001818154811061180557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061183057fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117c0565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b603881565b600881565b600e54600c5460609182918061189a575060155b60606118a46126bb565b905060606118b182614694565b9050828251116118c8579094509250611861915050565b838383510310156118da578282510393505b83156119105760c843046118f683838388880360008a8a614802565b61190e8383838888038989038a8b8b8b510301614802565b505b60608360405190808252806020026020018201604052801561193c578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561197557816020015b60608152602001906001900390816119605790505b50905060005b858110156119f65784818151811061198f57fe5b60200260200101518382815181106119a357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119cf57fe5b60200260200101518282815181106119e357fe5b602090810291909101015260010161197b565b509096509450505050509091565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611a3857600091505061137a565b60001901610f4e8161137f565b6001600160a01b03811660009081526004602052604081205480611a6d57600091505061137a565b600180820381548110611a7c57fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b60128181548110611ab357fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b445780601f10611b1957610100808354040283529160200191611b44565b820191906000526020600020905b815481529060010190602001808311611b2757829003601f168201915b505050505081565b60105481565b60018181548110611b5f57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c035760405162461bcd60e51b8152600401610ce7906174d5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c36939291906176da565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c945760405162461bcd60e51b8152600401610ce79061745d565b6000190192915050565b600b54611d5c57611cad616495565b60015460005b81811015611d5857600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794611d34936000805160206177648339815191529091019201906164c4565b506060820151611d4a906003830190601361653e565b505050806001019050611cb3565b5050505b600854611d695760036008555b600a54611d76576002600a555b6000611d8133611c5e565b9050611d8c816112b0565b611da85760405162461bcd60e51b8152600401610ce7906171b2565b6115863382614959565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016177846105ef913981565b60005460ff1681565b6402540be40081565b60005460ff16611e205760405162461bcd60e51b8152600401610ce790616d96565b3361100714611e415760405162461bcd60e51b8152600401610ce7906172a9565b611eab84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149f19050565b15611f485760208114611ed05760405162461bcd60e51b8152600401610ce790617417565b604080516020601f8401819004810282018101909252828152600091611f0e91858580838501838280828437600092019190915250614a4a92505050565b905060648110158015611f245750620186a08111155b611f405760405162461bcd60e51b8152600401610ce7906170a2565b600255612659565b611fa884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149f19050565b156120375760208114611fcd5760405162461bcd60e51b8152600401610ce790616c1c565b604080516020601f840181900481028201810190925282815260009161200b91858580838501838280828437600092019190915250614a4a92505050565b905061271081111561202f5760405162461bcd60e51b8152600401610ce790616f34565b600655612659565b6120a184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149f19050565b1561213b57602081146120c65760405162461bcd60e51b8152600401610ce790616c53565b604080516020601f840181900481028201810190925282815260009161210491858580838501838280828437600092019190915250614a4a92505050565b600c5490915080612113575060155b8082106121325760405162461bcd60e51b8152600401610ce790616fa7565b50600855612659565b6121a484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149f19050565b1561223d57602081146121c95760405162461bcd60e51b8152600401610ce790616d1c565b604080516020601f840181900481028201810190925282815260009161220791858580838501838280828437600092019190915250614a4a92505050565b90506000811180156122195750600a81105b6122355760405162461bcd60e51b8152600401610ce7906175b5565b600a55612659565b6122b184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149f19050565b1561234057602081146122d65760405162461bcd60e51b8152600401610ce790616cd0565b604080516020601f840181900481028201810190925282815260009161231491858580838501838280828437600092019190915250614a4a92505050565b9050600d548111156123385760405162461bcd60e51b8152600401610ce790617118565b600e55612659565b6123a984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149f19050565b1561242b57602081146123ce5760405162461bcd60e51b8152600401610ce7906172f7565b604080516020601f840181900481028201810190925282815260009161240c91858580838501838280828437600092019190915250614a4a92505050565b600d819055600e5490915081101561242557600d54600e555b50612659565b61248f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149f19050565b1561253d57602081146124b45760405162461bcd60e51b8152600401610ce790616d61565b604080516020601f84018190048102820181019092528281526000916124f291858580838501838280828437600092019190915250614a4a92505050565b9050600081116125145760405162461bcd60e51b8152600401610ce790616e04565b60648111156125355760405162461bcd60e51b8152600401610ce790616e4c565b600c55612659565b6125a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506149f19050565b1561264157602081146125ca5760405162461bcd60e51b8152600401610ce790617571565b604080516020601f840181900481028201810190925282815260009161260891858580838501838280828437600092019190915250614a4a92505050565b90506001811015801561261d57506127108111155b6126395760405162461bcd60e51b8152600401610ce79061704f565b600f55612659565b60405162461bcd60e51b8152600401610ce790617612565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161268e9493929190616bea565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156126ea576126d68161137f565b156126e2578160010191505b6001016126c5565b50606081604051908082528060200260200182016040528015612717578160200160208202803683370190505b5090506000915060005b8381101561279e576127328161137f565b15612796576001818154811061274457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061276f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612721565b50925050505b90565b601581565b61027181565b61100281565b60138181548110611ab357fe5b60006127cf6126bb565b519050600080600c54116127e45760156127e8565b600c545b9050808211156127f6578091505b8161280057600191505b5090565b67016345785d8a000081565b60055481565b61100381565b60005460ff161561283f5760405162461bcd60e51b8152600401610ce7906173a9565b61284761656b565b600061286d6040518061062001604052806105ef81526020016177846105ef9139613292565b915091508061288e5760405162461bcd60e51b8152600401610ce790617494565b60005b8260200151518110156129b3576001836020015182815181106128b057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061298657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612891565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612ada57612ac285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a2a57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b820191906000526020600020905b815481529060010190602001808311612a9b57829003601f168201915b5050505050614a4f565b15612ad25760019250505061142a565b6001016129d9565b5060125460005b81811015612b4b57612b3286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a2a57fe5b15612b43576001935050505061142a565b600101612ae1565b50600095945050505050565b3361100114612b785760405162461bcd60e51b8152600401610ce790617639565b600b54612c3657612b87616495565b60015460005b81811015612c3257600b805460018101825560009190915283516000805160206177448339815191526016909202918201908155602080860151600080516020617d738339815191528401805460ff1916911515919091179055604086015180518794612c0e936000805160206177648339815191529091019201906164c4565b506060820151612c24906003830190601361653e565b505050806001019050612b8d565b5050505b6000612c4182614ab3565b9050612c4c816112b0565b15612c5b57612c5b8282614959565b5050565b606581565b334114612c835760405162461bcd60e51b8152600401610ce790617524565b60005460ff16612ca55760405162461bcd60e51b8152600401610ce790616d96565b60003411612cc55760405162461bcd60e51b8152600401610ce7906170e9565b3a15612ce35760405162461bcd60e51b8152600401610ce79061727b565b6001600160a01b03811660009081526004602052604090205460145434919060ff16612d2357610271600f556103e86006556014805460ff191660011790555b6000612d4c612710612d40600f5486614c5690919063ffffffff16565b9063ffffffff614c9016565b90508015612dbc576040516110029082156108fc029083906000818181858888f19350505050158015612d83573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051612db39190617691565b60405180910390a15b600083118015612dce57506000600654115b15612e74576000612df0612710612d4060065487614c5690919063ffffffff16565b90508015612e725760405161dead9082156108fc029083906000818181858888f19350505050158015612e27573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612e579190617691565b60405180910390a1612e6f848263ffffffff61427a16565b93505b505b612e84838263ffffffff61427a16565b92508115612f84576000600180840381548110612e9d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612f0a57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612efd9190617691565b60405180910390a2612f7e565b600354612f1d908563ffffffff6142bc16565b6003908155810154612f35908563ffffffff6142bc16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612f75908790617691565b60405180910390a25b50612fc6565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612fbd9190617691565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612feb57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156130965780601f1061306b57610100808354040283529160200191613096565b820191906000526020600020905b81548152906001019060200180831161307957829003601f168201915b5050505050905083565b61100481565b6000600a54600014806130b7575081155b806130c25750600954155b156130cf57506000610f4e565b6009600081546001900391905081905550600061311a600a54612d4085612d40600b89815481106130fc57fe5b6000918252602090912060169091020154439063ffffffff61427a16565b90506000600b858154811061312b57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190616923565b9150915060009350808310613242576131e187876142e1565b506040516305bfb49960e41b815261100190635bfb499090613207908a90600401616a60565b600060405180830381600087803b15801561322157600080fd5b505af1158015613235573d6000803e3d6000fd5b5050505060019350613254565b8183106132545761325287614ab3565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b61329a61656b565b60006132a461656b565b6132ac61658f565b6132bd6132b886614cd2565b614cf7565b90506000805b6132cc83614d41565b1561344057806132f1576132e76132e284614d62565b614db0565b60ff168452613438565b806001141561343357606061330d61330885614d62565b614e30565b9050805160405190808252806020026020018201604052801561334a57816020015b6133376165af565b81526020019060019003908161332f5790505b508560200181905250805160405190808252806020026020018201604052801561338857816020015b60608152602001906001900390816133735790505b50604086015260005b8151811015613428576133a26165af565b606060006133c28585815181106133b557fe5b6020026020010151614f01565b925092509250806133e2578860009a509a50505050505050505050613449565b82896020015185815181106133f357fe5b6020026020010181905250818960400151858151811061340f57fe5b6020026020010181905250505050806001019050613391565b506001925050613438565b613440565b6001016132c3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161346857905050905061348e8363ffffffff1661501b565b8160008151811061349b57fe5b6020026020010181905250610f4e8161502e565b60006064835111156134e6576000805160206177248339815191526040516134d690616ea9565b60405180910390a150606661142a565b60005b83518110156135845760005b8181101561357b5784818151811061350957fe5b6020026020010151600001516001600160a01b031685838151811061352a57fe5b6020026020010151600001516001600160a01b031614156135735760008051602061772483398151915260405161356090617004565b60405180910390a160669250505061142a565b6001016134f5565b506001016134e9565b5060608061359285856150b8565b60015491935091506000908190815b818110156136175767016345785d8a0000600182815481106135bf57fe5b906000526020600020906004020160030154106135e15783600101935061360f565b6000600182815481106135f057fe5b906000526020600020906004020160030154111561360f578260010192505b6001016135a1565b50606083604051908082528060200260200182016040528015613644578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613673578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156136a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156136d1578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613702578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613731578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561377957600080fd5b505afa15801561378d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b1919061690b565b905067016345785d8a00008111156137fc576000805160206177248339815191526040516137de90617368565b60405180910390a160689d505050505050505050505050505061142a565b60005b89811015613a6d5767016345785d8a00006001828154811061381d57fe5b906000526020600020906004020160030154106139a2576001818154811061384157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061387257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106138a757fe5b906000526020600020906004020160030154816138c057fe5b06600183815481106138ce57fe5b9060005260206000209060040201600301540390506138f6838261427a90919063ffffffff16565b898e8151811061390257fe5b6020026020010181815250506001828154811061391b57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061394c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061397957fe5b6020908102919091010152613994868263ffffffff6142bc16565b95508c6001019c5050613a65565b6000600182815481106139b157fe5b9060005260206000209060040201600301541115613a6557600181815481106139d657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c81518110613a0757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110613a3457fe5b906000526020600020906004020160030154838c81518110613a5257fe5b6020026020010181815250508a6001019a505b6001016137ff565b5060008415613ce3576002546040516303702b2960e51b815261100491636e056520918891613aa7918e918e918d91420190600401616b52565b6020604051808303818588803b158015613ac057600080fd5b505af193505050508015613af1575060408051601f3d908101601f19168201909252613aee91810190616838565b60015b613c68576040516000815260443d1015613b0d57506000613ba8565b60046000803e60005160e01c6308c379a08114613b2e576000915050613ba8565b60043d036004833e81513d60248201116001600160401b0382111715613b5957600092505050613ba8565b80830180516001600160401b03811115613b7a576000945050505050613ba8565b8060208301013d8601811115613b9857600095505050505050613ba8565b601f01601f191660405250925050505b80613bb35750613bf5565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613be79190616bd7565b60405180910390a250613c63565b3d808015613c1f576040519150601f19603f3d011682016040523d82523d6000602084013e613c24565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613c599190616bd7565b60405180910390a2505b613ce3565b8015613caa577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613c9d9190617691565b60405180910390a1613ce1565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613cd890616c99565b60405180910390a25b505b8015613e995760005b8751811015613e97576000888281518110613d0357fe5b60200260200101519050600060018281548110613d1c57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613d4d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613e095760018281548110613d8e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613ddd57fe5b906000526020600020906004020160030154604051613dfc9190617691565b60405180910390a2613e8d565b60018281548110613e1657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613e6557fe5b906000526020600020906004020160030154604051613e849190617691565b60405180910390a25b5050600101613cec565b505b835115613fe35760005b8451811015613fe1576000858281518110613eba57fe5b60200260200101516001600160a01b03166108fc868481518110613eda57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613f7057858281518110613f1057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613f4e57fe5b6020026020010151604051613f639190617691565b60405180910390a2613fd8565b858281518110613f7c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613fba57fe5b6020026020010151604051613fcf9190617691565b60405180910390a25b50600101613ea3565b505b505050505050505050505050600047111561405f577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516140279190617691565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561405d573d6000803e3d6000fd5b505b6000600381905560055581511561407a5761407a82826152f1565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156140b757600080fd5b505af11580156140cb573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614154575060018082038154811061413457fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561419a5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061137a565b6001546005546000198201118015906141f05784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061137a565b60058054600190810190915580548190600019860190811061420e57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615aab565b600082820183811015610f4e5760405162461bcd60e51b8152600401610ce790616dcd565b600080600183815481106142f157fe5b9060005260206000209060040201600301549050600060018080549050039050600161431b6126bb565b51116143505760006001858154811061433057fe5b90600052602060002090600402016003018190555060009250505061142a565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143899190617691565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561457657600181600101815481106143ca57fe5b9060005260206000209060040201600182815481106143e557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106144a657fe5b9060005260206000209060160201600b82815481106144c157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546145189383860193908216156101000260001901909116046165e4565b5061452b60038281019084016013616659565b5090505080600101600460006001848154811061454457fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016143ac565b50600180548061458257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806145d557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906146076002830182616683565b6146156003830160006166c7565b50509055600081838161462457fe5b04905080156146885760015460005b8181101561468557826001828154811061464957fe5b906000526020600020906004020160030154016001828154811061466957fe5b6000918252602090912060036004909202010155600101614633565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156146d357816020015b60608152602001906001900390816146be5790505b50600b5490915083146146ea57925061137a915050565b60005b828110156147f957600b60016004600089858151811061470957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061473d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156147d55780601f106147aa576101008083540402835291602001916147d5565b820191906000526020600020905b8154815290600101906020018083116147b857829003601f168201915b50505050508282815181106147e657fe5b60209081029190910101526001016146ed565b50949350505050565b60005b8281101561494f5760008287838801604051602001614825929190616a52565b6040516020818303038152906040528051906020012060001c8161484557fe5b06905080850182870114614946576000898388018151811061486357fe5b602002602001015190506060898489018151811061487d57fe5b602002602001015190508a8388018151811061489557fe5b60200260200101518b858a01815181106148ab57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106148da57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061490857fe5b60200260200101518a858a018151811061491e57fe5b6020026020010181905250808a8489018151811061493857fe5b602002602001018190525050505b50600101614805565b5050505050505050565b600980546001908101909155600b80548390811061497357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106149a957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a049190616a36565b6040516020818303038152906040528051906020012083604051602001614a2b9190616a36565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a6b5760009250614aa9565b600160208701838101602088015b600284838510011415614aa4578051835114614a985760009650600093505b60209283019201614a79565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614adc5750600019905061137a565b600181039050600060018281548110614af157fe5b9060005260206000209060040201600301549050600060018381548110614b1457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b6d908590617691565b60405180910390a280614b855782935050505061137a565b6000818381614b9057fe5b0490508015614c4c5760005b84811015614bee578160018281548110614bb257fe5b9060005260206000209060040201600301540160018281548110614bd257fe5b6000918252602090912060036004909202010155600101614b9c565b50600180549085015b81811015614c49578260018281548110614c0d57fe5b9060005260206000209060040201600301540160018281548110614c2d57fe5b6000918252602090912060036004909202010155600101614bf7565b50505b5091949350505050565b600082614c655750600061142a565b82820282848281614c7257fe5b0414610f4e5760405162461bcd60e51b8152600401610ce79061723a565b6000610f4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615ad7565b614cda6166d6565b506040805180820190915281518152602082810190820152919050565b614cff61658f565b614d0882615b0e565b614d1157600080fd5b6000614d208360200151615b48565b60208085015160408051808201909152868152920190820152915050919050565b6000614d4b6166d6565b505080518051602091820151919092015191011190565b614d6a6166d6565b614d7382614d41565b614d7c57600080fd5b60208201516000614d8c82615bab565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614dc557508151602110155b614dce57600080fd5b6000614ddd8360200151615b48565b90508083600001511015614e035760405162461bcd60e51b8152600401610ce7906173e0565b8251602080850151830180519284900392918310156147f957506020919091036101000a90049392505050565b6060614e3b82615b0e565b614e4457600080fd5b6000614e4f83615c8c565b9050606081604051908082528060200260200182016040528015614e8d57816020015b614e7a6166d6565b815260200190600190039081614e725790505b5090506000614e9f8560200151615b48565b60208601510190506000805b84811015614ef657614ebc83615bab565b9150604051806040016040528083815260200184815250848281518110614edf57fe5b602090810291909101015291810191600101614eab565b509195945050505050565b614f096165af565b60606000614f156165af565b6060614f1f61658f565b614f2887614cf7565b90506000805b614f3783614d41565b1561500c5780614f6257614f52614f4d84614d62565b615ce8565b6001600160a01b03168552615004565b8060011415614f8a57614f77614f4d84614d62565b6001600160a01b03166020860152615004565b8060021415614fb257614f9f614f4d84614d62565b6001600160a01b03166040860152615004565b8060031415614fde57614fc76132e284614d62565b6001600160401b0316606086015260019150615004565b8060041415614fff57614ff8614ff384614d62565b615d02565b9350615004565b61500c565b600101614f2e565b50929791965091945092505050565b606061142a61502983615d72565b615e58565b606081516000141561504f575060408051600081526020810190915261137a565b60608260008151811061505e57fe5b602002602001015190506000600190505b835181101561509f576150958285838151811061508857fe5b6020026020010151615eaa565b915060010161506f565b50610f4e6150b2825160c060ff16615f27565b82615eaa565b6060806000808080806150c96127c5565b6001549091505b80156151d757600181039250600b83815481106150e957fe5b600091825260209091206001601690920201015460ff16615109576151ce565b6001838154811061511657fe5b60009182526020909120600490910201546001600160a01b0316945061513d8584846130a6565b9350831580615150575060018a51038610155b1561515a576151ce565b60005b8a518110156151cc57856001600160a01b03168b828151811061517c57fe5b6020026020010151600001516001600160a01b031614156151c45760018b82815181106151a557fe5b60209081029190910101519015156080909101526001909601956151cc565b60010161515d565b505b600019016150d0565b508489510360405190808252806020026020018201604052801561521557816020015b6152026165af565b8152602001906001900390816151fa5790505b5096508489510360405190808252806020026020018201604052801561524f57816020015b606081526020019060019003908161523a5790505b5095506000915060005b89518110156152e35789818151811061526e57fe5b6020026020010151608001516152db5789818151811061528a57fe5b602002602001015188848151811061529e57fe5b60200260200101819052508881815181106152b557fe5b60200260200101518784815181106152c957fe5b60200260200101819052508260010192505b600101615259565b5050505050505b9250929050565b600154825160005b8281101561540e57600161530b6165af565b6001838154811061531857fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156153e2578781815181106153a857fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156153da57600092506153e2565b600101615394565b5081156154045780516001600160a01b03166000908152600460205260408120555b50506001016152f9565b50808211156154cd57805b828110156154cb57600180548061542c57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061547f57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154b16002830182616683565b6154bf6003830160006166c7565b50509055600101615419565b505b60008183106154dc57816154de565b825b905060005b8181101561584d576155908682815181106154fa57fe5b60200260200101516001838154811061550f57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615ff9565b6157445780600101600460008884815181106155a857fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106155e457fe5b6020026020010151600182815481106155f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106156b457fe5b6020026020010151600b82815481106156c957fe5b906000526020600020906016020160020190805190602001906156ed9291906164c4565b506000600b82815481106156fd57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061572e57fe5b6000918252602090912060169091020155615845565b6157d585828151811061575357fe5b6020026020010151600b838154811061576857fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b615820578481815181106157e557fe5b6020026020010151600b82815481106157fa57fe5b9060005260206000209060160201600201908051906020019061581e9291906164c4565b505b60006001828154811061582f57fe5b9060005260206000209060040201600301819055505b6001016154e3565b5082821115615a255761585e616495565b835b83811015615a225785818151811061587457fe5b60200260200101518260400181905250600187828151811061589257fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020617744833981519152810191825585830151600080516020617d738339815191528201805491151560ff19909216919091179055928501518051869492936159c893600080516020617764833981519152019201906164c4565b5060608201516159de906003830190601361653e565b50505080600101600460008984815181106159f557fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615860565b50505b615a2d61607a565b615a3561625c565b6000600981905560015493505b83811015615aa3576000600b8281548110615a5957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615a8a57fe5b6000918252602090912060169091020155600101615a42565b505050505050565b60008184841115615acf5760405162461bcd60e51b8152600401610ce79190616bd7565b505050900390565b60008183615af85760405162461bcd60e51b8152600401610ce79190616bd7565b506000838581615b0457fe5b0495945050505050565b8051600090615b1f5750600061137a565b6020820151805160001a9060c0821015615b3e5760009250505061137a565b5060019392505050565b8051600090811a6080811015615b6257600091505061137a565b60b8811080615b7d575060c08110801590615b7d575060f881105b15615b8c57600191505061137a565b60c0811015615ba05760b51901905061137a565b60f51901905061137a565b80516000908190811a6080811015615bc65760019150615c85565b60b8811015615bdb57607e1981019150615c85565b60c0811015615c2c57600060b78203600186019550806020036101000a865104915060018101820193505080831015615c265760405162461bcd60e51b8152600401610ce790617187565b50615c85565b60f8811015615c415760be1981019150615c85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615c835760405162461bcd60e51b8152600401610ce790617187565b505b5092915050565b8051600090615c9d5750600061137a565b60008090506000615cb18460200151615b48565b602085015185519181019250015b80821015615cdf57615cd082615bab565b82019150826001019250615cbf565b50909392505050565b8051600090601514615cf957600080fd5b61142a82614db0565b8051606090615d1057600080fd5b6000615d1f8360200151615b48565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615d56576020820181803683370190505b50905060008160200190506147f984876020015101828561644a565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615db657506018615dda565b6fffffffffffffffffffffffffffffffff198416615dd657506010615dda565b5060005b6020811015615e1057818181518110615def57fe5b01602001516001600160f81b03191615615e0857615e10565b600101615dda565b60008160200390506060816040519080825280601f01601f191660200182016040528015615e45576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615e8a5750607f60f81b82600081518110615e7857fe5b01602001516001600160f81b03191611155b15615e9657508061137a565b61142a615ea88351608060ff16615f27565b835b6060806040519050835180825260208201818101602087015b81831015615edb578051835260209283019201615ec3565b50855184518101855292509050808201602086015b81831015615f08578051835260209283019201615ef0565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615f515760405162461bcd60e51b8152600401610ce790616f7f565b60408051600180825281830190925260609160208201818036833701905050905060378411615fab5782840160f81b81600081518110615f8d57fe5b60200101906001600160f81b031916908160001a905350905061142a565b6060615fb685615d72565b90508381510160370160f81b82600081518110615fcf57fe5b60200101906001600160f81b031916908160001a905350615ff08282615eaa565b95945050505050565b805182516000916001600160a01b039182169116148015616033575081602001516001600160a01b031683602001516001600160a01b0316145b8015616058575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f4e5750506060908101519101516001600160401b0390811691161490565b601254601354808211156160c557805b828110156160c357601280548061609d57fe5b6001900381819060005260206000200160006160b99190616683565b905560010161608a565b505b60008183106160d457816160d6565b825b905060005b818110156161ee57616193601282815481106160f357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156161815780601f1061615657610100808354040283529160200191616181565b820191906000526020600020905b81548152906001019060200180831161616457829003601f168201915b505050505060138381548110612a2a57fe5b6161e657601381815481106161a457fe5b90600052602060002001601282815481106161bb57fe5b9060005260206000200190805460018160011615610100020316600290046161e49291906165e4565b505b6001016160db565b5082821115610d0757825b82811015612fc65760126013828154811061621057fe5b60009182526020808320845460018181018755958552919093209290910180546162539493909201929091600261010092821615929092026000190116046165e4565b506001016161f9565b601354600b54808211156162a757805b828110156162a557601380548061627f57fe5b60019003818190600052602060002001600061629b9190616683565b905560010161626c565b505b60008183106162b657816162b8565b825b905060005b818110156163d757616375601382815481106162d557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156163635780601f1061633857610100808354040283529160200191616363565b820191906000526020600020905b81548152906001019060200180831161634657829003601f168201915b5050505050600b838154811061576857fe5b6163cf57600b818154811061638657fe5b9060005260206000209060160201600201601382815481106163a457fe5b9060005260206000200190805460018160011615610100020316600290046163cd9291906165e4565b505b6001016162bd565b5082821115610d0757825b82811015612fc6576013600b82815481106163f957fe5b600091825260208083208454600180820187559585529190932060169290920290920160029081018054616441959390940193909260001990821615610100020116046165e4565b506001016163e2565b8061645457610d07565b5b60208110616474578251825260209283019290910190601f1901616455565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016164bf6166f0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061650557805160ff1916838001178555616532565b82800160010185558215616532579182015b82811115616532578251825591602001919060010190616517565b5061280092915061670f565b82601381019282156165325791602002820182811115616532578251825591602001919060010190616517565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806165a26166d6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061661d5780548555616532565b8280016001018555821561653257600052602060002091601f016020900482015b8281111561653257825482559160010191906001019061663e565b8260138101928215616532579182018281111561653257825482559160010191906001019061663e565b50805460018160011615610100020316600290046000825580601f106166a95750611586565b601f016020900490600052602060002090810190611586919061670f565b5061158690601381019061670f565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127a491905b808211156128005760008155600101616715565b60008083601f84011261673a578182fd5b5081356001600160401b03811115616750578182fd5b60208301915083602080830285010111156152ea57600080fd5b60008083601f84011261677b578182fd5b5081356001600160401b03811115616791578182fd5b6020830191508360208285010111156152ea57600080fd5b6000602082840312156167ba578081fd5b81356001600160a01b0381168114610f4e578182fd5b600080600080604085870312156167e5578283fd5b84356001600160401b03808211156167fb578485fd5b61680788838901616729565b9096509450602087013591508082111561681f578384fd5b5061682c87828801616729565b95989497509550505050565b600060208284031215616849578081fd5b81518015158114610f4e578182fd5b6000806020838503121561686a578182fd5b82356001600160401b0381111561687f578283fd5b61688b8582860161676a565b90969095509350505050565b600080600080604085870312156168ac578384fd5b84356001600160401b03808211156168c2578586fd5b6168ce8883890161676a565b909650945060208701359150808211156168e6578384fd5b5061682c8782880161676a565b600060208284031215616904578081fd5b5035919050565b60006020828403121561691c578081fd5b5051919050565b60008060408385031215616935578182fd5b505080516020909101519092909150565b60008060006040848603121561695a578283fd5b833560ff8116811461696a578384fd5b925060208401356001600160401b03811115616984578283fd5b6169908682870161676a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169d55781516001600160a01b0316875295820195908201906001016169b0565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616a228160208601602086016176f7565b601f01601f19169290920160200192915050565b60008251616a488184602087016176f7565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f4e602083018461699d565b600060408252616af5604083018561699d565b602083820381850152818551808452828401915082838202850101838801865b83811015616b4357601f19878403018552616b31838351616a0a565b94860194925090850190600101616b15565b50909998505050505050505050565b600060808252616b65608083018761699d565b828103602084810191909152865180835287820192820190845b81811015616b9b57845183529383019391830191600101616b7f565b50508481036040860152616baf818861699d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f4e6020830184616a0a565b600060408252616bfe6040830186886169e0565b8281036020840152616c118185876169e0565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526033908201527f7468652073797374656d526577617264526174696f206d757374206265206e6f60408201527202067726561746572207468616e20313030303606c1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615ff06060830184616a0a565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615ff06040830184866169e0565b60005b838110156177125781810151838201526020016176fa565b83811115612fc6575050600091015256fe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", + Code: kepler.MainnetValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b3a5c1fa8882c0e546dc5ba913ce4db77ec9befe", - Code: "608060405234801561001057600080fd5b50600436106102955760003560e01c80638256ace611610167578063c81b1662116100ce578063e1c7392a11610087578063e1c7392a146104d3578063eb57bff7146104db578063f9a2bbc7146104e3578063fc3e5908146104eb578063fc4333cd146104f3578063fd6a6879146104fb57610295565b8063c81b166214610482578063c8509d811461048a578063c96be4cb1461049d578063cc844b73146104b0578063d2a42e4b146104c3578063dc927faf146104cb57610295565b8063a78abc1611610120578063a78abc1614610447578063ab51bb961461044f578063ac0af62914610457578063ac4317511461045f578063ae61dc3b14610472578063c80d4b8f1461047a57610295565b80638256ace61461040c578063831d65d11461041457806396713da9146104275780639bc8e4f21461042f5780639dc0926214610437578063a1a11bf51461043f57610295565b8063493279b11161020b5780636e47b482116101c45780636e47b482146103dc57806370fd5bad146103e4578063718a8aa8146103ec57806375d47a0a146103f45780637912a65d146103fc5780637942fd051461040457610295565b8063493279b1146103925780634bf6c882146103a757806351e80672146103af578063567a372d146103b75780635bfb4990146103bf57806362b72cf5146103d457610295565b806335aa2e441161025d57806335aa2e441461032457806337c8dab914610337578063389f4f71146103585780633a63f4b11461036d5780633dffc3871461037557806343756e5c1461038a57610295565b80630bee7a671461029a5780630e2374a5146102b85780631182b875146102cd57806322d1e80b146102ed57806323bac5a214610302575b600080fd5b6102a2610503565b6040516102af919061354e565b60405180910390f35b6102c0610508565b6040516102af9190612d6a565b6102e06102db366004612ca0565b61050e565b6040516102af9190612da2565b6102f5610574565b6040516102af9190612d97565b610315610310366004612a4e565b61057d565b6040516102af93929190613536565b6102c0610332366004612c70565b6105a0565b61034a610345366004612a4e565b6105c7565b6040516102af929190613528565b61036061061e565b6040516102af91906134fe565b610360610624565b61037d61062a565b6040516102af919061355f565b6102c061062f565b61039a610635565b6040516102af91906134ef565b61037d61063a565b6102c061063f565b610360610645565b6103d26103cd366004612a4e565b61064b565b005b6103606106f6565b6102c06106fc565b61037d610702565b61037d610707565b6102c061070c565b610360610712565b61037d610717565b61034a61071c565b6103d2610422366004612ca0565b610726565b61037d610838565b61036061083d565b6102c0610848565b6102c061084e565b6102f5610854565b6102a261085d565b610360610862565b6103d261046d366004612b54565b610867565b610360610e17565b610360610e1e565b6102c0610e23565b6103d2610498366004612ca0565b610e29565b6103d26104ab366004612a4e565b610e9a565b6103d26104be366004612bbd565b61128b565b61036061187c565b6102c0611881565b6103d2611887565b6103606118c3565b6102c06118c9565b61037d6118cf565b6103d26118d4565b6102c0611d1d565b606481565b61200181565b6060336120001461053a5760405162461bcd60e51b815260040161053190613347565b60405180910390fd5b60005460ff1661055c5760405162461bcd60e51b815260040161053190612e9d565b60405162461bcd60e51b815260040161053190613438565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b600181815481106105ad57fe5b6000918252602090912001546001600160a01b0316905081565b6000806105d2612835565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b603881565b600881565b61200081565b60045481565b336110001461066c5760405162461bcd60e51b81526004016105319061312c565b60005460ff1661068e5760405162461bcd60e51b815260040161053190612e9d565b61200063f7a251d7600b6106a184611d23565b60006040518463ffffffff1660e01b81526004016106c19392919061356d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107475760405162461bcd60e51b815260040161053190613347565b60005460ff166107695760405162461bcd60e51b815260040161053190612e9d565b610771612858565b60006107b284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611df592505050565b9150915080156107f95781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107ec9161354e565b60405180910390a16106ef565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108299161354e565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108895760405162461bcd60e51b815260040161053190612e9d565b33611007146108aa5760405162461bcd60e51b815260040161053190613204565b61091584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611e759050565b156109b0576020811461093a5760405162461bcd60e51b8152600401610531906130b8565b604080516020601f840181900481028201810190925282815260009161097891858580838501838280828437600092019190915250611ecf92505050565b90506001811015801561098c575060055481105b6109a85760405162461bcd60e51b815260040161053190613302565b600455610dd4565b610a1684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611e759050565b15610ab25760208114610a3b5760405162461bcd60e51b815260040161053190613252565b604080516020601f8401819004810282018101909252828152600091610a7991858580838501838280828437600092019190915250611ecf92505050565b90506103e88111158015610a8e575060045481115b610aaa5760405162461bcd60e51b815260040161053190612f56565b600555610dd4565b610b2684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611e759050565b15610bc05760208114610b4b5760405162461bcd60e51b81526004016105319061346f565b604080516020601f8401819004810282018101909252828152600091610b8991858580838501838280828437600092019190915250611ecf92505050565b9050600a8110158015610b9c5750606481105b610bb85760405162461bcd60e51b81526004016105319061306c565b600655610dd4565b610c3484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611e759050565b15610cab5760208114610c595760405162461bcd60e51b815260040161053190612f8b565b604080516020601f8401819004810282018101909252828152610c959190848480838501838280828437600092019190915250611ed492505050565b6007805460ff1916911515919091179055610dd4565b610d1f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6d616c6963696f7573566f7465536c61736853636f706500000000000000000060208201529150611e759050565b15610dbc5760208114610d445760405162461bcd60e51b815260040161053190612de7565b604080516020601f8401819004810282018101909252828152600091610d8291858580838501838280828437600092019190915250611ecf92505050565b90506170808110158015610d985750620d2f0081105b610db45760405162461bcd60e51b815260040161053190612ed4565b600855610dd4565b60405162461bcd60e51b8152600401610531906133e3565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e099493929190612db5565b60405180910390a150505050565b6201518081565b609681565b61100281565b3361200014610e4a5760405162461bcd60e51b815260040161053190613347565b60005460ff16610e6c5760405162461bcd60e51b815260040161053190612e9d565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610eb95760405162461bcd60e51b815260040161053190613396565b60005460ff16610edb5760405162461bcd60e51b815260040161053190612e9d565b6003544311610efc5760405162461bcd60e51b8152600401610531906134ba565b3a15610f1a5760405162461bcd60e51b8152600401610531906131a7565b60405163155853f360e21b8152611000906355614fcc90610f3f908490600401612d6a565b60206040518083038186803b158015610f5757600080fd5b505afa158015610f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612b34565b610f9857611284565b610fa0612835565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ffb576020810180516001019052611054565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161106657fe5b066111b257600060208201526040516335409f7f60e01b8152611000906335409f7f90611097908590600401612d6a565b600060405180830381600087803b1580156110b157600080fd5b505af11580156110c5573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6110e585611d23565b60006040518463ffffffff1660e01b81526004016111059392919061356d565b600060405180830381600087803b15801561111f57600080fd5b505af1925050508015611130575060015b6111ad573d80801561115e576040519150601f19603f3d011682016040523d82523d6000602084013e611163565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040516111a3929190613507565b60405180910390a2505b61121e565b6004548160200151816111c157fe5b0661121e576040516375abf10160e11b81526110009063eb57e202906111eb908590600401612d6a565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166112ad5760405162461bcd60e51b815260040161053190612e9d565b604051630a83aaa960e31b81526110069063541d5548906112d2903390600401612d6a565b60206040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113229190612b34565b61133e5760405162461bcd60e51b815260040161053190612e31565b60075460ff166113605760405162461bcd60e51b815260040161053190612e68565b60065461136d5760146006555b60085461137c57620151806008555b6008548151604001514391011180156113a057504360085482602001516040015101115b6113bc5760405162461bcd60e51b81526004016105319061340a565b8060200151602001518160000151602001511480156113ea5750806020015160600151816000015160600151145b156114075760405162461bcd60e51b8152600401610531906130ff565b8051604081015190511080156114265750602081015160408101519051105b6114425760405162461bcd60e51b815260040161053190613035565b6020810151518151511080156114675750806000015160400151816020015160400151105b8061149257508051516020820151511080156114925750806020015160400151816000015160400151105b806114ac5750806020015160400151816000015160400151145b6114c85760405162461bcd60e51b815260040161053190612f1f565b604080820151905163ea321e4960e01b81526110009163ea321e49916114f19190600401612da2565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190612b34565b61155d5760405162461bcd60e51b8152600401610531906131d5565b61156f81600001518260400151611efc565b8015611588575061158881602001518260400151611efc565b6115a45760405162461bcd60e51b815260040161053190612fd6565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115e257600080fd5b505afa1580156115f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161e9190810190612a71565b9150915060005b81518110156117595761164f82828151811061163d57fe5b602002602001015185604001516120d4565b15611751576006546040516213929d60e11b8152606461100280319093020491906227253a906116859033908590600401612d7e565b602060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d79190612c88565b506110006001600160a01b03166335409f7f8584815181106116f557fe5b60200260200101516040518263ffffffff1660e01b81526004016117199190612d6a565b600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b5050505050611759565b600101611625565b50600061176b84604001516000612138565b90506120006001600160a01b031663f7a251d7600b61178d8760400151612154565b60006040518463ffffffff1660e01b81526004016117ad9392919061356d565b600060405180830381600087803b1580156117c757600080fd5b505af19250505080156117d8575060015b61184a573d808015611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161183c9190612da2565b60405180910390a250611876565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156118aa5760405162461bcd60e51b815260040161053190613294565b603260045560966005556000805460ff19166001179055565b60085481565b61100081565b600381565b33611000146118f55760405162461bcd60e51b81526004016105319061312c565b60005460ff166119175760405162461bcd60e51b815260040161053190612e9d565b60015461192357611d1b565b600154600090600019015b808211611cef576000805b82841015611a5257611949612835565b600260006001878154811061195a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a3c576004600554816119c757fe5b048160200151038160200181815250508060026000600188815481106119e957fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611a46565b6001925050611a52565b50836001019350611939565b828411611be957611a61612835565b6002600060018681548110611a7257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611b5a57600460055481611adf57fe5b04816020015103816020018181525050806002600060018781548110611b0157fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611be99050565b6002600060018681548110611b6b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611baf57fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611bdc5750611be9565b5060001990920191611a52565b818015611bf35750805b15611cd2576002600060018681548110611c0957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c5057fe5b600091825260209091200154600180546001600160a01b039092169186908110611c7657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611caf57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611cde575050611cef565b50506001909101906000190161192e565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611d3e579050509050611d67836001600160a01b031661218f565b81600081518110611d7457fe5b6020026020010181905250611d88436121b2565b81600181518110611d9557fe5b6020908102919091010152611daa60386121b2565b81600281518110611db757fe5b6020026020010181905250611dcb426121b2565b81600381518110611dd857fe5b6020026020010181905250611dec816121c5565b9150505b919050565b611dfd612858565b6000611e07612858565b611e0f61286a565b611e20611e1b8661224f565b612274565b90506000805b611e2f836122be565b15611e685780611e5b57611e4a611e45846122df565b61232d565b63ffffffff16845260019150611e60565b611e68565b600101611e26565b5091935090915050915091565b600081604051602001611e889190612d4e565b6040516020818303038152906040528051906020012083604051602001611eaf9190612d4e565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611eee576001915081611ef4565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611f18575050604080516020808252818301909252919250606091908082018180368337019050509050611f5d85600001516121b2565b82600081518110611f6a57fe5b6020026020010181905250611f8560208660200151836123af565b611f8e816123bf565b82600181518110611f9b57fe5b6020026020010181905250611fb385604001516121b2565b82600281518110611fc057fe5b6020026020010181905250611fdb60208660600151836123af565b611fe4816123bf565b82600381518110611ff157fe5b6020026020010181905250612017602061200a846121c5565b80519060200120836123af565b6040805160b080825260e08201909252606091602082018180368337019050509050612047818360006020612415565b61205981876080015160206060612415565b612067818660806030612415565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6120a457600080fd5b5060016120b2826000612468565b60ff16146120c7576000945050505050611ec9565b5060019695505050505050565b8151815160009160019181148083146120f0576000925061212e565b600160208701838101602088015b60028483851001141561212957805183511461211d5760009650600093505b602092830192016120fe565b505050505b5090949350505050565b6000816020018351101561214b57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161216f579050509050611d67836123bf565b60408051600560a21b8318601482015260348101909152606090611dec816123bf565b6060611ec96121c083612484565b6123bf565b60608151600014156121e65750604080516000815260208101909152611df0565b6060826000815181106121f557fe5b602002602001015190506000600190505b83518110156122365761222c8285838151811061221f57fe5b602002602001015161256a565b9150600101612206565b50611dec612249825160c060ff166125e7565b8261256a565b61225761288a565b506040805180820190915281518152602082810190820152919050565b61227c61286a565b612285826126b9565b61228e57600080fd5b600061229d83602001516126f3565b60208085015160408051808201909152868152920190820152915050919050565b60006122c861288a565b505080518051602091820151919092015191011190565b6122e761288a565b6122f0826122be565b6122f957600080fd5b6020820151600061230982612756565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061234257508151602110155b61234b57600080fd5b600061235a83602001516126f3565b905080836000015110156123805760405162461bcd60e51b8152600401610531906132cb565b8251602080850151830180519284900392918310156123a657826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156123f15750607f60f81b826000815181106123df57fe5b01602001516001600160f81b03191611155b156123fd575080611df0565b611ec961240f8351608060ff166125e7565b8361256a565b60005b818110156106ef5783818151811061242c57fe5b602001015160f81c60f81b85848060010195508151811061244957fe5b60200101906001600160f81b031916908160001a905350600101612418565b6000816001018351101561247b57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166124c8575060186124ec565b6fffffffffffffffffffffffffffffffff1984166124e8575060106124ec565b5060005b60208110156125225781818151811061250157fe5b01602001516001600160f81b0319161561251a57612522565b6001016124ec565b60008160200390506060816040519080825280601f01601f191660200182016040528015612557576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561259b578051835260209283019201612583565b50855184518101855292509050808201602086015b818310156125c85780518352602092830192016125b0565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106126115760405162461bcd60e51b81526004016105319061300d565b6040805160018082528183019092526060916020820181803683370190505090506037841161266b5782840160f81b8160008151811061264d57fe5b60200101906001600160f81b031916908160001a9053509050611ec9565b606061267685612484565b90508381510160370160f81b8260008151811061268f57fe5b60200101906001600160f81b031916908160001a9053506126b0828261256a565b95945050505050565b80516000906126ca57506000611df0565b6020820151805160001a9060c08210156126e957600092505050611df0565b5060019392505050565b8051600090811a608081101561270d576000915050611df0565b60b8811080612728575060c08110801590612728575060f881105b15612737576001915050611df0565b60c081101561274b5760b519019050611df0565b60f519019050611df0565b80516000908190811a6080811015612771576001915061282e565b60b881101561278657607e198101915061282e565b60c08110156127d757600060b78203600186019550806020036101000a8651049150600181018201935050808310156127d15760405162461bcd60e51b81526004016105319061317c565b5061282e565b60f88110156127ec5760be198101915061282e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611ef45760405162461bcd60e51b81526004016105319061317c565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061287d61288a565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126128b4578081fd5b81516128c76128c2826135c0565b613599565b818152915060208083019084810160005b8481101561293d578151870188603f8201126128f357600080fd5b838101516129036128c2826135e0565b81815260408b8184860101111561291957600080fd5b61292883888401838701613604565b508652505092820192908201906001016128d8565b505050505092915050565b60008083601f840112612959578182fd5b50813567ffffffffffffffff811115612970578182fd5b60208301915083602082850101111561298857600080fd5b9250929050565b600082601f83011261299f578081fd5b81356129ad6128c2826135e0565b91508082528360208285010111156129c457600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156129ee578081fd5b6129f860a0613599565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff811115612a3657600080fd5b612a428482850161298f565b60808301525092915050565b600060208284031215612a5f578081fd5b8135612a6a81613630565b9392505050565b60008060408385031215612a83578081fd5b825167ffffffffffffffff80821115612a9a578283fd5b81850186601f820112612aab578384fd5b80519250612abb6128c2846135c0565b80848252602080830192508084018a828389028701011115612adb578788fd5b8794505b86851015612b06578051612af281613630565b845260019490940193928101928101612adf565b508801519096509350505080821115612b1d578283fd5b50612b2a858286016128a4565b9150509250929050565b600060208284031215612b45578081fd5b81518015158114612a6a578182fd5b60008060008060408587031215612b69578182fd5b843567ffffffffffffffff80821115612b80578384fd5b612b8c88838901612948565b90965094506020870135915080821115612ba4578384fd5b50612bb187828801612948565b95989497509550505050565b600060208284031215612bce578081fd5b813567ffffffffffffffff80821115612be5578283fd5b81840160608187031215612bf7578384fd5b612c016060613599565b9250803582811115612c11578485fd5b612c1d878284016129dd565b845250602081013582811115612c31578485fd5b612c3d878284016129dd565b602085015250604081013582811115612c54578485fd5b612c608782840161298f565b6040850152509195945050505050565b600060208284031215612c81578081fd5b5035919050565b600060208284031215612c99578081fd5b5051919050565b600080600060408486031215612cb4578283fd5b833560ff81168114612cc4578384fd5b9250602084013567ffffffffffffffff811115612cdf578283fd5b612ceb86828701612948565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612d3a816020860160208601613604565b601f01601f19169290920160200192915050565b60008251612d60818460208701613604565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252612a6a6020830184612d22565b600060408252612dc9604083018688612cf8565b8281036020840152612ddc818587612cf8565b979650505050505050565b6020808252602a908201527f6c656e677468206f66206d616c6963696f7573566f7465536c61736853636f706040820152690ca40dad2e6dac2e8c6d60b31b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526135206040830184612d22565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526135896060830185612d22565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156135b857600080fd5b604052919050565b600067ffffffffffffffff8211156135d6578081fd5b5060209081020190565b600067ffffffffffffffff8211156135f6578081fd5b50601f01601f191660200190565b60005b8381101561361f578181015183820152602001613607565b838111156118765750506000910152565b6001600160a01b038116811461364557600080fd5b5056fea164736f6c6343000604000a", + Code: kepler.MainnetSlashContract, }, { ContractAddr: common.HexToAddress(SystemRewardContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b3a5c1fa8882c0e546dc5ba913ce4db77ec9befe", - Code: "6080604052600436106101c55760003560e01c806375d47a0a116100f7578063ab51bb9611610095578063f9a2bbc711610064578063f9a2bbc7146105c3578063fb5478b3146105d8578063fc3e5908146105ed578063fd6a68791461060257610209565b8063ab51bb96146104b5578063ac431751146104ca578063c81b166214610599578063dc927faf146105ae57610209565b80639a99b4f0116100d15780639a99b4f01461043d5780639dc0926214610476578063a1a11bf51461048b578063a78abc16146104a057610209565b806375d47a0a146103fe5780637942fd051461041357806396713da91461042857610209565b8063493279b1116101645780636d70f7ae1161013e5780636d70f7ae146103785780636e47b482146103bf57806370fd5bad146103d4578063718a8aa8146103e957610209565b8063493279b1146103225780634bf6c8821461034e57806351e806721461036357610209565b806331b6d4a5116101a057806331b6d4a5146102b85780633a0b0eff146102cd5780633dffc387146102e257806343756e5c1461030d57610209565b806227253a1461020e5780630bee7a67146102595780630e2374a51461028757610209565b366102095734156102075760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b34801561021a57600080fd5b506102476004803603604081101561023157600080fd5b506001600160a01b038135169060200135610617565b60408051918252519081900360200190f35b34801561026557600080fd5b5061026e6107c2565b6040805163ffffffff9092168252519081900360200190f35b34801561029357600080fd5b5061029c6107c7565b604080516001600160a01b039092168252519081900360200190f35b3480156102c457600080fd5b506102476107cd565b3480156102d957600080fd5b506102476107d9565b3480156102ee57600080fd5b506102f76107df565b6040805160ff9092168252519081900360200190f35b34801561031957600080fd5b5061029c6107e4565b34801561032e57600080fd5b506103376107ea565b6040805161ffff9092168252519081900360200190f35b34801561035a57600080fd5b506102f76107ef565b34801561036f57600080fd5b5061029c6107f4565b34801561038457600080fd5b506103ab6004803603602081101561039b57600080fd5b50356001600160a01b03166107fa565b604080519115158252519081900360200190f35b3480156103cb57600080fd5b5061029c610818565b3480156103e057600080fd5b506102f761081e565b3480156103f557600080fd5b506102f7610823565b34801561040a57600080fd5b5061029c610828565b34801561041f57600080fd5b506102f761082e565b34801561043457600080fd5b506102f7610833565b34801561044957600080fd5b506102476004803603604081101561046057600080fd5b506001600160a01b038135169060200135610838565b34801561048257600080fd5b5061029c610962565b34801561049757600080fd5b5061029c610968565b3480156104ac57600080fd5b506103ab61096e565b3480156104c157600080fd5b5061026e610977565b3480156104d657600080fd5b50610207600480360360408110156104ed57600080fd5b81019060208101813564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91939092909160208101903564010000000081111561055a57600080fd5b82018360208201111561056c57600080fd5b8035906020019184600183028401116401000000008311171561058e57600080fd5b50909250905061097c565b3480156105a557600080fd5b5061029c610cff565b3480156105ba57600080fd5b5061029c610d05565b3480156105cf57600080fd5b5061029c610d0b565b3480156105e457600080fd5b50610247610d11565b3480156105f957600080fd5b506102f7610d1d565b34801561060e57600080fd5b5061029c610d22565b6000805460ff1661069457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106e25760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106106f157476106f3565b825b9050674563918244f400008111156107105750674563918244f400005b8015610791576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107bb565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b606481565b61200181565b674563918244f4000081565b60015481565b600181565b61100181565b603881565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff166108b557600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166109035760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106109125747610914565b825b9050670de0b6b3a76400008111156107105750604051670de0b6b3a7640000906001600160a01b03851690600090839082818181858883f1935050505015801561074c573d6000803e3d6000fd5b61100781565b61100681565b60005460ff1681565b600081565b33611007146109bc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e6a602e913960400191505060405180910390fd5b610a1e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610d289050565b15610af657606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610aa15760405162461bcd60e51b815260040180806020018281038252602c815260200180610e98602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610c6d565b610b5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610d289050565b15610c3057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610bde5760405162461bcd60e51b815260040180806020018281038252602f815260200180610e3b602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610c6d565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610d5d5780518252601f199092019160209182019101610d3e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610dcb5780518252601f199092019160209182019101610dac565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a", + Code: kepler.MainnetSystemRewardContract, }, }, } @@ -519,17 +533,17 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b3a5c1fa8882c0e546dc5ba913ce4db77ec9befe", - Code: "6080604052600436106104a35760003560e01c806388b32f1111610260578063c6d3394511610144578063e40716a1116100c1578063f92eb86b11610085578063f92eb86b14610c02578063f9a2bbc714610c17578063fc3e590814610c2c578063fccc281314610c41578063fd4ad81f14610c56578063fd6a687914610c85576104aa565b8063e40716a114610b85578063ea321e4914610b9a578063eb57e20214610bba578063eda5868c14610bda578063f340fa0114610bef576104aa565b8063d86222d511610108578063d86222d514610b1c578063daacdb6614610b31578063dc927faf14610b46578063e086c7b114610b5b578063e1c7392a14610b70576104aa565b8063c6d3394514610abd578063c81b166214610ad2578063c8509d81146108b6578063ce910b0c14610ae7578063d68fb56a14610b07576104aa565b8063a5422d5c116101dd578063ad3c9da6116101a1578063ad3c9da614610a3c578063aef198a914610a5c578063b7ab4db514610a71578063b8cf4ef114610a93578063bf9f499514610666578063c466689d14610aa8576104aa565b8063a5422d5c146109c8578063a78abc16146109dd578063aaf5eb68146109f2578063ab51bb9614610a07578063ac43175114610a1c576104aa565b806396713da91161022457806396713da91461095f5780639dc09262146109745780639fe0f81614610989578063a0dc27581461099e578063a1a11bf5146109b3576104aa565b806388b32f11146108eb5780638a7beb01146109005780638b5ad0c9146109155780638d19a4101461092a5780639369d7de1461094a576104aa565b806351e80672116103875780636e47b482116103045780637942fd05116102c85780637942fd05146108775780637a84ca2a1461088c57806381650b62146108a1578063831d65d1146108b6578063853230aa1461086257806386249882146108d6576104aa565b80636e47b4821461080e57806370fd5bad14610823578063718a8aa81461083857806375d47a0a1461084d57806378dfed4a14610862576104aa565b80635de1e22c1161034b5780635de1e22c14610792578063603d86d31461065157806360eba4fe146107a757806362b72cf5146107c75780636969a25c146107dc576104aa565b806351e806721461071357806355614fcc14610728578063565c56b3146107485780635667515a146107685780635d77156c1461077d576104aa565b80633365af3a1161042057806343756e5c116103e457806343756e5c1461068857806345cf9daf1461069d578063493279b1146106b25780634bf6c882146106d45780634df6e0c3146106e95780635192c82c146106fe576104aa565b80633365af3a146105ee57806335409f7f1461060e5780633b071dcc1461062e5780633de0f0d8146106515780633dffc38714610666576104aa565b8063152ad3b811610467578063152ad3b8146105625780631ff1806914610584578063219f22d514610599578063300c3567146105ae578063321d398a146105ce576104aa565b806304c4fec6146104af57806307a56847146104c65780630bee7a67146104f15780630e2374a5146105135780631182b87514610535576104aa565b366104aa57005b600080fd5b3480156104bb57600080fd5b506104c4610c9a565b005b3480156104d257600080fd5b506104db610d0c565b6040516104e89190617691565b60405180910390f35b3480156104fd57600080fd5b50610506610d12565b6040516104e891906176bb565b34801561051f57600080fd5b50610528610d17565b6040516104e89190616a60565b34801561054157600080fd5b50610555610550366004616946565b610d1d565b6040516104e89190616bd7565b34801561056e57600080fd5b50610577610f55565b6040516104e89190616bcc565b34801561059057600080fd5b506104db610f5e565b3480156105a557600080fd5b50610506610f64565b3480156105ba57600080fd5b506104c46105c93660046167d0565b610f69565b3480156105da57600080fd5b506105776105e93660046168f3565b6112b0565b3480156105fa57600080fd5b506105776106093660046168f3565b61137f565b34801561061a57600080fd5b506104c46106293660046167a9565b611430565b34801561063a57600080fd5b50610643611589565b6040516104e8929190616ae2565b34801561065d57600080fd5b506104db611865565b34801561067257600080fd5b5061067b61186b565b6040516104e891906176cc565b34801561069457600080fd5b50610528611870565b3480156106a957600080fd5b506104db611876565b3480156106be57600080fd5b506106c761187c565b6040516104e89190617682565b3480156106e057600080fd5b5061067b611881565b3480156106f557600080fd5b50610643611886565b34801561070a57600080fd5b506104db611a04565b34801561071f57600080fd5b50610528611a0a565b34801561073457600080fd5b506105776107433660046167a9565b611a10565b34801561075457600080fd5b506104db6107633660046167a9565b611a45565b34801561077457600080fd5b5061067b611a96565b34801561078957600080fd5b50610506611a9b565b34801561079e57600080fd5b506104db611aa0565b3480156107b357600080fd5b506105556107c23660046168f3565b611aa6565b3480156107d357600080fd5b506104db611b4c565b3480156107e857600080fd5b506107fc6107f73660046168f3565b611b52565b6040516104e896959493929190616a8d565b34801561081a57600080fd5b50610528611bb6565b34801561082f57600080fd5b5061067b611bbc565b34801561084457600080fd5b5061067b611bc1565b34801561085957600080fd5b50610528611bc6565b34801561086e57600080fd5b506104db611bcc565b34801561088357600080fd5b5061067b611bd2565b34801561089857600080fd5b506104db611bd7565b3480156108ad57600080fd5b50610506611bdd565b3480156108c257600080fd5b506104c46108d1366004616946565b611be2565b3480156108e257600080fd5b506104db611c43565b3480156108f757600080fd5b506104db611c49565b34801561090c57600080fd5b50610577611c4f565b34801561092157600080fd5b506104db611c58565b34801561093657600080fd5b506104db6109453660046167a9565b611c5e565b34801561095657600080fd5b506104c4611c9e565b34801561096b57600080fd5b5061067b611db2565b34801561098057600080fd5b50610528611db7565b34801561099557600080fd5b506104db611dbd565b3480156109aa57600080fd5b506104db611dc2565b3480156109bf57600080fd5b50610528611dc7565b3480156109d457600080fd5b50610555611dcd565b3480156109e957600080fd5b50610577611dec565b3480156109fe57600080fd5b506104db611df5565b348015610a1357600080fd5b50610506611a96565b348015610a2857600080fd5b506104c4610a37366004616897565b611dfe565b348015610a4857600080fd5b506104db610a573660046167a9565b61269c565b348015610a6857600080fd5b506104db6126ae565b348015610a7d57600080fd5b50610a866126bb565b6040516104e89190616acf565b348015610a9f57600080fd5b506104db6127a7565b348015610ab457600080fd5b506104db6127ac565b348015610ac957600080fd5b506104db611bbc565b348015610ade57600080fd5b506105286127b2565b348015610af357600080fd5b50610555610b023660046168f3565b6127b8565b348015610b1357600080fd5b506104db6127c5565b348015610b2857600080fd5b506104db612804565b348015610b3d57600080fd5b506104db612810565b348015610b5257600080fd5b50610528612816565b348015610b6757600080fd5b506104db610d12565b348015610b7c57600080fd5b506104c461281c565b348015610b9157600080fd5b506104db6129cb565b348015610ba657600080fd5b50610577610bb5366004616858565b6129d1565b348015610bc657600080fd5b506104c4610bd53660046167a9565b612b57565b348015610be657600080fd5b50610506612c5f565b6104c4610bfd3660046167a9565b612c64565b348015610c0e57600080fd5b506104db612fcc565b348015610c2357600080fd5b50610528612fd2565b348015610c3857600080fd5b5061067b611dbd565b348015610c4d57600080fd5b50610528612fd8565b348015610c6257600080fd5b50610c76610c713660046168f3565b612fde565b6040516104e89392919061769a565b348015610c9157600080fd5b506105286130a0565b6000610ca533611c5e565b9050600b8181548110610cb457fe5b600091825260209091206001601690920201015460ff16610cf05760405162461bcd60e51b8152600401610ce79061733c565b60405180910390fd5b6000610cfa6127c5565b9050610d073383836130a6565b505050565b60095481565b606481565b61200181565b60005460609060ff16610d425760405162461bcd60e51b8152600401610ce790616d96565b3361200014610d635760405162461bcd60e51b8152600401610ce7906174d5565b600b54610e2157610d72616495565b60015460005b81811015610e1d57600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794610df99360008051602061790f8339815191529091019201906164c4565b506060820151610e0f906003830190601361653e565b505050806001019050610d78565b5050505b610e2961656b565b6000610e6a85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061329292505050565b9150915080610e8657610e7d606461344e565b92505050610f4e565b815160009060ff16610eab57610ea4836020015184604001516134af565b9050610f1a565b825160ff1660011415610f1657826020015151600114610ef0576000805160206178cf833981519152604051610ee0906171f5565b60405180910390a1506067610f11565b610ea48360200151600081518110610f0457fe5b6020026020010151614103565b610f1a565b5060655b63ffffffff8116610f3f5750506040805160008152602081019091529150610f4e9050565b610f488161344e565b93505050505b9392505050565b60075460ff1681565b60035481565b606881565b334114610f885760405162461bcd60e51b8152600401610ce790617524565b6010544311610fa95760405162461bcd60e51b8152600401610ce790616ef2565b3a15610fc75760405162461bcd60e51b8152600401610ce79061727b565b60005460ff16610fe95760405162461bcd60e51b8152600401610ce790616d96565b60006110023168056bc75e2d63100000811115611020576110198168056bc75e2d6310000063ffffffff61427a16565b9150611027565b50506112a6565b6040516213929d60e11b8152611002906227253a9061104c9030908690600401616a74565b602060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e919061690b565b9150816110ac5750506112a6565b6000805b848110156110da578585828181106110c457fe5b90506020020135820191508060010190506110b0565b50806110e8575050506112a6565b6000806000805b8981101561129e578489898381811061110457fe5b9050602002013588028161111457fe5b0493508a8a8281811061112357fe5b905060200201602081019061113891906167a9565b6001600160a01b0381166000908152600460205260409020549093509150811561125457600060018084038154811061116d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156111da57836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d85866040516111cd9190617691565b60405180910390a261124e565b6003546111ed908663ffffffff6142bc16565b6003908155810154611205908663ffffffff6142bc16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611245908890617691565b60405180910390a25b50611296565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d858560405161128d9190617691565b60405180910390a25b6001016110ef565b505050505050505b5050436010555050565b60015460009082106112c45750600061137a565b60006001600160a01b0316600183815481106112dc57fe5b60009182526020909120600490910201546001600160a01b0316148061130c5750600854158061130c5750600a54155b8061131b575060085460095410155b8061132c575061132a8261137f565b155b8061135557506000600b838154811061134157fe5b906000526020600020906016020160000154115b80611369575060016113656126bb565b5111155b156113765750600061137a565b5060015b919050565b60015460009082106113935750600061137a565b600b5482106113d057600182815481106113a957fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615905061137a565b600182815481106113dd57fe5b9060005260206000209060040201600201601c9054906101000a900460ff1615801561142a5750600b828154811061141157fe5b600091825260209091206001601690920201015460ff16155b92915050565b33611001146114515760405162461bcd60e51b8152600401610ce790617639565b600b5461150f57611460616495565b60015460005b8181101561150b57600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff19169115159190911790556040860151805187946114e79360008051602061790f8339815191529091019201906164c4565b5060608201516114fd906003830190601361653e565b505050806001019050611466565b5050505b6001600160a01b038116600090815260046020526040902054806115335750611586565b6001810390506000600b828154811061154857fe5b600091825260209091206001601690920201015460ff16905061156b83836142e1565b80156115745750805b15610d07576009805460001901905550505b50565b60015460609081906000805b828110156115dc57600181815481106115aa57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166115d4576001909101905b600101611595565b50606081604051908082528060200260200182016040528015611609578160200160208202803683370190505b50905060608260405190808252806020026020018201604052801561164257816020015b606081526020019060019003908161162d5790505b50600b54600094509091508414156117bd5760005b848110156117b7576001818154811061166c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166117af576001818154811061169c57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106116c757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b81815481106116f457fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561178c5780601f106117615761010080835404028352916020019161178c565b820191906000526020600020905b81548152906001019060200180831161176f57829003601f168201915b505050505082858151811061179d57fe5b60209081029190910101526001909301925b600101611657565b50611859565b60005b8481101561185757600181815481106117d557fe5b9060005260206000209060040201600201601c9054906101000a900460ff1661184f576001818154811061180557fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061183057fe5b6001600160a01b03909216602092830291909101909101526001909301925b6001016117c0565b505b909450925050505b9091565b61271081565b600181565b61100181565b60085481565b606181565b600881565b600e54600c5460609182918061189a575060155b60606118a46126bb565b905060606118b182614694565b9050828251116118c8579094509250611861915050565b838383510310156118da578282510393505b83156119105760c843046118f683838388880360008a8a614802565b61190e8383838888038989038a8b8b8b510301614802565b505b60608360405190808252806020026020018201604052801561193c578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561197557816020015b60608152602001906001900390816119605790505b50905060005b858110156119f65784818151811061198f57fe5b60200260200101518382815181106119a357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508381815181106119cf57fe5b60200260200101518282815181106119e357fe5b602090810291909101015260010161197b565b509096509450505050509091565b60065481565b61200081565b6001600160a01b03811660009081526004602052604081205480611a3857600091505061137a565b60001901610f4e8161137f565b6001600160a01b03811660009081526004602052604081205480611a6d57600091505061137a565b600180820381548110611a7c57fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b60128181548110611ab357fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015611b445780601f10611b1957610100808354040283529160200191611b44565b820191906000526020600020905b815481529060010190602001808311611b2757829003601f168201915b505050505081565b60105481565b60018181548110611b5f57fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b606681565b3361200014611c035760405162461bcd60e51b8152600401610ce7906174d5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051611c36939291906176da565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b03811660009081526004602052604081205480611c945760405162461bcd60e51b8152600401610ce79061745d565b6000190192915050565b600b54611d5c57611cad616495565b60015460005b81811015611d5857600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794611d349360008051602061790f8339815191529091019201906164c4565b506060820151611d4a906003830190601361653e565b505050806001019050611cb3565b5050505b600854611d695760036008555b600a54611d76576002600a555b6000611d8133611c5e565b9050611d8c816112b0565b611da85760405162461bcd60e51b8152600401610ce7906171b2565b6115863382614959565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab81526020016177246101ab913981565b60005460ff1681565b6402540be40081565b60005460ff16611e205760405162461bcd60e51b8152600401610ce790616d96565b3361100714611e415760405162461bcd60e51b8152600401610ce7906172a9565b611eab84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506149f19050565b15611f485760208114611ed05760405162461bcd60e51b8152600401610ce790617417565b604080516020601f8401819004810282018101909252828152600091611f0e91858580838501838280828437600092019190915250614a4a92505050565b905060648110158015611f245750620186a08111155b611f405760405162461bcd60e51b8152600401610ce7906170a2565b600255612659565b611fa884848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506149f19050565b156120375760208114611fcd5760405162461bcd60e51b8152600401610ce790616c1c565b604080516020601f840181900481028201810190925282815260009161200b91858580838501838280828437600092019190915250614a4a92505050565b905061271081111561202f5760405162461bcd60e51b8152600401610ce790616f34565b600655612659565b6120a184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506149f19050565b1561213b57602081146120c65760405162461bcd60e51b8152600401610ce790616c53565b604080516020601f840181900481028201810190925282815260009161210491858580838501838280828437600092019190915250614a4a92505050565b600c5490915080612113575060155b8082106121325760405162461bcd60e51b8152600401610ce790616fa7565b50600855612659565b6121a484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506149f19050565b1561223d57602081146121c95760405162461bcd60e51b8152600401610ce790616d1c565b604080516020601f840181900481028201810190925282815260009161220791858580838501838280828437600092019190915250614a4a92505050565b90506000811180156122195750600a81105b6122355760405162461bcd60e51b8152600401610ce7906175b5565b600a55612659565b6122b184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506149f19050565b1561234057602081146122d65760405162461bcd60e51b8152600401610ce790616cd0565b604080516020601f840181900481028201810190925282815260009161231491858580838501838280828437600092019190915250614a4a92505050565b9050600d548111156123385760405162461bcd60e51b8152600401610ce790617118565b600e55612659565b6123a984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506149f19050565b1561242b57602081146123ce5760405162461bcd60e51b8152600401610ce7906172f7565b604080516020601f840181900481028201810190925282815260009161240c91858580838501838280828437600092019190915250614a4a92505050565b600d819055600e5490915081101561242557600d54600e555b50612659565b61248f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506149f19050565b1561253d57602081146124b45760405162461bcd60e51b8152600401610ce790616d61565b604080516020601f84018190048102820181019092528281526000916124f291858580838501838280828437600092019190915250614a4a92505050565b9050600081116125145760405162461bcd60e51b8152600401610ce790616e04565b60648111156125355760405162461bcd60e51b8152600401610ce790616e4c565b600c55612659565b6125a584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506149f19050565b1561264157602081146125ca5760405162461bcd60e51b8152600401610ce790617571565b604080516020601f840181900481028201810190925282815260009161260891858580838501838280828437600092019190915250614a4a92505050565b90506001811015801561261d57506127108111155b6126395760405162461bcd60e51b8152600401610ce79061704f565b600f55612659565b60405162461bcd60e51b8152600401610ce790617612565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161268e9493929190616bea565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156126ea576126d68161137f565b156126e2578160010191505b6001016126c5565b50606081604051908082528060200260200182016040528015612717578160200160208202803683370190505b5090506000915060005b8381101561279e576127328161137f565b15612796576001818154811061274457fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061276f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101612721565b50925050505b90565b601581565b61027181565b61100281565b60138181548110611ab357fe5b60006127cf6126bb565b519050600080600c54116127e45760156127e8565b600c545b9050808211156127f6578091505b8161280057600191505b5090565b67016345785d8a000081565b60055481565b61100381565b60005460ff161561283f5760405162461bcd60e51b8152600401610ce7906173a9565b61284761656b565b600061286d604051806101e001604052806101ab81526020016177246101ab9139613292565b915091508061288e5760405162461bcd60e51b8152600401610ce790617494565b60005b8260200151518110156129b3576001836020015182815181106128b057fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061298657fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101612891565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b81811015612ada57612ac285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601380549092508591508110612a2a57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b820191906000526020600020905b815481529060010190602001808311612a9b57829003601f168201915b5050505050614a4f565b15612ad25760019250505061142a565b6001016129d9565b5060125460005b81811015612b4b57612b3286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050601280549092508591508110612a2a57fe5b15612b43576001935050505061142a565b600101612ae1565b50600095945050505050565b3361100114612b785760405162461bcd60e51b8152600401610ce790617639565b600b54612c3657612b87616495565b60015460005b81811015612c3257600b805460018101825560009190915283516000805160206178ef833981519152601690920291820190815560208086015160008051602061792f8339815191528401805460ff1916911515919091179055604086015180518794612c0e9360008051602061790f8339815191529091019201906164c4565b506060820151612c24906003830190601361653e565b505050806001019050612b8d565b5050505b6000612c4182614ab3565b9050612c4c816112b0565b15612c5b57612c5b8282614959565b5050565b606581565b334114612c835760405162461bcd60e51b8152600401610ce790617524565b60005460ff16612ca55760405162461bcd60e51b8152600401610ce790616d96565b60003411612cc55760405162461bcd60e51b8152600401610ce7906170e9565b3a15612ce35760405162461bcd60e51b8152600401610ce79061727b565b6001600160a01b03811660009081526004602052604090205460145434919060ff16612d2357610271600f556103e86006556014805460ff191660011790555b6000612d4c612710612d40600f5486614c5690919063ffffffff16565b9063ffffffff614c9016565b90508015612dbc576040516110029082156108fc029083906000818181858888f19350505050158015612d83573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d81604051612db39190617691565b60405180910390a15b600083118015612dce57506000600654115b15612e74576000612df0612710612d4060065487614c5690919063ffffffff16565b90508015612e725760405161dead9082156108fc029083906000818181858888f19350505050158015612e27573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee581604051612e579190617691565b60405180910390a1612e6f848263ffffffff61427a16565b93505b505b612e84838263ffffffff61427a16565b92508115612f84576000600180840381548110612e9d57fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615612f0a57846001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b485604051612efd9190617691565b60405180910390a2612f7e565b600354612f1d908563ffffffff6142bc16565b6003908155810154612f35908563ffffffff6142bc16565b60038201556040516001600160a01b038616907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590612f75908790617691565b60405180910390a25b50612fc6565b836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b484604051612fbd9190617691565b60405180910390a25b50505050565b600e5481565b61100081565b61dead81565b600b8181548110612feb57fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff909116949192918301828280156130965780601f1061306b57610100808354040283529160200191613096565b820191906000526020600020905b81548152906001019060200180831161307957829003601f168201915b5050505050905083565b61100481565b6000600a54600014806130b7575081155b806130c25750600954155b156130cf57506000610f4e565b6009600081546001900391905081905550600061311a600a54612d4085612d40600b89815481106130fc57fe5b6000918252602090912060169091020154439063ffffffff61427a16565b90506000600b858154811061312b57fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190616923565b9150915060009350808310613242576131e187876142e1565b506040516305bfb49960e41b815261100190635bfb499090613207908a90600401616a60565b600060405180830381600087803b15801561322157600080fd5b505af1158015613235573d6000803e3d6000fd5b5050505060019350613254565b8183106132545761325287614ab3565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b61329a61656b565b60006132a461656b565b6132ac61658f565b6132bd6132b886614cd2565b614cf7565b90506000805b6132cc83614d41565b1561344057806132f1576132e76132e284614d62565b614db0565b60ff168452613438565b806001141561343357606061330d61330885614d62565b614e30565b9050805160405190808252806020026020018201604052801561334a57816020015b6133376165af565b81526020019060019003908161332f5790505b508560200181905250805160405190808252806020026020018201604052801561338857816020015b60608152602001906001900390816133735790505b50604086015260005b8151811015613428576133a26165af565b606060006133c28585815181106133b557fe5b6020026020010151614f01565b925092509250806133e2578860009a509a50505050505050505050613449565b82896020015185815181106133f357fe5b6020026020010181905250818960400151858151811061340f57fe5b6020026020010181905250505050806001019050613391565b506001925050613438565b613440565b6001016132c3565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161346857905050905061348e8363ffffffff1661501b565b8160008151811061349b57fe5b6020026020010181905250610f4e8161502e565b60006064835111156134e6576000805160206178cf8339815191526040516134d690616ea9565b60405180910390a150606661142a565b60005b83518110156135845760005b8181101561357b5784818151811061350957fe5b6020026020010151600001516001600160a01b031685838151811061352a57fe5b6020026020010151600001516001600160a01b03161415613573576000805160206178cf83398151915260405161356090617004565b60405180910390a160669250505061142a565b6001016134f5565b506001016134e9565b5060608061359285856150b8565b60015491935091506000908190815b818110156136175767016345785d8a0000600182815481106135bf57fe5b906000526020600020906004020160030154106135e15783600101935061360f565b6000600182815481106135f057fe5b906000526020600020906004020160030154111561360f578260010192505b6001016135a1565b50606083604051908082528060200260200182016040528015613644578160200160208202803683370190505b509050606084604051908082528060200260200182016040528015613673578160200160208202803683370190505b5090506060856040519080825280602002602001820160405280156136a2578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156136d1578160200160208202803683370190505b5090506000606087604051908082528060200260200182016040528015613702578160200160208202803683370190505b509050606088604051908082528060200260200182016040528015613731578160200160208202803683370190505b509050600099506000985060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561377957600080fd5b505afa15801561378d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b1919061690b565b905067016345785d8a00008111156137fc576000805160206178cf8339815191526040516137de90617368565b60405180910390a160689d505050505050505050505050505061142a565b60005b89811015613a6d5767016345785d8a00006001828154811061381d57fe5b906000526020600020906004020160030154106139a2576001818154811061384157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898d8151811061387257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106138a757fe5b906000526020600020906004020160030154816138c057fe5b06600183815481106138ce57fe5b9060005260206000209060040201600301540390506138f6838261427a90919063ffffffff16565b898e8151811061390257fe5b6020026020010181815250506001828154811061391b57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878e8151811061394c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888e8151811061397957fe5b6020908102919091010152613994868263ffffffff6142bc16565b95508c6001019c5050613a65565b6000600182815481106139b157fe5b9060005260206000209060040201600301541115613a6557600181815481106139d657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848c81518110613a0757fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110613a3457fe5b906000526020600020906004020160030154838c81518110613a5257fe5b6020026020010181815250508a6001019a505b6001016137ff565b5060008415613ce3576002546040516303702b2960e51b815261100491636e056520918891613aa7918e918e918d91420190600401616b52565b6020604051808303818588803b158015613ac057600080fd5b505af193505050508015613af1575060408051601f3d908101601f19168201909252613aee91810190616838565b60015b613c68576040516000815260443d1015613b0d57506000613ba8565b60046000803e60005160e01c6308c379a08114613b2e576000915050613ba8565b60043d036004833e81513d60248201116001600160401b0382111715613b5957600092505050613ba8565b80830180516001600160401b03811115613b7a576000945050505050613ba8565b8060208301013d8601811115613b9857600095505050505050613ba8565b601f01601f191660405250925050505b80613bb35750613bf5565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051613be79190616bd7565b60405180910390a250613c63565b3d808015613c1f576040519150601f19603f3d011682016040523d82523d6000602084013e613c24565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051613c599190616bd7565b60405180910390a2505b613ce3565b8015613caa577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051613c9d9190617691565b60405180910390a1613ce1565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051613cd890616c99565b60405180910390a25b505b8015613e995760005b8751811015613e97576000888281518110613d0357fe5b60200260200101519050600060018281548110613d1c57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110613d4d57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015613e095760018281548110613d8e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110613ddd57fe5b906000526020600020906004020160030154604051613dfc9190617691565b60405180910390a2613e8d565b60018281548110613e1657fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110613e6557fe5b906000526020600020906004020160030154604051613e849190617691565b60405180910390a25b5050600101613cec565b505b835115613fe35760005b8451811015613fe1576000858281518110613eba57fe5b60200260200101516001600160a01b03166108fc868481518110613eda57fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015613f7057858281518110613f1057fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110613f4e57fe5b6020026020010151604051613f639190617691565b60405180910390a2613fd8565b858281518110613f7c57fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110613fba57fe5b6020026020010151604051613fcf9190617691565b60405180910390a25b50600101613ea3565b505b505050505050505050505050600047111561405f577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516140279190617691565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561405d573d6000803e3d6000fd5b505b6000600381905560055581511561407a5761407a82826152f1565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156140b757600080fd5b505af11580156140cb573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b80516001600160a01b0316600090815260046020526040812054801580614154575060018082038154811061413457fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b1561419a5782516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a2600091505061137a565b6001546005546000198201118015906141f05784516040516001600160a01b03909116907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26000935050505061137a565b60058054600190810190915580548190600019860190811061420e57fe5b6000918252602082206002600490920201018054921515600160e01b0260ff60e01b199093169290921790915585516040516001600160a01b03909116917ff226e7d8f547ff903d9d419cf5f54e0d7d07efa9584135a53a057c5f1f27f49a91a2506000949350505050565b6000610f4e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615aab565b600082820183811015610f4e5760405162461bcd60e51b8152600401610ce790616dcd565b600080600183815481106142f157fe5b9060005260206000209060040201600301549050600060018080549050039050600161431b6126bb565b51116143505760006001858154811061433057fe5b90600052602060002090600402016003018190555060009250505061142a565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516143899190617691565b60405180910390a26001600160a01b038516600090815260046020526040812055835b6001546000190181101561457657600181600101815481106143ca57fe5b9060005260206000209060040201600182815481106143e557fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106144a657fe5b9060005260206000209060160201600b82815481106144c157fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff19909216919091179055600280840180546145189383860193908216156101000260001901909116046165e4565b5061452b60038281019084016013616659565b5090505080600101600460006001848154811061454457fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016143ac565b50600180548061458257fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b8054806145d557fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906146076002830182616683565b6146156003830160006166c7565b50509055600081838161462457fe5b04905080156146885760015460005b8181101561468557826001828154811061464957fe5b906000526020600020906004020160030154016001828154811061466957fe5b6000918252602090912060036004909202010155600101614633565b50505b50600195945050505050565b6001548151604080518281526020808402820101909152606092919083908280156146d357816020015b60608152602001906001900390816146be5790505b50600b5490915083146146ea57925061137a915050565b60005b828110156147f957600b60016004600089858151811061470957fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061473d57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156147d55780601f106147aa576101008083540402835291602001916147d5565b820191906000526020600020905b8154815290600101906020018083116147b857829003601f168201915b50505050508282815181106147e657fe5b60209081029190910101526001016146ed565b50949350505050565b60005b8281101561494f5760008287838801604051602001614825929190616a52565b6040516020818303038152906040528051906020012060001c8161484557fe5b06905080850182870114614946576000898388018151811061486357fe5b602002602001015190506060898489018151811061487d57fe5b602002602001015190508a8388018151811061489557fe5b60200260200101518b858a01815181106148ab57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106148da57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061490857fe5b60200260200101518a858a018151811061491e57fe5b6020026020010181905250808a8489018151811061493857fe5b602002602001018190525050505b50600101614805565b5050505050505050565b600980546001908101909155600b80548390811061497357fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b82815481106149a957fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b600081604051602001614a049190616a36565b6040516020818303038152906040528051906020012083604051602001614a2b9190616a36565b6040516020818303038152906040528051906020012014905092915050565b015190565b815181516000916001918114808314614a6b5760009250614aa9565b600160208701838101602088015b600284838510011415614aa4578051835114614a985760009650600093505b60209283019201614a79565b505050505b5090949350505050565b6001600160a01b03811660009081526004602052604081205480614adc5750600019905061137a565b600181039050600060018281548110614af157fe5b9060005260206000209060040201600301549050600060018381548110614b1457fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90614b6d908590617691565b60405180910390a280614b855782935050505061137a565b6000818381614b9057fe5b0490508015614c4c5760005b84811015614bee578160018281548110614bb257fe5b9060005260206000209060040201600301540160018281548110614bd257fe5b6000918252602090912060036004909202010155600101614b9c565b50600180549085015b81811015614c49578260018281548110614c0d57fe5b9060005260206000209060040201600301540160018281548110614c2d57fe5b6000918252602090912060036004909202010155600101614bf7565b50505b5091949350505050565b600082614c655750600061142a565b82820282848281614c7257fe5b0414610f4e5760405162461bcd60e51b8152600401610ce79061723a565b6000610f4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615ad7565b614cda6166d6565b506040805180820190915281518152602082810190820152919050565b614cff61658f565b614d0882615b0e565b614d1157600080fd5b6000614d208360200151615b48565b60208085015160408051808201909152868152920190820152915050919050565b6000614d4b6166d6565b505080518051602091820151919092015191011190565b614d6a6166d6565b614d7382614d41565b614d7c57600080fd5b60208201516000614d8c82615bab565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590614dc557508151602110155b614dce57600080fd5b6000614ddd8360200151615b48565b90508083600001511015614e035760405162461bcd60e51b8152600401610ce7906173e0565b8251602080850151830180519284900392918310156147f957506020919091036101000a90049392505050565b6060614e3b82615b0e565b614e4457600080fd5b6000614e4f83615c8c565b9050606081604051908082528060200260200182016040528015614e8d57816020015b614e7a6166d6565b815260200190600190039081614e725790505b5090506000614e9f8560200151615b48565b60208601510190506000805b84811015614ef657614ebc83615bab565b9150604051806040016040528083815260200184815250848281518110614edf57fe5b602090810291909101015291810191600101614eab565b509195945050505050565b614f096165af565b60606000614f156165af565b6060614f1f61658f565b614f2887614cf7565b90506000805b614f3783614d41565b1561500c5780614f6257614f52614f4d84614d62565b615ce8565b6001600160a01b03168552615004565b8060011415614f8a57614f77614f4d84614d62565b6001600160a01b03166020860152615004565b8060021415614fb257614f9f614f4d84614d62565b6001600160a01b03166040860152615004565b8060031415614fde57614fc76132e284614d62565b6001600160401b0316606086015260019150615004565b8060041415614fff57614ff8614ff384614d62565b615d02565b9350615004565b61500c565b600101614f2e565b50929791965091945092505050565b606061142a61502983615d72565b615e58565b606081516000141561504f575060408051600081526020810190915261137a565b60608260008151811061505e57fe5b602002602001015190506000600190505b835181101561509f576150958285838151811061508857fe5b6020026020010151615eaa565b915060010161506f565b50610f4e6150b2825160c060ff16615f27565b82615eaa565b6060806000808080806150c96127c5565b6001549091505b80156151d757600181039250600b83815481106150e957fe5b600091825260209091206001601690920201015460ff16615109576151ce565b6001838154811061511657fe5b60009182526020909120600490910201546001600160a01b0316945061513d8584846130a6565b9350831580615150575060018a51038610155b1561515a576151ce565b60005b8a518110156151cc57856001600160a01b03168b828151811061517c57fe5b6020026020010151600001516001600160a01b031614156151c45760018b82815181106151a557fe5b60209081029190910101519015156080909101526001909601956151cc565b60010161515d565b505b600019016150d0565b508489510360405190808252806020026020018201604052801561521557816020015b6152026165af565b8152602001906001900390816151fa5790505b5096508489510360405190808252806020026020018201604052801561524f57816020015b606081526020019060019003908161523a5790505b5095506000915060005b89518110156152e35789818151811061526e57fe5b6020026020010151608001516152db5789818151811061528a57fe5b602002602001015188848151811061529e57fe5b60200260200101819052508881815181106152b557fe5b60200260200101518784815181106152c957fe5b60200260200101819052508260010192505b600101615259565b5050505050505b9250929050565b600154825160005b8281101561540e57600161530b6165af565b6001838154811061531857fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b848110156153e2578781815181106153a857fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b031614156153da57600092506153e2565b600101615394565b5081156154045780516001600160a01b03166000908152600460205260408120555b50506001016152f9565b50808211156154cd57805b828110156154cb57600180548061542c57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061547f57fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154b16002830182616683565b6154bf6003830160006166c7565b50509055600101615419565b505b60008183106154dc57816154de565b825b905060005b8181101561584d576155908682815181106154fa57fe5b60200260200101516001838154811061550f57fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152615ff9565b6157445780600101600460008884815181106155a857fe5b6020026020010151600001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508581815181106155e457fe5b6020026020010151600182815481106155f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015584518590829081106156b457fe5b6020026020010151600b82815481106156c957fe5b906000526020600020906016020160020190805190602001906156ed9291906164c4565b506000600b82815481106156fd57fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061572e57fe5b6000918252602090912060169091020155615845565b6157d585828151811061575357fe5b6020026020010151600b838154811061576857fe5b600091825260209182902060026016909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015612ab85780601f10612a8d57610100808354040283529160200191612ab8565b615820578481815181106157e557fe5b6020026020010151600b82815481106157fa57fe5b9060005260206000209060160201600201908051906020019061581e9291906164c4565b505b60006001828154811061582f57fe5b9060005260206000209060040201600301819055505b6001016154e3565b5082821115615a255761585e616495565b835b83811015615a225785818151811061587457fe5b60200260200101518260400181905250600187828151811061589257fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206178ef83398151915281019182558583015160008051602061792f8339815191528201805491151560ff19909216919091179055928501518051869492936159c89360008051602061790f833981519152019201906164c4565b5060608201516159de906003830190601361653e565b50505080600101600460008984815181106159f557fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615860565b50505b615a2d61607a565b615a3561625c565b6000600981905560015493505b83811015615aa3576000600b8281548110615a5957fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615a8a57fe5b6000918252602090912060169091020155600101615a42565b505050505050565b60008184841115615acf5760405162461bcd60e51b8152600401610ce79190616bd7565b505050900390565b60008183615af85760405162461bcd60e51b8152600401610ce79190616bd7565b506000838581615b0457fe5b0495945050505050565b8051600090615b1f5750600061137a565b6020820151805160001a9060c0821015615b3e5760009250505061137a565b5060019392505050565b8051600090811a6080811015615b6257600091505061137a565b60b8811080615b7d575060c08110801590615b7d575060f881105b15615b8c57600191505061137a565b60c0811015615ba05760b51901905061137a565b60f51901905061137a565b80516000908190811a6080811015615bc65760019150615c85565b60b8811015615bdb57607e1981019150615c85565b60c0811015615c2c57600060b78203600186019550806020036101000a865104915060018101820193505080831015615c265760405162461bcd60e51b8152600401610ce790617187565b50615c85565b60f8811015615c415760be1981019150615c85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015615c835760405162461bcd60e51b8152600401610ce790617187565b505b5092915050565b8051600090615c9d5750600061137a565b60008090506000615cb18460200151615b48565b602085015185519181019250015b80821015615cdf57615cd082615bab565b82019150826001019250615cbf565b50909392505050565b8051600090601514615cf957600080fd5b61142a82614db0565b8051606090615d1057600080fd5b6000615d1f8360200151615b48565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015615d56576020820181803683370190505b50905060008160200190506147f984876020015101828561644a565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416615db657506018615dda565b6fffffffffffffffffffffffffffffffff198416615dd657506010615dda565b5060005b6020811015615e1057818181518110615def57fe5b01602001516001600160f81b03191615615e0857615e10565b600101615dda565b60008160200390506060816040519080825280601f01601f191660200182016040528015615e45576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015615e8a5750607f60f81b82600081518110615e7857fe5b01602001516001600160f81b03191611155b15615e9657508061137a565b61142a615ea88351608060ff16615f27565b835b6060806040519050835180825260208201818101602087015b81831015615edb578051835260209283019201615ec3565b50855184518101855292509050808201602086015b81831015615f08578051835260209283019201615ef0565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310615f515760405162461bcd60e51b8152600401610ce790616f7f565b60408051600180825281830190925260609160208201818036833701905050905060378411615fab5782840160f81b81600081518110615f8d57fe5b60200101906001600160f81b031916908160001a905350905061142a565b6060615fb685615d72565b90508381510160370160f81b82600081518110615fcf57fe5b60200101906001600160f81b031916908160001a905350615ff08282615eaa565b95945050505050565b805182516000916001600160a01b039182169116148015616033575081602001516001600160a01b031683602001516001600160a01b0316145b8015616058575081604001516001600160a01b031683604001516001600160a01b0316145b8015610f4e5750506060908101519101516001600160401b0390811691161490565b601254601354808211156160c557805b828110156160c357601280548061609d57fe5b6001900381819060005260206000200160006160b99190616683565b905560010161608a565b505b60008183106160d457816160d6565b825b905060005b818110156161ee57616193601282815481106160f357fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156161815780601f1061615657610100808354040283529160200191616181565b820191906000526020600020905b81548152906001019060200180831161616457829003601f168201915b505050505060138381548110612a2a57fe5b6161e657601381815481106161a457fe5b90600052602060002001601282815481106161bb57fe5b9060005260206000200190805460018160011615610100020316600290046161e49291906165e4565b505b6001016160db565b5082821115610d0757825b82811015612fc65760126013828154811061621057fe5b60009182526020808320845460018181018755958552919093209290910180546162539493909201929091600261010092821615929092026000190116046165e4565b506001016161f9565b601354600b54808211156162a757805b828110156162a557601380548061627f57fe5b60019003818190600052602060002001600061629b9190616683565b905560010161626c565b505b60008183106162b657816162b8565b825b905060005b818110156163d757616375601382815481106162d557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156163635780601f1061633857610100808354040283529160200191616363565b820191906000526020600020905b81548152906001019060200180831161634657829003601f168201915b5050505050600b838154811061576857fe5b6163cf57600b818154811061638657fe5b9060005260206000209060160201600201601382815481106163a457fe5b9060005260206000200190805460018160011615610100020316600290046163cd9291906165e4565b505b6001016162bd565b5082821115610d0757825b82811015612fc6576013600b82815481106163f957fe5b600091825260208083208454600180820187559585529190932060169290920290920160029081018054616441959390940193909260001990821615610100020116046165e4565b506001016163e2565b8061645457610d07565b5b60208110616474578251825260209283019290910190601f1901616455565b915181516020939093036101000a6000190180199091169216919091179052565b604051806080016040528060008152602001600015158152602001606081526020016164bf6166f0565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061650557805160ff1916838001178555616532565b82800160010185558215616532579182015b82811115616532578251825591602001919060010190616517565b5061280092915061670f565b82601381019282156165325791602002820182811115616532578251825591602001919060010190616517565b6040518060600160405280600060ff16815260200160608152602001606081525090565b60405180604001604052806165a26166d6565b8152602001600081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061661d5780548555616532565b8280016001018555821561653257600052602060002091601f016020900482015b8281111561653257825482559160010191906001019061663e565b8260138101928215616532579182018281111561653257825482559160010191906001019061663e565b50805460018160011615610100020316600290046000825580601f106166a95750611586565b601f016020900490600052602060002090810190611586919061670f565b5061158690601381019061670f565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b6127a491905b808211156128005760008155600101616715565b60008083601f84011261673a578182fd5b5081356001600160401b03811115616750578182fd5b60208301915083602080830285010111156152ea57600080fd5b60008083601f84011261677b578182fd5b5081356001600160401b03811115616791578182fd5b6020830191508360208285010111156152ea57600080fd5b6000602082840312156167ba578081fd5b81356001600160a01b0381168114610f4e578182fd5b600080600080604085870312156167e5578283fd5b84356001600160401b03808211156167fb578485fd5b61680788838901616729565b9096509450602087013591508082111561681f578384fd5b5061682c87828801616729565b95989497509550505050565b600060208284031215616849578081fd5b81518015158114610f4e578182fd5b6000806020838503121561686a578182fd5b82356001600160401b0381111561687f578283fd5b61688b8582860161676a565b90969095509350505050565b600080600080604085870312156168ac578384fd5b84356001600160401b03808211156168c2578586fd5b6168ce8883890161676a565b909650945060208701359150808211156168e6578384fd5b5061682c8782880161676a565b600060208284031215616904578081fd5b5035919050565b60006020828403121561691c578081fd5b5051919050565b60008060408385031215616935578182fd5b505080516020909101519092909150565b60008060006040848603121561695a578283fd5b833560ff8116811461696a578384fd5b925060208401356001600160401b03811115616984578283fd5b6169908682870161676a565b9497909650939450505050565b6000815180845260208085019450808401835b838110156169d55781516001600160a01b0316875295820195908201906001016169b0565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452616a228160208601602086016176f7565b601f01601f19169290920160200192915050565b60008251616a488184602087016176f7565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b600060208252610f4e602083018461699d565b600060408252616af5604083018561699d565b602083820381850152818551808452828401915082838202850101838801865b83811015616b4357601f19878403018552616b31838351616a0a565b94860194925090850190600101616b15565b50909998505050505050505050565b600060808252616b65608083018761699d565b828103602084810191909152865180835287820192820190845b81811015616b9b57845183529383019391830191600101616b7f565b50508481036040860152616baf818861699d565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b600060208252610f4e6020830184616a0a565b600060408252616bfe6040830186886169e0565b8281036020840152616c118185876169e0565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252602b908201527f746865206275726e526174696f206d757374206265206e6f206772656174657260408201526a0207468616e2031303030360ac1b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526033908201527f7468652073797374656d526577617264526174696f206d757374206265206e6f60408201527202067726561746572207468616e20313030303606c1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152615ff06060830184616a0a565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152615ff06040830184866169e0565b60005b838110156177125781810151838201526020016176fa565b83811115612fc6575050600091015256fef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", + Code: kepler.ChapelValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b3a5c1fa8882c0e546dc5ba913ce4db77ec9befe", - Code: "608060405234801561001057600080fd5b50600436106102955760003560e01c80638256ace611610167578063c81b1662116100ce578063e1c7392a11610087578063e1c7392a146104d3578063eb57bff7146104db578063f9a2bbc7146104e3578063fc3e5908146104eb578063fc4333cd146104f3578063fd6a6879146104fb57610295565b8063c81b166214610482578063c8509d811461048a578063c96be4cb1461049d578063cc844b73146104b0578063d2a42e4b146104c3578063dc927faf146104cb57610295565b8063a78abc1611610120578063a78abc1614610447578063ab51bb961461044f578063ac0af62914610457578063ac4317511461045f578063ae61dc3b14610472578063c80d4b8f1461047a57610295565b80638256ace61461040c578063831d65d11461041457806396713da9146104275780639bc8e4f21461042f5780639dc0926214610437578063a1a11bf51461043f57610295565b8063493279b11161020b5780636e47b482116101c45780636e47b482146103dc57806370fd5bad146103e4578063718a8aa8146103ec57806375d47a0a146103f45780637912a65d146103fc5780637942fd051461040457610295565b8063493279b1146103925780634bf6c882146103a757806351e80672146103af578063567a372d146103b75780635bfb4990146103bf57806362b72cf5146103d457610295565b806335aa2e441161025d57806335aa2e441461032457806337c8dab914610337578063389f4f71146103585780633a63f4b11461036d5780633dffc3871461037557806343756e5c1461038a57610295565b80630bee7a671461029a5780630e2374a5146102b85780631182b875146102cd57806322d1e80b146102ed57806323bac5a214610302575b600080fd5b6102a2610503565b6040516102af919061354e565b60405180910390f35b6102c0610508565b6040516102af9190612d6a565b6102e06102db366004612ca0565b61050e565b6040516102af9190612da2565b6102f5610574565b6040516102af9190612d97565b610315610310366004612a4e565b61057d565b6040516102af93929190613536565b6102c0610332366004612c70565b6105a0565b61034a610345366004612a4e565b6105c7565b6040516102af929190613528565b61036061061e565b6040516102af91906134fe565b610360610624565b61037d61062a565b6040516102af919061355f565b6102c061062f565b61039a610635565b6040516102af91906134ef565b61037d61063a565b6102c061063f565b610360610645565b6103d26103cd366004612a4e565b61064b565b005b6103606106f6565b6102c06106fc565b61037d610702565b61037d610707565b6102c061070c565b610360610712565b61037d610717565b61034a61071c565b6103d2610422366004612ca0565b610726565b61037d610838565b61036061083d565b6102c0610848565b6102c061084e565b6102f5610854565b6102a261085d565b610360610862565b6103d261046d366004612b54565b610867565b610360610e17565b610360610e1e565b6102c0610e23565b6103d2610498366004612ca0565b610e29565b6103d26104ab366004612a4e565b610e9a565b6103d26104be366004612bbd565b61128b565b61036061187c565b6102c0611881565b6103d2611887565b6103606118c3565b6102c06118c9565b61037d6118cf565b6103d26118d4565b6102c0611d1d565b606481565b61200181565b6060336120001461053a5760405162461bcd60e51b815260040161053190613347565b60405180910390fd5b60005460ff1661055c5760405162461bcd60e51b815260040161053190612e9d565b60405162461bcd60e51b815260040161053190613438565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b600181815481106105ad57fe5b6000918252602090912001546001600160a01b0316905081565b6000806105d2612835565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b60065481565b600181565b61100181565b606181565b600881565b61200081565b60045481565b336110001461066c5760405162461bcd60e51b81526004016105319061312c565b60005460ff1661068e5760405162461bcd60e51b815260040161053190612e9d565b61200063f7a251d7600b6106a184611d23565b60006040518463ffffffff1660e01b81526004016106c19392919061356d565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b6004546005549091565b33612000146107475760405162461bcd60e51b815260040161053190613347565b60005460ff166107695760405162461bcd60e51b815260040161053190612e9d565b610771612858565b60006107b284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611df592505050565b9150915080156107f95781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e629967916107ec9161354e565b60405180910390a16106ef565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e7916108299161354e565b60405180910390a15050505050565b600981565b662386f26fc1000081565b61100781565b61100681565b60005460ff1681565b600081565b600481565b60005460ff166108895760405162461bcd60e51b815260040161053190612e9d565b33611007146108aa5760405162461bcd60e51b815260040161053190613204565b61091584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b60208201529150611e759050565b156109b0576020811461093a5760405162461bcd60e51b8152600401610531906130b8565b604080516020601f840181900481028201810190925282815260009161097891858580838501838280828437600092019190915250611ecf92505050565b90506001811015801561098c575060055481105b6109a85760405162461bcd60e51b815260040161053190613302565b600455610dd4565b610a1684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b60208201529150611e759050565b15610ab25760208114610a3b5760405162461bcd60e51b815260040161053190613252565b604080516020601f8401819004810282018101909252828152600091610a7991858580838501838280828437600092019190915250611ecf92505050565b90506103e88111158015610a8e575060045481115b610aaa5760405162461bcd60e51b815260040161053190612f56565b600555610dd4565b610b2684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f66696e616c697479536c617368526577617264526174696f000000000000000060208201529150611e759050565b15610bc05760208114610b4b5760405162461bcd60e51b81526004016105319061346f565b604080516020601f8401819004810282018101909252828152600091610b8991858580838501838280828437600092019190915250611ecf92505050565b9050600a8110158015610b9c5750606481105b610bb85760405162461bcd60e51b81526004016105319061306c565b600655610dd4565b610c3484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c617368000000000000000060208201529150611e759050565b15610cab5760208114610c595760405162461bcd60e51b815260040161053190612f8b565b604080516020601f8401819004810282018101909252828152610c959190848480838501838280828437600092019190915250611ed492505050565b6007805460ff1916911515919091179055610dd4565b610d1f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6d616c6963696f7573566f7465536c61736853636f706500000000000000000060208201529150611e759050565b15610dbc5760208114610d445760405162461bcd60e51b815260040161053190612de7565b604080516020601f8401819004810282018101909252828152600091610d8291858580838501838280828437600092019190915250611ecf92505050565b90506170808110158015610d985750620d2f0081105b610db45760405162461bcd60e51b815260040161053190612ed4565b600855610dd4565b60405162461bcd60e51b8152600401610531906133e3565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051610e099493929190612db5565b60405180910390a150505050565b6201518081565b609681565b61100281565b3361200014610e4a5760405162461bcd60e51b815260040161053190613347565b60005460ff16610e6c5760405162461bcd60e51b815260040161053190612e9d565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b334114610eb95760405162461bcd60e51b815260040161053190613396565b60005460ff16610edb5760405162461bcd60e51b815260040161053190612e9d565b6003544311610efc5760405162461bcd60e51b8152600401610531906134ba565b3a15610f1a5760405162461bcd60e51b8152600401610531906131a7565b60405163155853f360e21b8152611000906355614fcc90610f3f908490600401612d6a565b60206040518083038186803b158015610f5757600080fd5b505afa158015610f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612b34565b610f9857611284565b610fa0612835565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff161580159282019290925290610ffb576020810180516001019052611054565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161106657fe5b066111b257600060208201526040516335409f7f60e01b8152611000906335409f7f90611097908590600401612d6a565b600060405180830381600087803b1580156110b157600080fd5b505af11580156110c5573d6000803e3d6000fd5b505050506120006001600160a01b031663f7a251d7600b6110e585611d23565b60006040518463ffffffff1660e01b81526004016111059392919061356d565b600060405180830381600087803b15801561111f57600080fd5b505af1925050508015611130575060015b6111ad573d80801561115e576040519150601f19603f3d011682016040523d82523d6000602084013e611163565b606091505b50826001600160a01b03167fd7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1c8360200151836040516111a3929190613507565b60405180910390a2505b61121e565b6004548160200151816111c157fe5b0661121e576040516375abf10160e11b81526110009063eb57e202906111eb908590600401612d6a565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166112ad5760405162461bcd60e51b815260040161053190612e9d565b604051630a83aaa960e31b81526110069063541d5548906112d2903390600401612d6a565b60206040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113229190612b34565b61133e5760405162461bcd60e51b815260040161053190612e31565b60075460ff166113605760405162461bcd60e51b815260040161053190612e68565b60065461136d5760146006555b60085461137c57620151806008555b6008548151604001514391011180156113a057504360085482602001516040015101115b6113bc5760405162461bcd60e51b81526004016105319061340a565b8060200151602001518160000151602001511480156113ea5750806020015160600151816000015160600151145b156114075760405162461bcd60e51b8152600401610531906130ff565b8051604081015190511080156114265750602081015160408101519051105b6114425760405162461bcd60e51b815260040161053190613035565b6020810151518151511080156114675750806000015160400151816020015160400151105b8061149257508051516020820151511080156114925750806020015160400151816000015160400151105b806114ac5750806020015160400151816000015160400151145b6114c85760405162461bcd60e51b815260040161053190612f1f565b604080820151905163ea321e4960e01b81526110009163ea321e49916114f19190600401612da2565b60206040518083038186803b15801561150957600080fd5b505afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115419190612b34565b61155d5760405162461bcd60e51b8152600401610531906131d5565b61156f81600001518260400151611efc565b8015611588575061158881602001518260400151611efc565b6115a45760405162461bcd60e51b815260040161053190612fd6565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b1580156115e257600080fd5b505afa1580156115f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261161e9190810190612a71565b9150915060005b81518110156117595761164f82828151811061163d57fe5b602002602001015185604001516120d4565b15611751576006546040516213929d60e11b8152606461100280319093020491906227253a906116859033908590600401612d7e565b602060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d79190612c88565b506110006001600160a01b03166335409f7f8584815181106116f557fe5b60200260200101516040518263ffffffff1660e01b81526004016117199190612d6a565b600060405180830381600087803b15801561173357600080fd5b505af1158015611747573d6000803e3d6000fd5b5050505050611759565b600101611625565b50600061176b84604001516000612138565b90506120006001600160a01b031663f7a251d7600b61178d8760400151612154565b60006040518463ffffffff1660e01b81526004016117ad9392919061356d565b600060405180830381600087803b1580156117c757600080fd5b505af19250505080156117d8575060015b61184a573d808015611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b50817fd58d1183100bd0932c0588f31c4205d6bc6168909765a96c41adbed3115f36288260405161183c9190612da2565b60405180910390a250611876565b60405181907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a25b50505050565b601481565b61100381565b60005460ff16156118aa5760405162461bcd60e51b815260040161053190613294565b603260045560966005556000805460ff19166001179055565b60085481565b61100081565b600381565b33611000146118f55760405162461bcd60e51b81526004016105319061312c565b60005460ff166119175760405162461bcd60e51b815260040161053190612e9d565b60015461192357611d1b565b600154600090600019015b808211611cef576000805b82841015611a5257611949612835565b600260006001878154811061195a57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611a3c576004600554816119c757fe5b048160200151038160200181815250508060026000600188815481106119e957fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611a46565b6001925050611a52565b50836001019350611939565b828411611be957611a61612835565b6002600060018681548110611a7257fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611b5a57600460055481611adf57fe5b04816020015103816020018181525050806002600060018781548110611b0157fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff19169115159190911790559150611be99050565b6002600060018681548110611b6b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805480611baf57fe5b600082815260209020810160001990810180546001600160a01b031916905501905583611bdc5750611be9565b5060001990920191611a52565b818015611bf35750805b15611cd2576002600060018681548110611c0957fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff19169055805484908110611c5057fe5b600091825260209091200154600180546001600160a01b039092169186908110611c7657fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506001805480611caf57fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82611cde575050611cef565b50506001909101906000190161192e565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081611d3e579050509050611d67836001600160a01b031661218f565b81600081518110611d7457fe5b6020026020010181905250611d88436121b2565b81600181518110611d9557fe5b6020908102919091010152611daa60616121b2565b81600281518110611db757fe5b6020026020010181905250611dcb426121b2565b81600381518110611dd857fe5b6020026020010181905250611dec816121c5565b9150505b919050565b611dfd612858565b6000611e07612858565b611e0f61286a565b611e20611e1b8661224f565b612274565b90506000805b611e2f836122be565b15611e685780611e5b57611e4a611e45846122df565b61232d565b63ffffffff16845260019150611e60565b611e68565b600101611e26565b5091935090915050915091565b600081604051602001611e889190612d4e565b6040516020818303038152906040528051906020012083604051602001611eaf9190612d4e565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff811615611eee576001915081611ef4565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b6060815260200190600190039081611f18575050604080516020808252818301909252919250606091908082018180368337019050509050611f5d85600001516121b2565b82600081518110611f6a57fe5b6020026020010181905250611f8560208660200151836123af565b611f8e816123bf565b82600181518110611f9b57fe5b6020026020010181905250611fb385604001516121b2565b82600281518110611fc057fe5b6020026020010181905250611fdb60208660600151836123af565b611fe4816123bf565b82600381518110611ff157fe5b6020026020010181905250612017602061200a846121c5565b80519060200120836123af565b6040805160b080825260e08201909252606091602082018180368337019050509050612047818360006020612415565b61205981876080015160206060612415565b612067818660806030612415565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6120a457600080fd5b5060016120b2826000612468565b60ff16146120c7576000945050505050611ec9565b5060019695505050505050565b8151815160009160019181148083146120f0576000925061212e565b600160208701838101602088015b60028483851001141561212957805183511461211d5760009650600093505b602092830192016120fe565b505050505b5090949350505050565b6000816020018351101561214b57600080fd5b50016020015190565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161216f579050509050611d67836123bf565b60408051600560a21b8318601482015260348101909152606090611dec816123bf565b6060611ec96121c083612484565b6123bf565b60608151600014156121e65750604080516000815260208101909152611df0565b6060826000815181106121f557fe5b602002602001015190506000600190505b83518110156122365761222c8285838151811061221f57fe5b602002602001015161256a565b9150600101612206565b50611dec612249825160c060ff166125e7565b8261256a565b61225761288a565b506040805180820190915281518152602082810190820152919050565b61227c61286a565b612285826126b9565b61228e57600080fd5b600061229d83602001516126f3565b60208085015160408051808201909152868152920190820152915050919050565b60006122c861288a565b505080518051602091820151919092015191011190565b6122e761288a565b6122f0826122be565b6122f957600080fd5b6020820151600061230982612756565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061234257508151602110155b61234b57600080fd5b600061235a83602001516126f3565b905080836000015110156123805760405162461bcd60e51b8152600401610531906132cb565b8251602080850151830180519284900392918310156123a657826020036101000a820491505b50949350505050565b9091018181526020918201910152565b6060815160011480156123f15750607f60f81b826000815181106123df57fe5b01602001516001600160f81b03191611155b156123fd575080611df0565b611ec961240f8351608060ff166125e7565b8361256a565b60005b818110156106ef5783818151811061242c57fe5b602001015160f81c60f81b85848060010195508151811061244957fe5b60200101906001600160f81b031916908160001a905350600101612418565b6000816001018351101561247b57600080fd5b50016001015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166124c8575060186124ec565b6fffffffffffffffffffffffffffffffff1984166124e8575060106124ec565b5060005b60208110156125225781818151811061250157fe5b01602001516001600160f81b0319161561251a57612522565b6001016124ec565b60008160200390506060816040519080825280601f01601f191660200182016040528015612557576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b8183101561259b578051835260209283019201612583565b50855184518101855292509050808201602086015b818310156125c85780518352602092830192016125b0565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106126115760405162461bcd60e51b81526004016105319061300d565b6040805160018082528183019092526060916020820181803683370190505090506037841161266b5782840160f81b8160008151811061264d57fe5b60200101906001600160f81b031916908160001a9053509050611ec9565b606061267685612484565b90508381510160370160f81b8260008151811061268f57fe5b60200101906001600160f81b031916908160001a9053506126b0828261256a565b95945050505050565b80516000906126ca57506000611df0565b6020820151805160001a9060c08210156126e957600092505050611df0565b5060019392505050565b8051600090811a608081101561270d576000915050611df0565b60b8811080612728575060c08110801590612728575060f881105b15612737576001915050611df0565b60c081101561274b5760b519019050611df0565b60f519019050611df0565b80516000908190811a6080811015612771576001915061282e565b60b881101561278657607e198101915061282e565b60c08110156127d757600060b78203600186019550806020036101000a8651049150600181018201935050808310156127d15760405162461bcd60e51b81526004016105319061317c565b5061282e565b60f88110156127ec5760be198101915061282e565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611ef45760405162461bcd60e51b81526004016105319061317c565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b604051806040016040528061287d61288a565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f8301126128b4578081fd5b81516128c76128c2826135c0565b613599565b818152915060208083019084810160005b8481101561293d578151870188603f8201126128f357600080fd5b838101516129036128c2826135e0565b81815260408b8184860101111561291957600080fd5b61292883888401838701613604565b508652505092820192908201906001016128d8565b505050505092915050565b60008083601f840112612959578182fd5b50813567ffffffffffffffff811115612970578182fd5b60208301915083602082850101111561298857600080fd5b9250929050565b600082601f83011261299f578081fd5b81356129ad6128c2826135e0565b91508082528360208285010111156129c457600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156129ee578081fd5b6129f860a0613599565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff811115612a3657600080fd5b612a428482850161298f565b60808301525092915050565b600060208284031215612a5f578081fd5b8135612a6a81613630565b9392505050565b60008060408385031215612a83578081fd5b825167ffffffffffffffff80821115612a9a578283fd5b81850186601f820112612aab578384fd5b80519250612abb6128c2846135c0565b80848252602080830192508084018a828389028701011115612adb578788fd5b8794505b86851015612b06578051612af281613630565b845260019490940193928101928101612adf565b508801519096509350505080821115612b1d578283fd5b50612b2a858286016128a4565b9150509250929050565b600060208284031215612b45578081fd5b81518015158114612a6a578182fd5b60008060008060408587031215612b69578182fd5b843567ffffffffffffffff80821115612b80578384fd5b612b8c88838901612948565b90965094506020870135915080821115612ba4578384fd5b50612bb187828801612948565b95989497509550505050565b600060208284031215612bce578081fd5b813567ffffffffffffffff80821115612be5578283fd5b81840160608187031215612bf7578384fd5b612c016060613599565b9250803582811115612c11578485fd5b612c1d878284016129dd565b845250602081013582811115612c31578485fd5b612c3d878284016129dd565b602085015250604081013582811115612c54578485fd5b612c608782840161298f565b6040850152509195945050505050565b600060208284031215612c81578081fd5b5035919050565b600060208284031215612c99578081fd5b5051919050565b600080600060408486031215612cb4578283fd5b833560ff81168114612cc4578384fd5b9250602084013567ffffffffffffffff811115612cdf578283fd5b612ceb86828701612948565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612d3a816020860160208601613604565b601f01601f19169290920160200192915050565b60008251612d60818460208701613604565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b600060208252612a6a6020830184612d22565b600060408252612dc9604083018688612cf8565b8281036020840152612ddc818587612cf8565b979650505050505050565b6020808252602a908201527f6c656e677468206f66206d616c6963696f7573566f7465536c61736853636f706040820152690ca40dad2e6dac2e8c6d60b31b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b6020808252602c908201527f7468652066696e616c69747920736c6173682072657761726420726174696f2060408201526b6f7574206f662072616e676560a01b606082015260800190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252602b908201527f6c656e677468206f662066696e616c697479536c61736852657761726452617460408201526a0d2de40dad2e6dac2e8c6d60ab1b606082015260800190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000838252604060208301526135206040830184612d22565b949350505050565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252606060208301526135896060830185612d22565b9050826040830152949350505050565b60405181810167ffffffffffffffff811182821017156135b857600080fd5b604052919050565b600067ffffffffffffffff8211156135d6578081fd5b5060209081020190565b600067ffffffffffffffff8211156135f6578081fd5b50601f01601f191660200190565b60005b8381101561361f578181015183820152602001613607565b838111156118765750506000910152565b6001600160a01b038116811461364557600080fd5b5056fea164736f6c6343000604000a", + Code: kepler.ChapelSlashContract, }, { ContractAddr: common.HexToAddress(SystemRewardContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/b3a5c1fa8882c0e546dc5ba913ce4db77ec9befe", - Code: "6080604052600436106101c55760003560e01c806375d47a0a116100f7578063ab51bb9611610095578063f9a2bbc711610064578063f9a2bbc7146105c3578063fb5478b3146105d8578063fc3e5908146105ed578063fd6a68791461060257610209565b8063ab51bb96146104b5578063ac431751146104ca578063c81b166214610599578063dc927faf146105ae57610209565b80639a99b4f0116100d15780639a99b4f01461043d5780639dc0926214610476578063a1a11bf51461048b578063a78abc16146104a057610209565b806375d47a0a146103fe5780637942fd051461041357806396713da91461042857610209565b8063493279b1116101645780636d70f7ae1161013e5780636d70f7ae146103785780636e47b482146103bf57806370fd5bad146103d4578063718a8aa8146103e957610209565b8063493279b1146103225780634bf6c8821461034e57806351e806721461036357610209565b806331b6d4a5116101a057806331b6d4a5146102b85780633a0b0eff146102cd5780633dffc387146102e257806343756e5c1461030d57610209565b806227253a1461020e5780630bee7a67146102595780630e2374a51461028757610209565b366102095734156102075760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b34801561021a57600080fd5b506102476004803603604081101561023157600080fd5b506001600160a01b038135169060200135610617565b60408051918252519081900360200190f35b34801561026557600080fd5b5061026e6107c2565b6040805163ffffffff9092168252519081900360200190f35b34801561029357600080fd5b5061029c6107c7565b604080516001600160a01b039092168252519081900360200190f35b3480156102c457600080fd5b506102476107cd565b3480156102d957600080fd5b506102476107d9565b3480156102ee57600080fd5b506102f76107df565b6040805160ff9092168252519081900360200190f35b34801561031957600080fd5b5061029c6107e4565b34801561032e57600080fd5b506103376107ea565b6040805161ffff9092168252519081900360200190f35b34801561035a57600080fd5b506102f76107ef565b34801561036f57600080fd5b5061029c6107f4565b34801561038457600080fd5b506103ab6004803603602081101561039b57600080fd5b50356001600160a01b03166107fa565b604080519115158252519081900360200190f35b3480156103cb57600080fd5b5061029c610818565b3480156103e057600080fd5b506102f761081e565b3480156103f557600080fd5b506102f7610823565b34801561040a57600080fd5b5061029c610828565b34801561041f57600080fd5b506102f761082e565b34801561043457600080fd5b506102f7610833565b34801561044957600080fd5b506102476004803603604081101561046057600080fd5b506001600160a01b038135169060200135610838565b34801561048257600080fd5b5061029c610962565b34801561049757600080fd5b5061029c610968565b3480156104ac57600080fd5b506103ab61096e565b3480156104c157600080fd5b5061026e610977565b3480156104d657600080fd5b50610207600480360360408110156104ed57600080fd5b81019060208101813564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91939092909160208101903564010000000081111561055a57600080fd5b82018360208201111561056c57600080fd5b8035906020019184600183028401116401000000008311171561058e57600080fd5b50909250905061097c565b3480156105a557600080fd5b5061029c610cff565b3480156105ba57600080fd5b5061029c610d05565b3480156105cf57600080fd5b5061029c610d0b565b3480156105e457600080fd5b50610247610d11565b3480156105f957600080fd5b506102f7610d1d565b34801561060e57600080fd5b5061029c610d22565b6000805460ff1661069457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106e25760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106106f157476106f3565b825b9050674563918244f400008111156107105750674563918244f400005b8015610791576040516001600160a01b0385169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a26107bb565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b606481565b61200181565b674563918244f4000081565b60015481565b600181565b61100181565b606181565b600881565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b600281565b601081565b61100881565b600b81565b600981565b6000805460ff166108b557600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166109035760405162461bcd60e51b815260040180806020018281038252602b815260200180610e10602b913960400191505060405180910390fd5b60004783106109125747610914565b825b9050670de0b6b3a76400008111156107105750604051670de0b6b3a7640000906001600160a01b03851690600090839082818181858883f1935050505015801561074c573d6000803e3d6000fd5b61100781565b61100681565b60005460ff1681565b600081565b33611007146109bc5760405162461bcd60e51b815260040180806020018281038252602e815260200180610e6a602e913960400191505060405180910390fd5b610a1e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610d289050565b15610af657606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610aa15760405162461bcd60e51b815260040180806020018281038252602c815260200180610e98602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610c6d565b610b5b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610d289050565b15610c3057606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060149091149050610bde5760405162461bcd60e51b815260040180806020018281038252602f815260200180610e3b602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610c6d565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61100081565b670de0b6b3a764000081565b600381565b61100481565b6000816040516020018082805190602001908083835b60208310610d5d5780518252601f199092019160209182019101610d3e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610dcb5780518252601f199092019160209182019101610dac565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a", + Code: kepler.ChapelSystemRewardContract, }, }, } @@ -540,62 +554,62 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ed8565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f02565b34801561057757600080fd5b50610580610e42565b60405161054091906181eb565b34801561059957600080fd5b506105ad6105a83660046180d1565b610e48565b604051610540919061837e565b3480156105c657600080fd5b506105cf611165565b6040516105409190618373565b3480156105e857600080fd5b5061051c6105f7366004617edf565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e3f565b611855565b34801561066757600080fd5b5061051c610676366004617e77565b611902565b34801561068757600080fd5b506105cf61069636600461807e565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461807e565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e3f565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618289565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f13565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ec9565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e3f565b6123c5565b34801561080157600080fd5b50610533610810366004617e3f565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461807e565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461807e565b612507565b60405161054096959493929190618218565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180d1565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e3f565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b38366004618022565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e3f565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618276565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461807e565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fe3565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e3f565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e3f565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461807e565b6139e4565b60405161054093929190618ee1565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ae4565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185a5565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618ce5565b600b54610f4c57610e9d6179eb565b60015460005b81811015610f4857600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff1916911515919091179055604086015180518794610f2493600080516020619005833981519152909101920190617a1a565b506060820151610f3a9060038301906013617a94565b505050806001019050610ea3565b5050505b610f54617ac1565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7192505050565b9150915080610fb157610fa86064613f2d565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f8e565b905061112a565b825160ff16600114156111265782602001515160011461101b57600080516020618fc583398151915260405161100b9061899d565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc8360018403615150565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f2d565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d34565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a23565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617ae5565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be906110009060089060040161825a565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fc3565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b1a565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a1a565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a1a565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ed8565b60405180910390a150505050610e32565b60608061163e8386615513565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181eb565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd82826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e92565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d34565b60105443116119425760405162461bcd60e51b8152600401610e1290618738565b3a156119605760405162461bcd60e51b8152600401610e1290618a23565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185a5565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161e916565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e790309086906004016181ff565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190618096565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e3f565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ed8565b60405180910390a2611be9565b600354611b88908663ffffffff61622b16565b6003908155810154611ba0908663ffffffff61622b16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ed8565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ed8565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179eb565b60015460005b81811015611e8557600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff1916911515919091179055604086015180518794611e6193600080516020619005833981519152909101920190617a1a565b506060820151611e779060038301906013617a94565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185dc565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f128383615150565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b603881565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b9050606061226082616250565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163be565b6122bd8383838888038989038a8b8b8b5103016163be565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618ce5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f21565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c6d565b6000190192915050565b600b5461271d5761266e6179eb565b60015460005b8181101561271957600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff19169115159190911790556040860151805187946126f593600080516020619005833981519152909101920190617a1a565b50606082015161270b9060038301906013617a94565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e129061895a565b611f2d3382616515565b600981565b61100781565b600381565b60c881565b61100681565b6040518061062001604052806105ef81526020016190256105ef913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185a5565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a51565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165ad9050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c27565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061660692505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e129061884a565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165ad9050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183c3565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061660692505050565b90506127106129f2600f548361622b90919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e12906183fa565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165ad9050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e1290618462565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061660692505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187a2565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165ad9050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e129061852b565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061660692505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dc5565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165ad9050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184df565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061660692505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188c0565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165ad9050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618a9f565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061660692505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165ad9050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e1290618570565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061660692505050565b905060008111612ef55760405162461bcd60e51b8152600401610e129061864a565b6064811115612f165760405162461bcd60e51b8152600401610e1290618692565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165ad9050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d81565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061660692505050565b90506127106130036006548361622b90919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b88565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e22565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130769493929190618391565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b51565b613235617ac1565b600061325b6040518061062001604052806105ef81526020016190256105ef9139613d71565b915091508061327c5760405162461bcd60e51b8152600401610e1290618ca4565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050505061660b565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e49565b600b54613624576135756179eb565b60015460005b8181101561362057600b80546001810182556000919091528351600080516020618fe583398151915260169092029182019081556020808601516000805160206196148339815191528401805460ff19169115159190911790556040860151805187946135fc93600080516020619005833981519152909101920190617a1a565b5060608201516136129060038301906013617a94565b50505080600101905061357b565b5050505b600061362f8261666f565b905061363a81611c4b565b156118fe576118fe8282616515565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d34565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185a5565b600034116136b45760405162461bcd60e51b8152600401610e1290618891565b3a156136d25760405162461bcd60e51b8152600401610e1290618a23565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167f290919063ffffffff16565b9063ffffffff61682c16565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ed8565b60405180910390a16137d1838263ffffffff6161e916565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167f290919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ed8565b60405180910390a1613889838263ffffffff6161e916565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ed8565b60405180910390a2613986565b600354613925908463ffffffff61622b16565b600390815581015461393d908463ffffffff61622b16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ed8565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ed8565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b6000613b0f600a5461374685613746600b8981548110613af157fe5b6000918252602090912060169091020154439063ffffffff6161e916565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b4e57600080fd5b505afa158015613b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8691906180ae565b9150915060009350808310613ce557613b9f8787615150565b5060405163436aa28360e11b8152600090612002906386d5450690613bc8908b906004016181eb565b60206040518083038186803b158015613be057600080fd5b505afa158015613bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c189190617e5b565b6001600160a01b031614613c84576040516313d13bdb60e31b815261100190639e89ded890613c4d908a9087906004016181ff565b600060405180830381600087803b158015613c6757600080fd5b505af1158015613c7b573d6000803e3d6000fd5b50505050613cdc565b6040516305bfb49960e41b815261100190635bfb499090613ca9908a906004016181eb565b600060405180830381600087803b158015613cc357600080fd5b505af1158015613cd7573d6000803e3d6000fd5b505050505b60019350613cf7565b818310613cf757613cf58761666f565b505b60098054600019019055600b80546000919088908110613d1357fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613d79617ac1565b6000613d83617ac1565b613d8b617b5e565b613d9c613d978661686e565b616893565b90506000805b613dab836168dd565b15613f1f5780613dd057613dc6613dc1846168fe565b61694c565b60ff168452613f17565b8060011415613f12576060613dec613de7856168fe565b6169cc565b90508051604051908082528060200260200182016040528015613e2957816020015b613e16617ae5565b815260200190600190039081613e0e5790505b5085602001819052508051604051908082528060200260200182016040528015613e6757816020015b6060815260200190600190039081613e525790505b50604086015260005b8151811015613f0757613e81617ae5565b60606000613ea1858581518110613e9457fe5b6020026020010151616a9d565b92509250925080613ec1578860009a509a50505050505050505050613f28565b8289602001518581518110613ed257fe5b60200260200101819052508189604001518581518110613eee57fe5b6020026020010181905250505050806001019050613e70565b506001925050613f17565b613f1f565b600101613da2565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f47579050509050613f6d8363ffffffff16616bb7565b81600081518110613f7a57fe5b602002602001018190525061115e81616bca565b6000606483511115613fc557600080516020618fc5833981519152604051613fb5906186ef565b60405180910390a1506066611dc5565b60005b83518110156140635760005b8181101561405a57848181518110613fe857fe5b6020026020010151600001516001600160a01b031685838151811061400957fe5b6020026020010151600001516001600160a01b0316141561405257600080516020618fc583398151915260405161403f906187ff565b60405180910390a1606692505050611dc5565b600101613fd4565b50600101613fc8565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141155760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161408b565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141ea5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141d65780601f106141ab576101008083540402835291602001916141d6565b820191906000526020600020905b8154815290600101906020018083116141b957829003601f168201915b50505050508152602001906001019061413f565b50505050905060005b82518110156142475782818151811061420857fe5b60200260200101516060015160030283828151811061422357fe5b60209081029190910101516001600160401b039091166060909101526001016141f3565b5060608061425789898686616c54565b915091506142658282615513565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142a4578160200160208202803683370190505b50905060005b828110156144355760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142db57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614316926001600160a01b0390921691016181eb565b60206040518083038186803b15801561432e57600080fd5b505afa158015614342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143669190617e5b565b6001600160a01b0316146143c857600182828151811061438257fe5b602002602001019060ff16908160ff1681525050600181815481106143a357fe5b9060005260206000209060040201600301546000146143c3578360010193505b61442d565b67016345785d8a0000600182815481106143de57fe5b906000526020600020906004020160030154106144005784600101945061442d565b6001818154811061440d57fe5b90600052602060002090600402016003015460001461442d578360010193505b6001016142aa565b50606084604051908082528060200260200182016040528015614462578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614491578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144c0578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144ef578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614520578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561454f578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561459757600080fd5b505afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf9190618096565b905067016345785d8a000081111561461b57600080516020618fc58339815191526040516145fc90618b10565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149af5789818151811061463257fe5b602002602001015160ff1660011415614728576001818154811061465257fe5b906000526020600020906004020160030154600014614723576001818154811061467857fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146a357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146d057fe5b906000526020600020906004020160030154838d815181106146ee57fe5b60200260200101818152505060018a8d8151811061470857fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149a7565b67016345785d8a00006001828154811061473e57fe5b906000526020600020906004020160030154106148c3576001818154811061476257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147c857fe5b906000526020600020906004020160030154816147e157fe5b06600183815481106147ef57fe5b90600052602060002090600402016003015403905061481783826161e990919063ffffffff16565b898f8151811061482357fe5b6020026020010181815250506001828154811061483c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061486d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061489a57fe5b60209081029190910101526148b5868263ffffffff61622b16565b95508d6001019d50506149a7565b600181815481106148d057fe5b9060005260206000209060040201600301546000146149a757600181815481106148f657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061492757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061495457fe5b906000526020600020906004020160030154838d8151811061497257fe5b60200260200101818152505060008a8d8151811061498c57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161461e565b5060008415614c25576002546040516303702b2960e51b815261100491636e0565209188916149e9918e918e918d914201906004016182f9565b6020604051808303818588803b158015614a0257600080fd5b505af193505050508015614a33575060408051601f3d908101601f19168201909252614a3091810190617fc3565b60015b614baa576040516000815260443d1015614a4f57506000614aea565b60046000803e60005160e01c6308c379a08114614a70576000915050614aea565b60043d036004833e81513d60248201116001600160401b0382111715614a9b57600092505050614aea565b80830180516001600160401b03811115614abc576000945050505050614aea565b8060208301013d8601811115614ada57600095505050505050614aea565b601f01601f191660405250925050505b80614af55750614b37565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b29919061837e565b60405180910390a250614ba5565b3d808015614b61576040519150601f19603f3d011682016040523d82523d6000602084013e614b66565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614b9b919061837e565b60405180910390a2505b614c25565b8015614bec577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bdf9190618ed8565b60405180910390a1614c23565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c1a906184a8565b60405180910390a25b505b8015614ddb5760005b8751811015614dd9576000888281518110614c4557fe5b60200260200101519050600060018281548110614c5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c8f57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d4b5760018281548110614cd057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d1f57fe5b906000526020600020906004020160030154604051614d3e9190618ed8565b60405180910390a2614dcf565b60018281548110614d5857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614da757fe5b906000526020600020906004020160030154604051614dc69190618ed8565b60405180910390a25b5050600101614c2e565b505b835115614fd15760005b8451811015614fcf578a8181518110614dfa57fe5b602002602001015160ff1660011415614e99576120026001600160a01b031663092193ab858381518110614e2a57fe5b6020026020010151878481518110614e3e57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6291906181eb565b6000604051808303818588803b158015614e7b57600080fd5b505af1158015614e8f573d6000803e3d6000fd5b5050505050614fc7565b6000858281518110614ea757fe5b60200260200101516001600160a01b03166108fc868481518110614ec757fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f5d57858281518110614efd57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f3b57fe5b6020026020010151604051614f509190618ed8565b60405180910390a2614fc5565b858281518110614f6957fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fa757fe5b6020026020010151604051614fbc9190618ed8565b60405180910390a25b505b600101614de5565b505b5050505050505050505050505060005b60015481101561503e5760018181548110614ff857fe5b9060005260206000209060040201600301546000146150365760006001828154811061502057fe5b9060005260206000209060040201600301819055505b600101614fe1565b5047156150ac577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150749190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150aa573d6000803e3d6000fd5b505b600060038190556005558151156150c7576150c782826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561510457600080fd5b505af1158015615118573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516057fe5b9060005260206000209060040201600301549050600060018080549050039050600161518a6130a3565b51116151bf5760006001858154811061519f57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516151f89190618ed8565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153e5576001816001018154811061523957fe5b90600052602060002090600402016001828154811061525457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061531557fe5b9060005260206000209060160201600b828154811061533057fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615387938386019390821615610100026000190190911604617b7e565b5061539a60038281019084016013617bf3565b509050508060010160046000600184815481106153b357fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161521b565b5060018054806153f157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061544457fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154766002830182617b1a565b615484600383016000617c1d565b50509055600081838161549357fe5b04905080156155075760015460005b81811015615504576154db83600183815481106154bb57fe5b90600052602060002090600402016003015461622b90919063ffffffff16565b600182815481106154e857fe5b60009182526020909120600360049092020101556001016154a2565b50505b50600195945050505050565b6060806000808080806155246131ad565b6001549091505b801561575357600181039250600b838154811061554457fe5b600091825260209091206001601690920201015460ff166155645761574a565b6001838154811061557157fe5b60009182526020909120600490910201546001600160a01b03169450615598858484613aac565b9350836155a45761574a565b60405163436aa28360e11b81526000908190612002906386d54506906155ce908a906004016181eb565b60206040518083038186803b1580156155e657600080fd5b505afa1580156155fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061561e9190617e5b565b90506001600160a01b038116156156a7576040516302ceee9160e11b81526120029063059ddd22906156549084906004016181eb565b60206040518083038186803b15801561566c57600080fd5b505afa158015615680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156a49190617e5b565b91505b60005b8c5181101561574657876001600160a01b03168d82815181106156c957fe5b6020026020010151600001516001600160a01b031614806157125750826001600160a01b03168d82815181106156fb57fe5b6020026020010151600001516001600160a01b0316145b1561573e5760018d828151811061572557fe5b6020908102919091010151901515608090910152615746565b6001016156aa565b5050505b6000190161552b565b5060005b89518110156157c05789818151811061576c57fe5b602002602001015160800151806157ac575060006001600160a01b03168a828151811061579557fe5b6020026020010151600001516001600160a01b0316145b156157b8578560010195505b600101615757565b50885185106158a85760408051600180825281830190925290816020015b6157e6617ae5565b8152602001906001900390816157de575050604080516001808252818301909252919850602082015b606081526020019060019003908161580f5790505095508860008151811061583357fe5b60200260200101518760008151811061584857fe5b60200260200101819052508760008151811061586057fe5b60200260200101518660008151811061587557fe5b602002602001018190525060008760008151811061588f57fe5b60209081029190910101519015156080909101526159ed565b848951036040519080825280602002602001820160405280156158e557816020015b6158d2617ae5565b8152602001906001900390816158ca5790505b5096508489510360405190808252806020026020018201604052801561591f57816020015b606081526020019060019003908161590a5790505b5095506000915060005b89518110156159eb5789818151811061593e57fe5b602002602001015160800151158015615981575060006001600160a01b03168a828151811061596957fe5b6020026020010151600001516001600160a01b031614155b156159e35789818151811061599257fe5b60200260200101518884815181106159a657fe5b60200260200101819052508881815181106159bd57fe5b60200260200101518784815181106159d157fe5b60200260200101819052508260010192505b600101615929565b505b50505050505b9250929050565b600154825160005b82811015615b17576001615a14617ae5565b60018381548110615a2157fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615aeb57878181518110615ab157fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ae35760009250615aeb565b600101615a9d565b508115615b0d5780516001600160a01b03166000908152600460205260408120555b5050600101615a02565b5080821115615bd657805b82811015615bd4576001805480615b3557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b8857fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bba6002830182617b1a565b615bc8600383016000617c1d565b50509055600101615b22565b505b6000818310615be55781615be7565b825b905060005b81811015615f8b57615c99868281518110615c0357fe5b602002602001015160018381548110615c1857fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617020565b615e4d578060010160046000888481518110615cb157fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615ced57fe5b602002602001015160018281548110615d0257fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dbd57fe5b6020026020010151600b8281548110615dd257fe5b90600052602060002090601602016002019080519060200190615df6929190617a1a565b506000600b8281548110615e0657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e3757fe5b6000918252602090912060169091020155615f83565b858181518110615e5957fe5b60200260200101516060015160018281548110615e7257fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f38858281518110615eb657fe5b6020026020010151600b8381548110615ecb57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8357848181518110615f4857fe5b6020026020010151600b8281548110615f5d57fe5b90600052602060002090601602016002019080519060200190615f81929190617a1a565b505b600101615bec565b508282111561616357615f9c6179eb565b835b8381101561616057858181518110615fb257fe5b602002602001015182604001819052506001878281518110615fd057fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b8054928301815590935284516016909102600080516020618fe58339815191528101918255858301516000805160206196148339815191528201805491151560ff19909216919091179055928501518051869492936161069360008051602061900583398151915201920190617a1a565b50606082015161611c9060038301906013617a94565b505050806001016004600089848151811061613357fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615f9e565b50505b61616b61707c565b616173617264565b6000600981905560015493505b838110156161e1576000600b828154811061619757fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161c857fe5b6000918252602090912060169091020155600101616180565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617452565b60008282018381101561115e5760405162461bcd60e51b8152600401610e1290618613565b60015481516040805182815260208084028201019091526060929190839082801561628f57816020015b606081526020019060019003908161627a5790505b50600b5490915083146162a6579250611d15915050565b60005b828110156163b557600b6001600460008985815181106162c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106162f957fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163915780601f1061636657610100808354040283529160200191616391565b820191906000526020600020905b81548152906001019060200180831161637457829003601f168201915b50505050508282815181106163a257fe5b60209081029190910101526001016162a9565b50949350505050565b60005b8281101561650b57600082878388016040516020016163e19291906181dd565b6040516020818303038152906040528051906020012060001c8161640157fe5b06905080850182870114616502576000898388018151811061641f57fe5b602002602001015190506060898489018151811061643957fe5b602002602001015190508a8388018151811061645157fe5b60200260200101518b858a018151811061646757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061649657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164c457fe5b60200260200101518a858a01815181106164da57fe5b6020026020010181905250808a848901815181106164f457fe5b602002602001018190525050505b506001016163c1565b5050505050505050565b600980546001908101909155600b80548390811061652f57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061656557fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165c091906181c1565b60405160208183030381529060405280519060200120836040516020016165e791906181c1565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166275760009250616665565b600160208701838101602088015b6002848385100114156166605780518351146166545760009650600093505b60209283019201616635565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061669857506000199050611d15565b6001810390506000600182815481106166ad57fe5b90600052602060002090600402016003015490506000600183815481106166d057fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616729908590618ed8565b60405180910390a28061674157829350505050611d15565b600081838161674c57fe5b04905080156167e85760005b8481101561679a5761677182600183815481106154bb57fe5b6001828154811061677e57fe5b6000918252602090912060036004909202010155600101616758565b50600180549085015b818110156167e5576167bc83600183815481106154bb57fe5b600182815481106167c957fe5b60009182526020909120600360049092020101556001016167a3565b50505b5091949350505050565b60008261680157506000611dc5565b8282028284828161680e57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189e2565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061747e565b616876617c2c565b506040805180820190915281518152602082810190820152919050565b61689b617b5e565b6168a4826174b5565b6168ad57600080fd5b60006168bc83602001516174ef565b60208085015160408051808201909152868152920190820152915050919050565b60006168e7617c2c565b505080518051602091820151919092015191011190565b616906617c2c565b61690f826168dd565b61691857600080fd5b6020820151600061692882617552565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696157508151602110155b61696a57600080fd5b600061697983602001516174ef565b9050808360000151101561699f5760405162461bcd60e51b8152600401610e1290618bf0565b8251602080850151830180519284900392918310156163b557506020919091036101000a90049392505050565b60606169d7826174b5565b6169e057600080fd5b60006169eb83617633565b9050606081604051908082528060200260200182016040528015616a2957816020015b616a16617c2c565b815260200190600190039081616a0e5790505b5090506000616a3b85602001516174ef565b60208601510190506000805b84811015616a9257616a5883617552565b9150604051806040016040528083815260200184815250848281518110616a7b57fe5b602090810291909101015291810191600101616a47565b509195945050505050565b616aa5617ae5565b60606000616ab1617ae5565b6060616abb617b5e565b616ac487616893565b90506000805b616ad3836168dd565b15616ba85780616afe57616aee616ae9846168fe565b61768f565b6001600160a01b03168552616ba0565b8060011415616b2657616b13616ae9846168fe565b6001600160a01b03166020860152616ba0565b8060021415616b4e57616b3b616ae9846168fe565b6001600160a01b03166040860152616ba0565b8060031415616b7a57616b63613dc1846168fe565b6001600160401b0316606086015260019150616ba0565b8060041415616b9b57616b94616b8f846168fe565b6176a9565b9350616ba0565b616ba8565b600101616aca565b50929791965091945092505050565b6060611dc5616bc583617719565b6177ff565b6060815160001415616beb5750604080516000815260208101909152611d15565b606082600081518110616bfa57fe5b602002602001015190506000600190505b8351811015616c3b57616c3182858381518110616c2457fe5b6020026020010151617851565b9150600101616c0b565b5061115e616c4e825160c060ff166178ce565b82617851565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616c9457600080fd5b505afa158015616ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ccc9190618096565b90508085518851011015616ce1575083518651015b606081604051908082528060200260200182016040528015616d1d57816020015b616d0a617ae5565b815260200190600190039081616d025790505b509050606082604051908082528060200260200182016040528015616d5657816020015b6060815260200190600190039081616d415790505b50905060008060005b8b51831080616d6e5750895182105b8015616d7957508581105b1561700e578b51831415616de957898281518110616d9357fe5b6020026020010151858281518110616da757fe5b6020026020010181905250888281518110616dbe57fe5b6020026020010151848281518110616dd257fe5b602090810291909101015260019182019101616d5f565b8951821415616e54578b8381518110616dfe57fe5b6020026020010151858281518110616e1257fe5b60200260200101819052508a8381518110616e2957fe5b6020026020010151848281518110616e3d57fe5b602090810291909101015260019283019201616d5f565b898281518110616e6057fe5b6020026020010151606001516001600160401b03168c8481518110616e8157fe5b6020026020010151606001516001600160401b03161115616efd578b8381518110616ea857fe5b6020026020010151858281518110616ebc57fe5b60200260200101819052508a8381518110616ed357fe5b6020026020010151848281518110616ee757fe5b6020026020010181905250826001019250617006565b898281518110616f0957fe5b6020026020010151606001516001600160401b03168c8481518110616f2a57fe5b6020026020010151606001516001600160401b03161015616fa657898281518110616f5157fe5b6020026020010151858281518110616f6557fe5b6020026020010181905250888281518110616f7c57fe5b6020026020010151848281518110616f9057fe5b6020026020010181905250816001019150617006565b898281518110616fb257fe5b6020026020010151600001516001600160a01b03168c8481518110616fd357fe5b6020026020010151600001516001600160a01b03161015616ffa578b8381518110616ea857fe5b898281518110616d9357fe5b600101616d5f565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561705a575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170c757805b828110156170c557601280548061709f57fe5b6001900381819060005260206000200160006170bb9190617b1a565b905560010161708c565b505b60008183106170d657816170d8565b825b905060005b818110156171f057617195601282815481106170f557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171835780601f1061715857610100808354040283529160200191617183565b820191906000526020600020905b81548152906001019060200180831161716657829003601f168201915b50505050506013838154811061341857fe5b6171e857601381815481106171a657fe5b90600052602060002001601282815481106171bd57fe5b9060005260206000200190805460018160011615610100020316600290046171e6929190617b7e565b505b6001016170dd565b5082821115610e3257825b8281101561725e5760126013828154811061721257fe5b6000918252602080832084546001818101875595855291909320929091018054617255949390920192909160026101009282161592909202600019011604617b7e565b506001016171fb565b50505050565b601354600b54808211156172af57805b828110156172ad57601380548061728757fe5b6001900381819060005260206000200160006172a39190617b1a565b9055600101617274565b505b60008183106172be57816172c0565b825b905060005b818110156173df5761737d601382815481106172dd57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561736b5780601f106173405761010080835404028352916020019161736b565b820191906000526020600020905b81548152906001019060200180831161734e57829003601f168201915b5050505050600b8381548110615ecb57fe5b6173d757600b818154811061738e57fe5b9060005260206000209060160201600201601382815481106173ac57fe5b9060005260206000200190805460018160011615610100020316600290046173d5929190617b7e565b505b6001016172c5565b5082821115610e3257825b8281101561725e576013600b828154811061740157fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461744995939094019390926000199082161561010002011604617b7e565b506001016173ea565b600081848411156174765760405162461bcd60e51b8152600401610e12919061837e565b505050900390565b6000818361749f5760405162461bcd60e51b8152600401610e12919061837e565b5060008385816174ab57fe5b0495945050505050565b80516000906174c657506000611d15565b6020820151805160001a9060c08210156174e557600092505050611d15565b5060019392505050565b8051600090811a6080811015617509576000915050611d15565b60b8811080617524575060c08110801590617524575060f881105b15617533576001915050611d15565b60c08110156175475760b519019050611d15565b60f519019050611d15565b80516000908190811a608081101561756d576001915061762c565b60b881101561758257607e198101915061762c565b60c08110156175d357600060b78203600186019550806020036101000a8651049150600181018201935050808310156175cd5760405162461bcd60e51b8152600401610e129061892f565b5061762c565b60f88110156175e85760be198101915061762c565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561762a5760405162461bcd60e51b8152600401610e129061892f565b505b5092915050565b805160009061764457506000611d15565b6000809050600061765884602001516174ef565b602085015185519181019250015b808210156176865761767782617552565b82019150826001019250617666565b50909392505050565b80516000906015146176a057600080fd5b611dc58261694c565b80516060906176b757600080fd5b60006176c683602001516174ef565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156176fd576020820181803683370190505b50905060008160200190506163b58487602001510182856179a0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661775d57506018617781565b6fffffffffffffffffffffffffffffffff19841661777d57506010617781565b5060005b60208110156177b75781818151811061779657fe5b01602001516001600160f81b031916156177af576177b7565b600101617781565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177ec576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178315750607f60f81b8260008151811061781f57fe5b01602001516001600160f81b03191611155b1561783d575080611d15565b611dc561784f8351608060ff166178ce565b835b6060806040519050835180825260208201818101602087015b8183101561788257805183526020928301920161786a565b50855184518101855292509050808201602086015b818310156178af578051835260209283019201617897565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106178f85760405162461bcd60e51b8152600401610e129061877a565b604080516001808252818301909252606091602082018180368337019050509050603784116179525782840160f81b8160008151811061793457fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061795d85617719565b90508381510160370160f81b8260008151811061797657fe5b60200101906001600160f81b031916908160001a9053506179978282617851565b95945050505050565b806179aa57610e32565b5b602081106179ca578251825260209283019290910190601f19016179ab565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a15617c46565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a5b57805160ff1916838001178555617a88565b82800160010185558215617a88579182015b82811115617a88578251825591602001919060010190617a6d565b506131e8929150617c65565b8260138101928215617a885791602002820182811115617a88578251825591602001919060010190617a6d565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b405750611f2d565b601f016020900490600052602060002090810190611f2d9190617c65565b6040518060400160405280617b71617c2c565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bb75780548555617a88565b82800160010185558215617a8857600052602060002091601f016020900482015b82811115617a88578254825591600101919060010190617bd8565b8260138101928215617a885791820182811115617a88578254825591600101919060010190617bd8565b50611f2d906013810190617c65565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c6b565b8035611dc581618faf565b60008083601f840112617c9b578182fd5b5081356001600160401b03811115617cb1578182fd5b60208301915083602080830285010111156159f357600080fd5b6000601f8381840112617cdc578182fd5b8235617cef617cea82618f64565b618f3e565b818152925060208084019085810160005b84811015617d81578135880189603f820112617d1b57600080fd5b838101356001600160401b03811115617d3357600080fd5b617d44818901601f19168601618f3e565b81815260408c81848601011115617d5a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d00565b50505050505092915050565b600082601f830112617d9d578081fd5b8135617dab617cea82618f64565b818152915060208083019084810181840286018201871015617dcc57600080fd5b6000805b85811015617d815782356001600160401b0381168114617dee578283fd5b85529383019391830191600101617dd0565b60008083601f840112617e11578182fd5b5081356001600160401b03811115617e27578182fd5b6020830191508360208285010111156159f357600080fd5b600060208284031215617e50578081fd5b813561115e81618faf565b600060208284031215617e6c578081fd5b815161115e81618faf565b60008060008060408587031215617e8c578283fd5b84356001600160401b0380821115617ea2578485fd5b617eae88838901617c8a565b90965094506020870135915080821115617ec6578384fd5b50617ed387828801617c8a565b95989497509550505050565b600080600060608486031215617ef3578283fd5b83356001600160401b0380821115617f09578485fd5b81860187601f820112617f1a578586fd5b80359250617f2a617cea84618f64565b80848252602080830192508084018b828389028701011115617f4a57898afd5b8994505b86851015617f7457617f608c82617c7f565b845260019490940193928101928101617f4e565b509097508801359350505080821115617f8b578384fd5b617f9787838801617d8d565b93506040860135915080821115617fac578283fd5b50617fb986828701617ccb565b9150509250925092565b600060208284031215617fd4578081fd5b8151801515811461115e578182fd5b60008060208385031215617ff5578182fd5b82356001600160401b0381111561800a578283fd5b61801685828601617e00565b90969095509350505050565b60008060008060408587031215618037578384fd5b84356001600160401b038082111561804d578586fd5b61805988838901617e00565b90965094506020870135915080821115618071578384fd5b50617ed387828801617e00565b60006020828403121561808f578081fd5b5035919050565b6000602082840312156180a7578081fd5b5051919050565b600080604083850312156180c0578182fd5b505080516020909101519092909150565b6000806000604084860312156180e5578081fd5b833560ff811681146180f5578182fd5b925060208401356001600160401b0381111561810f578182fd5b61811b86828701617e00565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181605781516001600160a01b03168752958201959082019060010161813b565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181ad816020860160208601618f83565b601f01601f19169290920160200192915050565b600082516181d3818460208701618f83565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618128565b60006040825261829c6040830185618128565b602083820381850152818551808452828401915082838202850101838801865b838110156182ea57601f198784030185526182d8838351618195565b948601949250908501906001016182bc565b50909998505050505050505050565b60006080825261830c6080830187618128565b828103602084810191909152865180835287820192820190845b8181101561834257845183529383019391830191600101618326565b505084810360408601526183568188618128565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e6020830184618195565b6000604082526183a560408301868861816b565b82810360208401526183b881858761816b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179976060830184618195565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff851682526040602083015261799760408301848661816b565b6040518181016001600160401b0381118282101715618f5c57600080fd5b604052919050565b60006001600160401b03821115618f79578081fd5b5060209081020190565b60005b83811015618f9e578181015183820152602001618f86565b8381111561725e5750506000910152565b6001600160a01b0381168114611f2d57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbbf905ec80f905e8f846942a7cdd959bfe8d9487b2a43b33565295a698f7e294b6a7edd747c0554875d3fc531d19ba1497992c5e941ff80f3f7f110ffd8920a3ac38fdef318fe94a3f86048c27395000f846946488aa4d1955ee33403f8ccb1d4de5fb97c7ade294220f003d8bdfaadf52aa1e55ae4cc485e6794875941a87e90e440a39c99aa9cb5cea0ad6a3f0b2407b86048c27395000f846949ef9f4360c606c7ab4db26b016007d3ad0ab86a0946103af86a874b705854033438383c82575f25bc29418e2db06cbff3e3c5f856410a1838649e760175786048c27395000f84694ee01c3b1283aa067c58eab4709f85e99d46de5fe94ee4b9bfb1871c64e2bcabb1dc382dc8b7c4218a29415904ab26ab0e99d70b51c220ccdcccabee6e29786048c27395000f84694685b1ded8013785d6623cc18d214320b6bb6475994a20ef4e5e4e7e36258dbf51f4d905114cb1b34bc9413e39085dc88704f4394d35209a02b1a9520320c86048c27395000f8469478f3adfc719c99674c072166708589033e2d9afe9448a30d5eaa7b64492a160f139e2da2800ec3834e94055838358c29edf4dcc1ba1985ad58aedbb6be2b86048c27395000f84694c2be4ec20253b8642161bc3f444f53679c1f3d479466f50c616d737e60d7ca6311ff0d9c434197898a94d1d678a2506eeaa365056fe565df8bc8659f28b086048c27395000f846942f7be8361c80a4c1e7e9aaf001d0877f1cfde218945f93992ac37f3e61db2ef8a587a436a161fd210b94ecbc4fb1a97861344dad0867ca3cba2b860411f086048c27395000f84694ce2fd7544e0b2cc94692d4a704debef7bcb613289444abc67b4b2fba283c582387f54c9cba7c34bafa948acc2ab395ded08bb75ce85bf0f95ad2abc51ad586048c27395000f84694b8f7166496996a7da21cf1f1b04d9b3e26a3d077946770572763289aac606e4f327c2f6cc1aa3b3e3b94882d745ed97d4422ca8da1c22ec49d880c4c097286048c27395000f846942d4c407bbe49438ed859fe965b140dcf1aab71a9943ad0939e120f33518fbba04631afe7a3ed6327b194b2bbb170ca4e499a2b0f3cc85ebfa6e8c4dfcbea86048c27395000f846946bbad7cf34b5fa511d8e963dbba288b1960e75d694853b0f6c324d1f4e76c8266942337ac1b0af1a229442498946a51ca5924552ead6fc2af08b94fcba648601d1a94a2000f846944430b3230294d12c6ab2aac5c2cd68e80b16b581947b107f4976a252a6939b771202c28e64e03f52d694795811a7f214084116949fc4f53cedbf189eeab28601d1a94a2000f84694ea0a6e3c511bbd10f4519ece37dc24887e11b55d946811ca77acfb221a49393c193f3a22db829fcc8e9464feb7c04830dd9ace164fc5c52b3f5a29e5018a8601d1a94a2000f846947ae2f5b9e386cd1b50a4550696d957cb4900f03a94e83bcc5077e6b873995c24bac871b5ad856047e19464e48d4057a90b233e026c1041e6012ada897fe88601d1a94a2000f8469482012708dafc9e1b880fd083b32182b869be8e09948e5adc73a2d233a1b496ed3115464dd6c7b887509428b383d324bc9a37f4e276190796ba5a8947f5ed8601d1a94a2000f8469422b81f8e175ffde54d797fe11eb03f9e3bf75f1d94a1c3ef7ca38d8ba80cce3bfc53ebd2903ed21658942767f7447f7b9b70313d4147b795414aecea54718601d1a94a2000f8469468bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d94675cfe570b7902623f47e7f59c9664b5f5065dcf94d84f0d2e50bcf00f2fc476e1c57f5ca2d57f625b8601d1a94a2000f846948c4d90829ce8f72d0163c1d5cf348a862d5506309485c42a7b34309bee2ed6a235f86d16f059deec5894cc2cedc53f0fa6d376336efb67e43d167169f3b78601d1a94a2000f8469435e7a025f4da968de7e4d7e4004197917f4070f194b1182abaeeb3b4d8eba7e6a4162eac7ace23d57394c4fd0d870da52e73de2dd8ded19fe3d26f43a1138601d1a94a2000f84694d6caa02bbebaebb5d7e581e4b66559e635f805ff94c07335cf083c1c46a487f0325769d88e163b653694efaff03b42e41f953a925fc43720e45fb61a19938601d1a94a20000175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", + Code: feynman.MainnetValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d56565b60405180910390f35b610388610626565b6040516103779190613534565b6103a86103a336600461346a565b61062c565b604051610377919061356c565b6103bd610692565b6040516103779190613561565b6103dd6103d8366004613181565b61069b565b60405161037793929190613d3e565b6103ff6103fa3660046132c7565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d27565b61038861042c36600461343a565b610a1f565b61044461043f366004613181565b610a46565b604051610377929190613d30565b610411610a9d565b610462610aa3565b6040516103779190613d67565b610388610aa8565b61047f610aae565b6040516103779190613d18565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613181565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461346a565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131b9565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461331e565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461346a565b611332565b6103ff6105c1366004613181565b6113a3565b6103ff6105d4366004613387565b611812565b610388611df1565b610411611df7565b610388611dfc565b6103ff611e02565b610462611e3e565b610388611e43565b610462611e49565b6103ff611e4e565b610388612297565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bbb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613661565b60405162461bcd60e51b815260040161064f90613cac565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613661565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b19565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f579050509050610760603861229d565b8160008151811061076d57fe5b6020026020010181905250610781836122b8565b8160018151811061078e57fe5b60200260200101819052506107a2826122b8565b816002815181106107af57fe5b602002602001018190525060606107c58261230e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613534565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610889919061319d565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613631565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135d2565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613534565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613534565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613548565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613452565b505050505050505050565b61200581565b61708081565b60018181548110610a2c57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a51612f68565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b603881565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138a4565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613661565b61200063f7a251d7600b610b268461239f565b60006040518463ffffffff1660e01b8152600401610b4693929190613d75565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e52833981519152600083604051610bcf92919061357f565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bbb565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613661565b610c5d612f8b565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246892505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d56565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d56565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138a4565b610d5c82826124e8565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613661565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a08565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b6020820152915061269b9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613830565b604080516020601f8401819004810282018101909252828152600091610e9c918585808385018382808284376000920191909152506126f592505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b76565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b6020820152915061269b9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a56565b604080516020601f8401819004810282018101909252828152600091610f9d918585808385018382808284376000920191909152506126f592505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061371a565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b6020820152915061269b9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f90613990565b604080516020601f84018190048102820181019092528281526000916110a6918585808385018382808284376000920191909152506126f592505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613a98565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c61736800000000000000006020820152915061269b9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f9061374f565b604080516020601f84018190048102820181019092528281526111b291908484808385018382808284376000920191909152506126fa92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b6020820152915061269b9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f9061391f565b604080516020601f8401819004810282018101909252828152600091611292918585808385018382808284376000920191909152506126f592505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f90613698565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c57565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135a0565b60405180910390a150505050565b609681565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bbb565b60005460ff166113755760405162461bcd60e51b815260040161064f90613661565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c0a565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613661565b60035443116114055760405162461bcd60e51b815260040161064f90613ce3565b3a156114235760405162461bcd60e51b815260040161064f90613962565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613534565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132a7565b6114a15761180b565b6114a9612f68565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613534565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613534565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a919061319d565b6001600160a01b03161461166b576116668282602001516124e8565b611734565b61200063f7a251d7600b61167e8561239f565b60006040518463ffffffff1660e01b815260040161169e93929190613d75565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e5283398151915283602001518360405161172a92919061357f565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613534565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613661565b60075460ff166118565760405162461bcd60e51b815260040161064f906135fc565b6006546118635760146006555b600854611871576170806008555b60085481516040015143910111801561189557504360085482602001516040015101115b6118b15760405162461bcd60e51b815260040161064f90613c7e565b8060200151602001518160000151602001511480156118df5750806020015160600151816000015160600151145b156118fc5760405162461bcd60e51b815260040161064f90613877565b80516040810151905110801561191b5750602081015160408101519051105b6119375760405162461bcd60e51b815260040161064f906137f9565b60208101515181515110801561195c5750806000015160400151816020015160400151105b8061198757508051516020820151511080156119875750806020015160400151816000015160400151105b806119a15750806020015160400151816000015160400151145b6119bd5760405162461bcd60e51b815260040161064f906136e3565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e6919060040161356c565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906132a7565b611a525760405162461bcd60e51b815260040161064f906139d9565b611a6481600001518260400151612722565b8015611a7d5750611a7d81602001518260400151612722565b611a995760405162461bcd60e51b815260040161064f9061379a565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1391908101906131e4565b9150915060005b8151811015611c5057611b44828281518110611b3257fe5b602002602001015185604001516128fa565b15611c48576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7c9033908590600401613548565b602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190613452565b506110006001600160a01b03166335409f7f858481518110611bec57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c109190613534565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b5050505050611c50565b600101611b1a565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7c9160040161356c565b60206040518083038186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061319d565b6001600160a01b031614611d3a576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d03919060040161356c565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d5a866040015161295e565b60006040518463ffffffff1660e01b8152600401611d7a93929190613d75565b600060405180830381600087803b158015611d9457600080fd5b505af1158015611da8573d6000803e3d6000fd5b505050506000611dbd84604001516000612999565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e255760405162461bcd60e51b815260040161064f90613ae2565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e6f5760405162461bcd60e51b815260040161064f906138a4565b60005460ff16611e915760405162461bcd60e51b815260040161064f90613661565b600154611e9d57612295565b600154600090600019015b808211612269576000805b82841015611fcc57611ec3612f68565b6002600060018781548110611ed457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb657600460055481611f4157fe5b04816020015103816020018181525050806002600060018881548110611f6357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc0565b6001925050611fcc565b50836001019350611eb3565b82841161216357611fdb612f68565b6002600060018681548110611fec57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d45760046005548161205957fe5b0481602001510381602001818152505080600260006001878154811061207b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121639050565b60026000600186815481106120e557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121565750612163565b5060001990920191611fcc565b81801561216d5750805b1561224c57600260006001868154811061218357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121ca57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612258575050612269565b505060019091019060001901611ea8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b06122ab836129b5565b6122b8565b90505b919050565b6060815160011480156122ea5750607f60f81b826000815181106122d857fe5b01602001516001600160f81b03191611155b156122f65750806122b3565b6122b06123088351608060ff16612a9b565b83612b6d565b606081516000141561232f57506040805160008152602081019091526122b3565b60608260008151811061233e57fe5b602002602001015190506000600190505b835181101561237f576123758285838151811061236857fe5b6020026020010151612b6d565b915060010161234f565b50612398612392825160c060ff16612a9b565b82612b6d565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ba5790505090506123e3836001600160a01b0316612bea565b816000815181106123f057fe5b60200260200101819052506124044361229d565b8160018151811061241157fe5b6020908102919091010152612426603861229d565b8160028151811061243357fe5b60200260200101819052506124474261229d565b8160038151811061245457fe5b60200260200101819052506123988161230e565b612470612f8b565b600061247a612f8b565b612482612f9d565b61249361248e86612c0d565b612c32565b90506000805b6124a283612c7c565b156124db57806124ce576124bd6124b884612c9d565b612ceb565b63ffffffff168452600191506124d3565b6124db565b600101612499565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061250d908590600401613534565b600060405180830381600087803b15801561252757600080fd5b505af1925050508015612538575060015b610d5c576040516000815260443d1015612554575060006125f1565b60046000803e60005160e01c6308c379a081146125755760009150506125f1565b60043d036004833e81513d602482011167ffffffffffffffff821117156125a1576000925050506125f1565b808301805167ffffffffffffffff8111156125c35760009450505050506125f1565b8060208301013d86018111156125e1576000955050505050506125f1565b601f01601f191660405250925050505b806125fc5750612633565b826001600160a01b0316600080516020613e52833981519152838360405161262592919061357f565b60405180910390a250612696565b3d80801561265d576040519150601f19603f3d011682016040523d82523d6000602084013e612662565b606091505b50826001600160a01b0316600080516020613e52833981519152838360405161268c92919061357f565b60405180910390a2505b610d5c565b6000816040516020016126ae9190613518565b60405160208183030381529060405280519060200120836040516020016126d59190613518565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561271457600191508161271a565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161273e575050604080516020808252818301909252919250606091908082018180368337019050509050612783856000015161229d565b8260008151811061279057fe5b60200260200101819052506127ab6020866020015183612d6d565b6127b4816122b8565b826001815181106127c157fe5b60200260200101819052506127d9856040015161229d565b826002815181106127e657fe5b60200260200101819052506128016020866060015183612d6d565b61280a816122b8565b8260038151811061281757fe5b602002602001018190525061283d60206128308461230e565b8051906020012083612d6d565b6040805160b080825260e0820190925260609160208201818036833701905050905061286d818360006020612d7d565b61287f81876080015160206060612d7d565b61288d818660806030612d7d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128ca57600080fd5b5060016128d8826000612dd0565b60ff16146128ed5760009450505050506126ef565b5060019695505050505050565b8151815160009160019181148083146129165760009250612954565b600160208701838101602088015b60028483851001141561294f5780518351146129435760009650600093505b60209283019201612924565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129795790505090506123e3836122b8565b600081602001835110156129ac57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166129f957506018612a1d565b6fffffffffffffffffffffffffffffffff198416612a1957506010612a1d565b5060005b6020811015612a5357818181518110612a3257fe5b01602001516001600160f81b03191615612a4b57612a53565b600101612a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ac55760405162461bcd60e51b815260040161064f906137d1565b60408051600180825281830190925260609160208201818036833701905050905060378411612b1f5782840160f81b81600081518110612b0157fe5b60200101906001600160f81b031916908160001a90535090506126ef565b6060612b2a856129b5565b90508381510160370160f81b82600081518110612b4357fe5b60200101906001600160f81b031916908160001a905350612b648282612b6d565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612b9e578051835260209283019201612b86565b50855184518101855292509050808201602086015b81831015612bcb578051835260209283019201612bb3565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b8318601482015260348101909152606090612398816122b8565b612c15612fbd565b506040805180820190915281518152602082810190820152919050565b612c3a612f9d565b612c4382612dec565b612c4c57600080fd5b6000612c5b8360200151612e26565b60208085015160408051808201909152868152920190820152915050919050565b6000612c86612fbd565b505080518051602091820151919092015191011190565b612ca5612fbd565b612cae82612c7c565b612cb757600080fd5b60208201516000612cc782612e89565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d0057508151602110155b612d0957600080fd5b6000612d188360200151612e26565b90508083600001511015612d3e5760405162461bcd60e51b815260040161064f90613b3f565b825160208085015183018051928490039291831015612d6457826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612d9457fe5b602001015160f81c60f81b858480600101955081518110612db157fe5b60200101906001600160f81b031916908160001a905350600101612d80565b60008160010183511015612de357600080fd5b50016001015190565b8051600090612dfd575060006122b3565b6020820151805160001a9060c0821015612e1c576000925050506122b3565b5060019392505050565b8051600090811a6080811015612e405760009150506122b3565b60b8811080612e5b575060c08110801590612e5b575060f881105b15612e6a5760019150506122b3565b60c0811015612e7e5760b5190190506122b3565b60f5190190506122b3565b80516000908190811a6080811015612ea45760019150612f61565b60b8811015612eb957607e1981019150612f61565b60c0811015612f0a57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f045760405162461bcd60e51b815260040161064f906138f4565b50612f61565b60f8811015612f1f5760be1981019150612f61565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561271a5760405162461bcd60e51b815260040161064f906138f4565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fb0612fbd565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612fe7578081fd5b8151612ffa612ff582613dc8565b613da1565b818152915060208083019084810160005b84811015613070578151870188603f82011261302657600080fd5b83810151613036612ff582613de8565b81815260408b8184860101111561304c57600080fd5b61305b83888401838701613e0c565b5086525050928201929082019060010161300b565b505050505092915050565b60008083601f84011261308c578182fd5b50813567ffffffffffffffff8111156130a3578182fd5b6020830191508360208285010111156130bb57600080fd5b9250929050565b600082601f8301126130d2578081fd5b81356130e0612ff582613de8565b91508082528360208285010111156130f757600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613121578081fd5b61312b60a0613da1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561316957600080fd5b613175848285016130c2565b60808301525092915050565b600060208284031215613192578081fd5b813561239881613e3c565b6000602082840312156131ae578081fd5b815161239881613e3c565b600080604083850312156131cb578081fd5b82356131d681613e3c565b946020939093013593505050565b600080604083850312156131f6578182fd5b825167ffffffffffffffff8082111561320d578384fd5b81850186601f82011261321e578485fd5b8051925061322e612ff584613dc8565b80848252602080830192508084018a82838902870101111561324e578889fd5b8894505b8685101561327957805161326581613e3c565b845260019490940193928101928101613252565b508801519096509350505080821115613290578283fd5b5061329d85828601612fd7565b9150509250929050565b6000602082840312156132b8578081fd5b81518015158114612398578182fd5b600080604083850312156132d9578182fd5b823567ffffffffffffffff808211156132f0578384fd5b6132fc868387016130c2565b93506020850135915080821115613311578283fd5b5061329d858286016130c2565b60008060008060408587031215613333578182fd5b843567ffffffffffffffff8082111561334a578384fd5b6133568883890161307b565b9096509450602087013591508082111561336e578384fd5b5061337b8782880161307b565b95989497509550505050565b600060208284031215613398578081fd5b813567ffffffffffffffff808211156133af578283fd5b818401606081870312156133c1578384fd5b6133cb6060613da1565b92508035828111156133db578485fd5b6133e787828401613110565b8452506020810135828111156133fb578485fd5b61340787828401613110565b60208501525060408101358281111561341e578485fd5b61342a878284016130c2565b6040850152509195945050505050565b60006020828403121561344b578081fd5b5035919050565b600060208284031215613463578081fd5b5051919050565b60008060006040848603121561347e578081fd5b833560ff8116811461348e578182fd5b9250602084013567ffffffffffffffff8111156134a9578182fd5b6134b58682870161307b565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613504816020860160208601613e0c565b601f01601f19169290920160200192915050565b6000825161352a818460208701613e0c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239860208301846134ec565b60008382526040602083015261359860408301846134ec565b949350505050565b6000604082526135b46040830186886134c2565b82810360208401526135c78185876134c2565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613d9160608301856134ec565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dc057600080fd5b604052919050565b600067ffffffffffffffff821115613dde578081fd5b5060209081020190565b600067ffffffffffffffff821115613dfe578081fd5b50601f01601f191660200190565b60005b83811015613e27578181015183820152602001613e0f565b83811115613e36576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", + Code: feynman.MainnetSlashContract, }, { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113d9565b34801561081957600080fd5b506107776113df565b34801561082e57600080fd5b506106366113e4565b34801561084357600080fd5b506104d06113ef565b34801561085857600080fd5b506104d06113f5565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fb565b34801561089757600080fd5b50610636611416565b3480156108ac57600080fd5b5061077761141f565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611424565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118f9565b348015610a0257600080fd5b506107776118ff565b348015610a1757600080fd5b50610636611904565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190a565b348015610a5657600080fd5b506104d061198b565b348015610a6b57600080fd5b50610777611991565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611996565b348015610abf57600080fd5b506104d0611c46565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4c565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d94565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efd565b348015610bd157600080fd5b50610636611f83565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f8a565b348015610c1f57600080fd5b50610777612147565b348015610c3457600080fd5b5061063661214c565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612158565b348015610c8257600080fd5b506104d0612296565b348015610c9757600080fd5b506104d061229c565b348015610cac57600080fd5b506107776122a2565b348015610cc157600080fd5b506109cd6122a7565b348015610cd657600080fd5b506107776122b0565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b5565b348015610d3257600080fd5b506104d0612335565b348015610d4757600080fd5b506104d061233b565b348015610d5c57600080fd5b506104a26122a2565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612341565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e9565b348015610e7557600080fd5b50610636612869565b348015610e8a57600080fd5b50610636612873565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612879565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288b565b348015610f0557600080fd5b506104d06128a6565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ac565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297c565b348015610fda57600080fd5b506104d0612c50565b348015610fef57600080fd5b506104d0612c56565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5c565b34801561102e57600080fd5b50610486612cfc565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9c565b34801561107657600080fd5b50610777612dae565b34801561108b57600080fd5b50610777612db3565b3480156110a057600080fd5b50610777612db8565b3480156110b557600080fd5b506104d0612dbd565b3480156110ca57600080fd5b50610636612dc3565b3480156110df57600080fd5b50610636612dc9565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd7565b34801561112757600080fd5b506104d0612efe565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0492505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b603881565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146a576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b8685146114a85760405162461bcd60e51b815260040180806020018281038252603b815260200180615357603b913960400191505060405180910390fd5b8683146114e65760405162461bcd60e51b815260040180806020018281038252603f815260200180615269603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115325760405162461bcd60e51b81526004018080602001828103825260248152602001806151e56024913960400191505060405180910390fd5b6402540be4003406156115765760405162461bcd60e51b815260040180806020018281038252604081526020018061545a6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115a9578160200160208202803683370190505b50905060005b84811015611684576402540be4008b8b838181106115c957fe5b90506020020135816115d757fe5b06156116145760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a8603c913960400191505060405180910390fd5b6116398b8b8381811061162357fe5b905060200201358561302890919063ffffffff16565b93506116656402540be4008c8c8481811061165057fe5b9050602002013561308290919063ffffffff16565b82828151811061167157fe5b60209081029190910101526001016115af565b506001546116a99061169c908663ffffffff6130c416565b849063ffffffff61302816565b3410156116e75760405162461bcd60e51b81526004018080602001828103825260568152602001806154046056913960600191505060405180910390fd5b6116f7348463ffffffff61311d16565b9150611701615023565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c58461315f565b6117da876402540be40063ffffffff61308216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611838578181015183820152602001611820565b50505050905090810190601f1680156118655780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194c5760405162461bcd60e51b815260040180806020018281038252603381526020018061513d6033913960400191505060405180910390fd5b8115611983576040516120019083156108fc029084906000818181858888f19350505050158015611981573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119db576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361300014611a1b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a625760405162461bcd60e51b81526004018080602001828103825260358152602001806152096035913960400191505060405180910390fd5b60006221272160e91b8414611bcc576000848152600460205260409020546001600160a01b031680611ad5576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c41565b6001600160a01b038116600090815260026020526040902054611af8848261341a565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4357600080fd5b505afa158015611b57573d6000803e3d6000fd5b505050506040513d6020811015611b6d57600080fd5b50511015611bb9576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc58683858861345a565b5050611c3f565b611be1826402540be40063ffffffff6130c416565b905080471015611c2f576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3d8582848761345a565b505b505b505050565b61200381565b60005460ff16611c91576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361200014611cd15760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f492505050565b611c41565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd45760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b60006221272160e91b8314611e3f57506000828152600460205260409020546001600160a01b031680611e3f576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eaa576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3d5760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b62093a8081565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc457600080fd5b505afa158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50516001600160a01b0316331461204c576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b6000821161209a576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120f0576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219e576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33611005146121de5760405162461bcd60e51b815260040180806020018281038252602f815260200180615170602f913960400191505060405180910390fd5b60004783106121ed57476121ef565b825b9050670de0b6b3a764000081111561220b576000915050612290565b801561228d576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612247573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fb576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123815760405162461bcd60e51b815260040180806020018281038252602e815260200180615305602e913960400191505060405180910390fd5b602081146123d6576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124de576020820151670de0b6b3a7640000811180159061248557506402540be4008106155b6124d6576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612754565b61255287878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f64000000000000000000602082015291506135509050565b156125ee57604080516020601f87018190048102820181019092528581526000916125959188888083850183828082843760009201919091525061363792505050565b905062093a808111156125e6576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612754565b61265a87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b602082015291506135509050565b1561271757604080516020601f870181900481028201810190925285815260009161269d9188888083850183828082843760009201919091525061363792505050565b905068056bc75e2d631000008110156126e75760405162461bcd60e51b815260040180806020018281038252602281526020018061519f6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612754565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128295760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f1576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146129315760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363c92505050565b60085460ff16600214156129c8576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a40576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a99576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0c576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b505080915050612b9f565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6f57600080fd5b5087f1158015612b83573d6000803e3d6000fd5b50505050506040513d6020811015612b9a57600080fd5b505190505b80612bf1576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf4576040516120029083156108fc029084906000818181858888f19350505050158015612cea573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d54576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6757828160ff1681518110612e3b57fe5b01602001516001600160f81b03191615612e5a57816001019150612e5f565b612e67565b600101612e20565b5060608160ff166040519080825280601f01601f191660200182016040528015612e98576020820181803683370190505b50905060005b8260ff168160ff161015612ef457838160ff1681518110612ebb57fe5b602001015160f81c60f81b828260ff1681518110612ed557fe5b60200101906001600160f81b031916908160001a905350600101612e9e565b5095945050505050565b61100481565b6060612f0e61506f565b6000612f1984613733565b9150915080612f6f576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f7a83613872565b905063ffffffff81161561300e576040808401516020808601516001600160a01b03166000908152600290915291822054612fb59190613bd8565b9050612fbf6150a4565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300281613c11565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ced565b6000826130d357506000612290565b828202828482816130e057fe5b041461228d5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e46021913960400191505060405180910390fd5b600061228d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8f565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161317a575050835190915061319c90613de9565b816000815181106131a957fe5b60200260200101819052506131ca83602001516001600160a01b0316613dfc565b816001815181106131d757fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322257816020015b606081526020019060019003908161320d5790505b50905060005b8281101561326f576132508660400151828151811061324357fe5b6020026020010151613de9565b82828151811061325c57fe5b6020908102919091010152600101613228565b5061327981613e1f565b8360028151811061328657fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c757816020015b60608152602001906001900390816132b25790505b50905060005b8381101561331d576132fe876060015182815181106132e857fe5b60200260200101516001600160a01b0316613dfc565b82828151811061330a57fe5b60209081029190910101526001016132cd565b5061332781613e1f565b8460038151811061333457fe5b602002602001018190525060608360405190808252806020026020018201604052801561337557816020015b60608152602001906001900390816133605790505b50905060005b848110156133b557613396886080015182815181106132e857fe5b8282815181106133a257fe5b602090810291909101015260010161337b565b506133bf81613e1f565b856004815181106133cc57fe5b60200260200101819052506133ee8760a0015167ffffffffffffffff16613de9565b856005815181106133fb57fe5b602002602001018190525061340f85613e1f565b979650505050505050565b600060088211156134435761343c836007198401600a0a63ffffffff6130c416565b9050612290565b61228d836008849003600a0a63ffffffff61308216565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613491908463ffffffff61302816565b81554262093a80016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134fc6150cb565b600061350783613ea9565b91509150806135475760405162461bcd60e51b81526004018080602001828103825260248152602001806153336024913960400191505060405180910390fd5b611c4182614074565b6000816040516020018082805190602001908083835b602083106135855780518252601f199092019160209182019101613566565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f35780518252601f1990920191602091820191016135d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613644615023565b600061364f836144f8565b915091508061368f5760405162461bcd60e51b81526004018080602001828103825260248152602001806151c16024913960400191505060405180910390fd5b6136976150cb565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613718576136f5856040015182815181106136e757fe5b60200260200101518361341a565b8560400151828151811061370557fe5b60209081029190910101526001016136c7565b506080840151604083015260056060830152611c3d82614074565b61373b61506f565b600061374561506f565b61374d615102565b61375e6137598661475c565b614781565b90506000805b61376d836147cb565b15613865578061378f57613788613783846147ec565b61483a565b845261385d565b80600114156137bc576137a96137a4846147ec565b6148f1565b6001600160a01b0316602085015261385d565b80600214156137db576137d1613783846147ec565b604085015261385d565b8060031415613803576137f06137a4846147ec565b6001600160a01b0316606085015261385d565b806004141561382b576138186137a4846147ec565b6001600160a01b0316608085015261385d565b806005141561385857613840613783846147ec565b67ffffffffffffffff1660a08501526001915061385d565b613865565b600101613764565b5091935090915050915091565b60208101516000906001600160a01b03166139b6578160a0015167ffffffffffffffff164211156138a5575060016113b2565b81604001514710156138b9575060036113b2565b6138c28261490b565b61393757606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391d576040519150601f19603f3d011682016040523d82523d6000602084013e613922565b606091505b50509050806139355750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d4575060016113b2565b81516020808401516001600160a01b031660009081526003909152604090205414613a01575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a5157600080fd5b5086fa158015613a65573d6000803e3d6000fd5b50505050506040513d6020811015613a7c57600080fd5b50516040840151909150811015613a975750600390506113b2565b613aa08361490b565b613b5757600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1557600080fd5b5087f1158015613b29573d6000803e3d6000fd5b50505050506040513d6020811015613b4057600080fd5b5051905080613b555750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bfa5761343c836007198401600a0a63ffffffff61308216565b61228d836008849003600a0a63ffffffff6130c416565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c2c5750508351909150613c4e90613de9565b81600081518110613c5b57fe5b6020026020010181905250613c738360200151613de9565b81600181518110613c8057fe5b6020026020010181905250613ca183604001516001600160a01b0316613dfc565b81600281518110613cae57fe5b6020026020010181905250613ccc836060015163ffffffff16613de9565b81600381518110613cd957fe5b602002602001018190525061126281613e1f565b60008183613d795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3e578181015183820152602001613d26565b50505050905090810190601f168015613d6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8557fe5b0495945050505050565b60008184841115613de15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3e578181015183820152602001613d26565b505050900390565b6060612290613df783614a79565b614b5f565b60408051600560a21b831860148201526034810190915260609061126281614b5f565b6060815160001415613e4057506040805160008152602081019091526113b2565b606082600081518110613e4f57fe5b602002602001015190506000600190505b8351811015613e9057613e8682858381518110613e7957fe5b6020026020010151614bb1565b9150600101613e60565b50611262613ea3825160c060ff16614c2e565b82614bb1565b613eb16150cb565b6000613ebb6150cb565b613ec3615102565b613ecf6137598661475c565b90506000805b613ede836147cb565b156138655780613f0457613ef46137a4846147ec565b6001600160a01b0316845261406c565b8060011415613fa5576060613f20613f1b856147ec565b614d26565b90508051604051908082528060200260200182016040528015613f4d578160200160208202803683370190505b50602086015260005b8151811015613f9e57613f7b828281518110613f6e57fe5b602002602001015161483a565b86602001518281518110613f8b57fe5b6020908102919091010152600101613f56565b505061406c565b8060021415614047576060613fbc613f1b856147ec565b90508051604051908082528060200260200182016040528015613fe9578160200160208202803683370190505b50604086015260005b8151811015613f9e5761401782828151811061400a57fe5b60200260200101516148f1565b8660400151828151811061402757fe5b6001600160a01b0390921660209283029190910190910152600101613ff2565b80600314156138585761405c613783846147ec565b63ffffffff166060850152600191505b600101613ed5565b80516001600160a01b031661429e5760005b816020015151811015614298576000826040015182815181106140a557fe5b60200260200101516001600160a01b0316612710846020015184815181106140c957fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614111576040519150601f19603f3d011682016040523d82523d6000602084013e614116565b606091505b50509050806141d9577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415557fe5b60200260200101518560200151858151811061416d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428f565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420f57fe5b60200260200101518560200151858151811061422757fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614086565b506144f5565b60005b8160200151518110156144f357600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d657fe5b6020026020010151866020015186815181106142ee57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434557600080fd5b5087f1158015614359573d6000803e3d6000fd5b50505050506040513d602081101561437057600080fd5b505190508015614434577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b057fe5b6020026020010151856020015185815181106143c857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144ea565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446a57fe5b60200260200101518560200151858151811061448257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a1565b505b50565b614500615023565b600061450a615023565b614512615102565b61451e6137598661475c565b90506000805b61452d836147cb565b15613865578061454a57614543613783846147ec565b8452614754565b80600114156145725761455f6137a4846147ec565b6001600160a01b03166020850152614754565b8060021415614601576060614589613f1b856147ec565b905080516040519080825280602002602001820160405280156145b6578160200160208202803683370190505b50604086015260005b81518110156145fa576145d7828281518110613f6e57fe5b866040015182815181106145e757fe5b60209081029190910101526001016145bf565b5050614754565b8060031415614696576060614618613f1b856147ec565b90508051604051908082528060200260200182016040528015614645578160200160208202803683370190505b50606086015260005b81518110156145fa5761466682828151811061400a57fe5b8660600151828151811061467657fe5b6001600160a01b039092166020928302919091019091015260010161464e565b806004141561472b5760606146ad613f1b856147ec565b905080516040519080825280602002602001820160405280156146da578160200160208202803683370190505b50608086015260005b81518110156145fa576146fb82828151811061400a57fe5b8660800151828151811061470b57fe5b6001600160a01b03909216602092830291909101909101526001016146e3565b806005141561385857614740613783846147ec565b67ffffffffffffffff1660a0850152600191505b600101614524565b614764615122565b506040805180820190915281518152602082810190820152919050565b614789615102565b61479282614df7565b61479b57600080fd5b60006147aa8360200151614e31565b60208085015160408051808201909152868152920190820152915050919050565b60006147d5615122565b505080518051602091820151919092015191011190565b6147f4615122565b6147fd826147cb565b61480657600080fd5b6020820151600061481682614e94565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484f57508151602110155b61485857600080fd5b60006148678360200151614e31565b905080836000015110156148c2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e857826020036101000a820491505b50949350505050565b805160009060151461490257600080fd5b6122908261483a565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149445750600554155b156149865760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b45750808360400151105b156149c35760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a099163ffffffff61302816565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614abd57506018614ae1565b6fffffffffffffffffffffffffffffffff198416614add57506010614ae1565b5060005b6020811015614b1757818181518110614af657fe5b01602001516001600160f81b03191615614b0f57614b17565b600101614ae1565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b4c576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b915750607f60f81b82600081518110614b7f57fe5b01602001516001600160f81b03191611155b15614b9d5750806113b2565b612290614baf8351608060ff16614c2e565b835b6060806040519050835180825260208201818101602087015b81831015614be2578051835260209283019201614bca565b50855184518101855292509050808201602086015b81831015614c0f578051835260209283019201614bf7565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd85782840160f81b81600081518110614cba57fe5b60200101906001600160f81b031916908160001a9053509050612290565b6060614ce385614a79565b90508381510160370160f81b82600081518110614cfc57fe5b60200101906001600160f81b031916908160001a905350614d1d8282614bb1565b95945050505050565b6060614d3182614df7565b614d3a57600080fd5b6000614d4583614fc7565b9050606081604051908082528060200260200182016040528015614d8357816020015b614d70615122565b815260200190600190039081614d685790505b5090506000614d958560200151614e31565b60208601510190506000805b84811015614dec57614db283614e94565b9150604051806040016040528083815260200184815250848281518110614dd557fe5b602090810291909101015291810191600101614da1565b509195945050505050565b8051600090614e08575060006113b2565b6020820151805160001a9060c0821015614e27576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e4b5760009150506113b2565b60b8811080614e66575060c08110801590614e66575060f881105b15614e755760019150506113b2565b60c0811015614e895760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eaf5760019150614fc0565b60b8811015614ec457607e1981019150614fc0565b60c0811015614f3e57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f38576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fc0565b60f8811015614f535760be1981019150614fc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbe576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd8575060006113b2565b60008090506000614fec8460200151614e31565b602085015185519181019250015b8082101561501a5761500b82614e94565b82019150826001019250614ffa565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280615115615122565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a", + Code: feynman.MainnetTokenHubContract, }, { ContractAddr: common.HexToAddress(GovHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a610737565b61022961073d565b61036b610742565b6040805160ff9092168252519081900360200190f35b61024a610747565b61036b61074d565b610399610752565b6040805161ffff9092168252519081900360200190f35b61036b610757565b61024a61075c565b61024a610762565b61024a610768565b61036b61076e565b61036b610773565b61024a610778565b61036b61077e565b61024a610783565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b509092509050610789565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b031661081b565b61036b610906565b61022961090b565b61024a610910565b61024a610916565b61056161091c565b604080519115158252519081900360200190f35b61024a610925565b61024a61092b565b61022961074d565b61024a610931565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b509092509050610937565b61024a6109ae565b61024a6109b4565b61036b6109ba565b61024a6109bf565b61036b6109c5565b61024a6109ca565b606481565b61200181565b6060336120001461068a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b610692611638565b60006106d385858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109d092505050565b91509150806106ef576106e66064610a96565b92505050610730565b60006106fa83610b00565b905063ffffffff811661072157505060408051600081526020810190915291506107309050565b61072a81610a96565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b603881565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b33612000146107c95760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461085b5760405162461bcd60e51b81526004018080602001828103825260318152602001806116cc6031913960400191505060405180910390fd5b610863611638565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108fd81610b00565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116fd6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109d8611638565b60006109e2611638565b6109ea611662565b6109fb6109f686610ea1565b610ec6565b90506000805b610a0a83610f10565b15610a895780610a2c57610a25610a2084610f31565b610f7f565b8452610a81565b8060011415610a4b57610a41610a2084610f31565b6020850152610a81565b8060021415610a7c57610a65610a6084610f31565b610ff8565b6001600160a01b0316604085015260019150610a81565b610a89565b600101610a01565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610ab0579050509050610ad68363ffffffff16611018565b81600081518110610ae357fe5b6020026020010181905250610af78161102b565b9150505b919050565b6000610b0f82604001516110b5565b610b7b57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610afb565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610be8578181015183820152602001610bd0565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c48578181015183820152602001610c30565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c9657600080fd5b505af1925050508015610ca7575060015b610e99576040516000815260443d1015610cc357506000610d60565b60046000803e60005160e01c6308c379a08114610ce4576000915050610d60565b60043d036004833e81513d602482011167ffffffffffffffff82111715610d1057600092505050610d60565b808301805167ffffffffffffffff811115610d32576000945050505050610d60565b8060208301013d8601811115610d5057600095505050505050610d60565b601f01601f191660405250925050505b80610d6b5750610e0e565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578181015183820152602001610db2565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610afb565b3d808015610e38576040519150601f19603f3d011682016040523d82523d6000602084013e610e3d565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610dca578181015183820152602001610db2565b506000919050565b610ea9611682565b506040805180820190915281518152602082810190820152919050565b610ece611662565b610ed7826110bb565b610ee057600080fd5b6000610eef83602001516110f5565b60208085015160408051808201909152868152920190820152915050919050565b6000610f1a611682565b505080518051602091820151919092015191011190565b610f39611682565b610f4282610f10565b610f4b57600080fd5b60208201516000610f5b82611158565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f8d57600080fd5b6000610f9c83602001516110f5565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610fd3576020820181803683370190505b5090506000816020019050610fef84876020015101828561128b565b50949350505050565b805160009060151461100957600080fd5b611012826112d6565b92915050565b60606110126110268361138b565b611471565b606081516000141561104c5750604080516000815260208101909152610afb565b60608260008151811061105b57fe5b602002602001015190506000600190505b835181101561109c576110928285838151811061108557fe5b60200260200101516114c3565b915060010161106c565b50610af76110af825160c060ff16611540565b826114c3565b3b151590565b80516000906110cc57506000610afb565b6020820151805160001a9060c08210156110eb57600092505050610afb565b5060019392505050565b8051600090811a608081101561110f576000915050610afb565b60b881108061112a575060c0811080159061112a575060f881105b15611139576001915050610afb565b60c081101561114d5760b519019050610afb565b60f519019050610afb565b80516000908190811a60808110156111735760019150611284565b60b881101561118857607e1981019150611284565b60c081101561120257600060b78203600186019550806020036101000a8651049150600181018201935050808310156111fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611284565b60f88110156112175760be1981019150611284565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611282576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8061129557610816565b5b602081106112b5578251825260209283019290910190601f1901611296565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112eb57508151602110155b6112f457600080fd5b600061130383602001516110f5565b9050808360000151101561135e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fef57506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166113cf575060186113f3565b6fffffffffffffffffffffffffffffffff1984166113ef575060106113f3565b5060005b60208110156114295781818151811061140857fe5b01602001516001600160f81b0319161561142157611429565b6001016113f3565b60008160200390506060816040519080825280601f01601f19166020018201604052801561145e576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114a35750607f60f81b8260008151811061149157fe5b01602001516001600160f81b03191611155b156114af575080610afb565b6110126114c18351608060ff16611540565b835b6060806040519050835180825260208201818101602087015b818310156114f45780518352602092830192016114dc565b50855184518101855292509050808201602086015b81831015611521578051835260209283019201611509565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611590576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ea5782840160f81b816000815181106115cc57fe5b60200101906001600160f81b031916908160001a9053509050611012565b60606115f58561138b565b90508381510160370160f81b8260008151811061160e57fe5b60200101906001600160f81b031916908160001a90535061162f82826114c3565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611675611682565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a", + Code: feynman.MainnetGovHubContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611442565b610432611447565b61043261144d565b610456611453565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611483565b6104566116e3565b61061561170b565b6108896004803603602081101561088257600080fd5b5035611710565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b61045661173f565b610432600480360360208110156108d257600080fd5b503560ff16611766565b610432611781565b6103f361170b565b6103f3611787565b61061561141d565b61045661178c565b610432611792565b6103f3611798565b61043261179d565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a3565b610456612a5d565b6103f3612a65565b610432612a6a565b610432612a70565b610470612a76565b610432612a7f565b610432612a85565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8b565b61069260048036036020811015610b0b57600080fd5b503560ff1661354f565b61045661356a565b61043261358e565b6105e6613594565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e8565b610761613808565b610456613827565b61043261382d565b610432613833565b6105e6613839565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf0565b6105e6613c0b565b6103f3613e2a565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e2f565b610432613f72565b6103f3613f78565b610432613f7d565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f83565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcb565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcb565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c8565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614146565b50905061141181838851614150565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b603881565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150b57600080fd5b505afa15801561151f573d6000803e3d6000fd5b505050506040513d602081101561153557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157657600080fd5b505afa15801561158a573d6000803e3d6000fd5b505050506040513d60208110156115a057600080fd5b50519050806115ad575060155b6000821180156115bd5750808211155b6115fc576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906116699083614191565b905080156116db5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d602081101561185157600080fd5b50516118a4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611914576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198957600080fd5b505afa15801561199d573d6000803e3d6000fd5b505050506040513d60208110156119b357600080fd5b50516119f05760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5a576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac3576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b155760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b59576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b505160408051808201909152600381526269626360e81b6020820152611c968e8e613f83565b8585613fcb565b611ce5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3157600080fd5b505afa158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b505190508b8b600080806060611d7089614476565b935093509350935083611e32578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dea578181015183820152602001611dd2565b50505050905090810190601f168015611e175780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611eff578181015183820152602001611ee7565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4c57600080fd5b505af192505050801561203057506040513d6000823e601f3d908101601f191682016040526020811015611f7f57600080fd5b8101908080516040519392919084600160201b821115611f9e57600080fd5b908301906020820185811115611fb357600080fd5b8251600160201b811182820188101715611fcc57600080fd5b82525081516020918201929091019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b5060405250505060015b612342576040516000815260443d101561204c575060006120e7565b60046000803e60005160e01c6308c379a0811461206d5760009150506120e7565b60043d036004833e81513d60248201116001600160401b0382111715612098576000925050506120e7565b80830180516001600160401b038111156120b95760009450505050506120e7565b8060208301013d86018111156120d7576000955050505050506120e7565b601f01601f191660405250925050505b806120f25750612204565b60ff8716600090815260076020526040812054612129916001600160401b0390911690899061212490600290886113a7565b614526565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c45781810151838201526020016121ac565b50505050905090810190601f1680156121f15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233d565b3d80801561222e576040519150601f19603f3d011682016040523d82523d6000602084013e612233565b606091505b5060ff8716600090815260076020526040812054612266916001600160401b0390911690899061212490600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123015781810151838201526020016122e9565b50505050905090810190601f16801561232e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b1565b8051156123af5760ff871660009081526007602052604081205461237b916001600160401b0390911690899061212490600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612985565b60ff83166001141561265b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015612441578181015183820152602001612429565b50505050905090810190601f16801561246e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248e57600080fd5b505af192505050801561249f575060015b6123b1576040516000815260443d10156124bb57506000612556565b60046000803e60005160e01c6308c379a081146124dc576000915050612556565b60043d036004833e81513d60248201116001600160401b038211171561250757600092505050612556565b80830180516001600160401b03811115612528576000945050505050612556565b8060208301013d860181111561254657600095505050505050612556565b601f01601f191660405250925050505b8061256157506125c6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c45781810151838201526020016121ac565b3d8080156125f0576040519150601f19603f3d011682016040523d82523d6000602084013e6125f5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123015781810151838201526020016122e9565b60ff8316600214156129855760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e55781810151838201526020016126cd565b50505050905090810190601f1680156127125780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273257600080fd5b505af1925050508015612743575060015b612983576040516000815260443d101561275f575060006127fa565b60046000803e60005160e01c6308c379a081146127805760009150506127fa565b60043d036004833e81513d60248201116001600160401b03821117156127ab576000925050506127fa565b80830180516001600160401b038111156127cc5760009450505050506127fa565b8060208301013d86018111156127ea576000955050505050506127fa565b601f01601f191660405250925050505b8061280557506128ae565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286e578181015183820152602001612856565b50505050905090810190601f16801561289b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612983565b3d8080156128d8576040519150601f19603f3d011682016040523d82523d6000602084013e6128dd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561294757818101518382015260200161292f565b50505050905090810190601f1680156129745780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b505050506040513d6020811015612a4157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100380081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b6602e913960400191505060405180910390fd5b600b5460ff1615612b0f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c09050565b15612c1357604080516020601f8401819004810282018101909252828152600091612bbb918585808385018382808284376000920191909152506147a792505050565b90506127108111158015612bd05750600a8110155b612c0b5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a2e6032913960400191505060405180910390fd5b6001556134bd565b612c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c09050565b15612e0457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612cff5760405162461bcd60e51b815260040180806020018281038252605a8152602001806148cf605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1d816147ac565b612d6e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134bd565b612e7184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c09050565b15612fa257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef45760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e4604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f98576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134bd565b61300684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c09050565b1561313b576002811461304a5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495d602d913960400191505060405180910390fd5b600061308d600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156130a7575060648161ffff16105b6130f1576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61319e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c09050565b156132d157600281146131e25760405162461bcd60e51b815260040180806020018281038252602c81526020018061498a602c913960400191505060405180910390fd5b6000613225600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff1611801561323f575060648161ffff16105b613288576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61333c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c09050565b1561348057600281146133805760405162461bcd60e51b81526004018080602001828103825260348152602001806149296034913960400191505060405180910390fd5b60006133c3600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156133dd575060648161ffff16105b61342e576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135d9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d602081101561364657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368757600080fd5b505afa15801561369b573d6000803e3d6000fd5b505050506040513d60208110156136b157600080fd5b50519050806136be575060155b6000821180156136ce5750808211155b61370d576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613754576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a5907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e357600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613891576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c50576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d6020811015613cbd57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cfe57600080fd5b505afa158015613d12573d6000803e3d6000fd5b505050506040513d6020811015613d2857600080fd5b5051905080613d35575060155b600082118015613d455750808211155b613d84576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc8576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1a907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e3576137e36140c8565b601181565b60005460ff16613e74576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed15760405162461bcd60e51b815260040180806020018281038252603181526020018061489e6031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f369284928a9261212492909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100380060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fda575060006140bf565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614011576020820181803683370190505b509050600061401f826147b2565b60208089015182520190508660008061403789614146565b8086526020909501949092509050614050828583614150565b9283019261405d88614146565b8086526020909501949092509050614076828583614150565b9283018a81526020019261408987614146565b9092509050614099828583614150565b5083516020016140a76147b8565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614170578251825260209283019290910190601f1901614151565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425a57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428b575082816001015414155b1561435e576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614300916002840191906147d6565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614412565b60005b60028201548110156143e957336001600160a01b031682600201828154811061438657fe5b6000918252602090912001546001600160a01b031614156143e1576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614361565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446c576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614460600283018261483b565b50506001915050613fc5565b5060009392505050565b600080600060606021855110156144a657505060408051600080825260208201909252909250829150819061451f565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f1576020820181803683370190505b50905060006144ff82614146565b509050614511858260218d5103614150565b506001975091955093509150505b9193509193565b600b5460ff161561456a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145a9576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ea565b600380546001908101918290555410156145ea576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe603885604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614680578181015183820152602001614668565b50505050905090810190601f1680156146ad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f55780518252601f1990920191602091820191016146d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147635780518252601f199092019160209182019101614744565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482b579160200282015b8281111561482b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f6565b5061483792915061485c565b5090565b50805460008255906000526020600020908101906148599190614883565b50565b61488091905b808211156148375780546001600160a01b0319168155600101614862565b90565b61488091905b80821115614837576000815560010161488956fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a", + Code: feynman.MainnetCrossChainContract, }, { ContractAddr: common.HexToAddress(StakingContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101b565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611020565b34801561078b57600080fd5b506104f661164d565b3480156107a057600080fd5b506104f6611653565b3480156107b557600080fd5b50610654611659565b3480156107ca57600080fd5b5061042161165e565b3480156107df57600080fd5b50610421611664565b3480156107f457600080fd5b5061042161166d565b34801561080957600080fd5b5061042161180d565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611813565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b0316611819565b34801561089c57600080fd5b50610654611834565b3480156108b157600080fd5b50610654611839565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183e565b3480156108f957600080fd5b506104f6611859565b34801561090e57600080fd5b5061065461185f565b34801561092357600080fd5b506104f6611864565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186a565b3480156109bd57600080fd5b50610654611b32565b3480156109d257600080fd5b506104f6611b37565b3480156109e757600080fd5b506104f6611b3d565b3480156109fc57600080fd5b50610a05611b43565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4c565b348015610a3a57600080fd5b506104f6611b52565b348015610a4f57600080fd5b506104b3611659565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b58565b348015610b2f57600080fd5b506106546122ea565b348015610b4457600080fd5b506104216122ef565b348015610b5957600080fd5b5061042161248c565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612497565b348015610ba957600080fd5b506104216124c4565b348015610bbe57600080fd5b506104f66124ca565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d0565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f3565b348015610c9357600080fd5b506104f661271e565b348015610ca857600080fd5b506104f6612724565b348015610cbd57600080fd5b5061042161272a565b348015610cd257600080fd5b50610654612737565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273c565b348015610d2c57600080fd5b506104f6612771565b348015610d4157600080fd5b50610421612777565b348015610d5657600080fd5b506104f661277d565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614800565b610db2614800565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481e565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b6127a8565b90506000610ef0610eeb836127f2565b612840565b90506000606060ff831660041415610f1557610f0b846128f7565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad7565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b603881565b600881565b60105460ff166002141561106c576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109457506402540be4008106155b6110e5576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611128576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611176576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611231573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e8576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611231576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112a9576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130491859063ffffffff612df716565b9050801561134c57600254811161134c5760405162461bcd60e51b81526004018080602001828103825260258152602001806149be6025913960400191505060405180910390fd5b6000611363846402540be40063ffffffff612e8e16565b600254909150349060009061137f90839063ffffffff612ed716565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139b5790505090506113bb33612f19565b816000815181106113c857fe5b60200260200101819052506113e5886001600160a01b0316612f19565b816001815181106113f257fe5b602002602001018190525061140684612f3c565b8160028151811061141357fe5b60200260200101819052506060611433600261142e84612f4f565b612fd9565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148442620a8c0063ffffffff61305f16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c8876402540be40063ffffffff612e8e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152657818101518382015260200161150e565b50505050905090810190601f1680156115535780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bb573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ec573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bc576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611723576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b50509050806117c6576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff166118ed576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f561481e565b611937610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b905060008060606000805b61194b866130b9565b156119b6578061196857611961610eeb876127f2565b94506119ae565b80600114156119845761197d610eeb876127f2565b93506119ae565b80600214156119a95761199e611999876127f2565b6130da565b9250600191506119ae565b6119b6565b600101611942565b816119fc576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a058361314a565b611a48576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a54610ed684612783565b95506000611a64610eeb886127f2565b9050611a6e61481e565b611a77886130b9565b15611a9a57611a93610ed6611a8e6119998b6127f2565b612783565b9050611adb565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af757611af281888861319e565b611b25565b60ff821660021415611b0e57611af2818888613555565b60ff821660031415610f2a57611af2818888613822565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611baf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bef5760405162461bcd60e51b815260040180806020018281038252602e815260200180614934602e913960400191505060405180910390fd5b611c5084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b879050565b15611db65760208114611caa576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce891858580838501838280828437600092019190915250613c6e92505050565b90506003548110611d2a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614962602e913960400191505060405180910390fd5b6002548111611d6a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614990602e913960400191505060405180910390fd5b6402540be400810615611dae5760405162461bcd60e51b815260040180806020018281038252602c815260200180614908602c913960400191505060405180910390fd5b600155612258565b611e1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b879050565b15611f7c5760208114611e74576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb291858580838501838280828437600092019190915250613c6e92505050565b905080611ef05760405162461bcd60e51b8152600401808060200182810382526022815260200180614a126022913960400191505060405180910390fd5b6001548110611f305760405162461bcd60e51b815260040180806020018281038252602e815260200180614888602e913960400191505060405180910390fd5b6402540be400810615611f745760405162461bcd60e51b815260040180806020018281038252602f815260200180614859602f913960400191505060405180910390fd5b600255612258565b611fe084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b879050565b156120c2576020811461203a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207891858580838501838280828437600092019190915250613c6e92505050565b905060015481116120ba5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b66031913960400191505060405180910390fd5b600355612258565b61212484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b879050565b1561221b576020811461217e576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bc91858580838501838280828437600092019190915250613c6e92505050565b905060008111612213576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612258565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a2576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f8576040519150601f19603f3d011682016040523d82523d6000602084013e6123fd565b606091505b5050905080612445576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125105760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16612553576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314a92505050565b6125d5576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125dd61481e565b61261f610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b9050600061262f610eeb836127f2565b905061263961481e565b612642836130b9565b1561266057612659610ed6611a8e611999866127f2565b90506126a6565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c0576126bb81613c73565b6126ea565b60ff8216600214156126d5576126bb81613e8d565b60ff821660031415610f2a576126bb81613fb7565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278b61483e565b506040805180820190915281518152602082810190820152919050565b6127b061481e565b6127b98261411c565b6127c257600080fd5b60006127d18360200151614156565b60208085015160408051808201909152868152920190820152915050919050565b6127fa61483e565b612803826130b9565b61280c57600080fd5b6020820151600061281c826141b9565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285557508151602110155b61285e57600080fd5b600061286d8360200151614156565b905080836000015110156128c8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ee57826020036101000a820491505b50949350505050565b600060606000806000805b61290b876130b9565b1561295d578261292d57612926612921886127f2565b6142ec565b9150612952565b826001141561294d57612942610eeb886127f2565b905060019350612952565b61295d565b826001019250612902565b836129a3576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b5051905080612a3c57612a2e600484846065614306565b965096505050505050612ad2565b6001600160a01b038316600090815260066020526040902054612a65908363ffffffff61305f16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aee896130b9565b15612b785784612b0b57612b046129218a6127f2565b9350612b6d565b8460011415612b2757612b206129218a6127f2565b9250612b6d565b8460021415612b4757612b3c610eeb8a6127f2565b915060019550612b6d565b8460031415612b6857612b61612b5c8a6127f2565b614402565b9050612b6d565b612b78565b846001019450612ae5565b85612bbe576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b5051905080612c5957612c49600586856065614306565b9850985050505050505050612ad2565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9d908463ffffffff61305f16565b6001600160a01b0386166000908152600860205260409020558115612d8b576001600160a01b038516600090815260046020526040902054612ce5908463ffffffff612ed716565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d27908463ffffffff612ed716565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4b578181015183820152602001612e33565b50505050905090810190601f168015612e785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614446565b9392505050565b6000612ed083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df7565b60408051600560a21b8318601482015260348101909152606090612ed0816144ab565b60606124be612f4a83614501565b6144ab565b6060815160001415612f705750604080516000815260208101909152610df1565b606082600081518110612f7f57fe5b602002602001015190506000600190505b8351811015612fc057612fb682858381518110612fa957fe5b60200260200101516145e7565b9150600101612f90565b50612ed0612fd3825160c060ff16614664565b826145e7565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff25790505090506130158460ff16612f3c565b8160008151811061302257fe5b6020026020010181905250613036836144ab565b8160018151811061304357fe5b602002602001018190525061305781612f4f565b949350505050565b600082820183811015612ed0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c361483e565b505080518051602091820151919092015191011190565b80516060906130e857600080fd5b60006130f78360200151614156565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312e576020820181803683370190505b50905060008160200190506128ee84876020015101828561475c565b8051602080830191909120600e546000908152600a909252604082205480821461317957600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b0886130b9565b1561321957836131cd576131c6612921896127f2565b925061320e565b83600114156131e9576131e2612921896127f2565b915061320e565b8360021415613209576131fe610eeb896127f2565b90506001945061320e565b613219565b8360010193506131a7565b8461325f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613276826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bc5760ff8716156132e9576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613312908263ffffffff61305f16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613354908263ffffffff61305f16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354a565b60ff881661350e576001600160a01b0384166000908152600860205260409020546133ed908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344957600080fd5b505af115801561345d573d6000803e3d6000fd5b505050506040513d602081101561347357600080fd5b50516134bc576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354a565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613567886130b9565b156135d057836135845761357d612921896127f2565b92506135c5565b83600114156135a057613599612921896127f2565b91506135c5565b83600214156135c0576135b5610eeb896127f2565b9050600194506135c5565b6135d0565b83600101935061355e565b84613616576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362d826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ac5760ff8716156136a0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136c9908263ffffffff612ed716565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370b908263ffffffff612ed716565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374442620a8c0063ffffffff61305f16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354a565b60ff881661350e576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354a565b6000806000806000805b613835896130b9565b156138ba57846138525761384b6129218a6127f2565b93506138af565b846001141561386e576138676129218a6127f2565b92506138af565b846002141561388a576138836129218a6127f2565b91506138af565b84600314156138aa5761389f610eeb8a6127f2565b9050600195506138af565b6138ba565b84600101945061382c565b85613900576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613917826402540be40063ffffffff6147a716565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aea5760ff88161561398a576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c0908263ffffffff612ed716565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fc908261305f565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3542620a8c0063ffffffff61305f16565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7842620a8c0063ffffffff61305f16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7b565b60ff891661350e576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbc5780518252601f199092019160209182019101613b9d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2a5780518252601f199092019160209182019101613c0b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c85866130b9565b15613cee5783613ca257613c9b612921876127f2565b9250613ce3565b8360011415613cbe57613cb7612921876127f2565b9150613ce3565b8360021415613cde57613cd3610eeb876127f2565b905060019450613ce3565b613cee565b836001019350613c7c565b84613d34576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4b826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d89908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de557600080fd5b505af1158015613df9573d6000803e3d6000fd5b505050506040513d6020811015613e0f57600080fd5b5051613e58576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613e9f866130b9565b15613f085783613ebc57613eb5612921876127f2565b9250613efd565b8360011415613ed857613ed1612921876127f2565b9150613efd565b8360021415613ef857613eed610eeb876127f2565b905060019450613efd565b613f08565b836001019350613e96565b84613f4e576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fca876130b9565b1561404f5784613fe757613fe0612921886127f2565b9350614044565b846001141561400357613ffc612921886127f2565b9250614044565b846002141561401f57614018612921886127f2565b9150614044565b846003141561403f57614034610eeb886127f2565b905060019550614044565b61404f565b846001019450613fc1565b85614095576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412d57506000610df1565b6020820151805160001a9060c082101561414c57600092505050610df1565b5060019392505050565b8051600090811a6080811015614170576000915050610df1565b60b881108061418b575060c0811080159061418b575060f881105b1561419a576001915050610df1565b60c08110156141ae5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d457600191506142e5565b60b88110156141e957607e19810191506142e5565b60c081101561426357600060b78203600186019550806020036101000a86510491506001810182019350508083101561425d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e5565b60f88110156142785760be19810191506142e5565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fd57600080fd5b6124be82612840565b6000606061431f846402540be40063ffffffff612e8e16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433b57905050905061435e8760ff16612f3c565b8160008151811061436b57fe5b6020026020010181905250614388866001600160a01b0316612f19565b8160018151811061439557fe5b60200260200101819052506143a985612f3c565b816002815181106143b657fe5b60200260200101819052506143d08463ffffffff16612f3c565b816003815181106143dd57fe5b602002602001018190525060606143f382612f4f565b94989497509395505050505050565b805160009060011461441357600080fd5b6020820151805160001a9081158061442b5750608082145b1561443b57600092505050610df1565b600192505050610df1565b600081836144955760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4b578181015183820152602001612e33565b5060008385816144a157fe5b0495945050505050565b6060815160011480156144dd5750607f60f81b826000815181106144cb57fe5b01602001516001600160f81b03191611155b156144e9575080610df1565b6124be6144fb8351608060ff16614664565b836145e7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661454557506018614569565b6fffffffffffffffffffffffffffffffff19841661456557506010614569565b5060005b602081101561459f5781818151811061457e57fe5b01602001516001600160f81b031916156145975761459f565b600101614569565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d4576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614618578051835260209283019201614600565b50855184518101855292509050808201602086015b8183101561464557805183526020928301920161462d565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b4576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470e5782840160f81b816000815181106146f057fe5b60200101906001600160f81b031916908160001a90535090506124be565b606061471985614501565b90508381510160370160f81b8260008151811061473257fe5b60200101906001600160f81b031916908160001a90535061475382826145e7565b95945050505050565b80614766576126ee565b5b60208110614786578251825260209283019290910190601f1901614767565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b6575060006124be565b828202828482816147c357fe5b0414612ed05760405162461bcd60e51b81526004018080602001828103825260218152602001806148e76021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483161483e565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a", + Code: feynman.MainnetStakingContract, }, { ContractAddr: common.HexToAddress(StakeHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bf0578063fb50b31f1462000c15578063fc0c5ff11462000c3a578063ff69ab611462000c5257600080fd5b8063e992aaf51462000b6d578063efdbf0e11462000b85578063f1f74d841462000bc1578063f1fad1041462000bd957600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000b00578063daacdb661462000b18578063dbda7fb31462000b30578063e8f67c3b1462000b5557600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab6578063d7c2dfc81462000adb57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c6a565b3480156200042057600080fd5b50620004386200043236600462009442565b62000cfc565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009442565b62001111565b348015620004a057600080fd5b50620003f4620004b2366004620094a6565b6200174f565b348015620004c557600080fd5b50620004dd620004d7366004620094eb565b62001a7b565b6040516200044c91906200959e565b348015620004f957600080fd5b50620004386200050b36600462009694565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f46200058136600462009442565b62001dee565b3480156200059457600080fd5b50620003f4620005a636600462009442565b62001e70565b348015620005b957600080fd5b50620003f4620005cb36600462009442565b62002055565b348015620005de57600080fd5b5062000605620005f036600462009442565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f46200063536600462009442565b62002232565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f462000684366004620096e9565b620022ae565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c136600462009727565b620028cb565b348015620006d457600080fd5b50620003f4620006e636600462009797565b6200369e565b348015620006f957600080fd5b50620007116200070b366004620097b7565b620038a6565b6040516200044c949392919062009820565b620003f462000734366004620098dc565b62003f38565b3480156200074757600080fd5b506200046d6200075936600462009442565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a36600462009442565b62004582565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e236600462009442565b6200462c565b348015620007f557600080fd5b50620003f46200080736600462009442565b62004a45565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004c17565b3480156200084a57600080fd5b50620003f46200085c366004620094eb565b62004f2e565b3480156200086f57600080fd5b50620003f462004f98565b3480156200088757600080fd5b50620004386200089936600462009442565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f1366004620096e9565b62005030565b620003f462000908366004620099b4565b620050e9565b3480156200091b57600080fd5b50620009336200092d36600462009442565b62005773565b6040516200044c9190620099f2565b3480156200094f57600080fd5b50620003f462000961366004620096e9565b62005a60565b3480156200097457600080fd5b50620003f46200098636600462009a6f565b62005acd565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009b28565b6200696c565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a08366004620097b7565b62006b39565b6040516200044c9392919062009b84565b34801562000a2c57600080fd5b50620003f462000a3e36600462009442565b62006d15565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b36600462009442565b62006fd7565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d620186a081565b34801562000ac357600080fd5b50620003f462000ad536600462009be1565b62007407565b34801562000ae857600080fd5b50620003f462000afa36600462009cca565b6200760b565b34801562000b0d57600080fd5b506200046d603b5481565b34801562000b2557600080fd5b506200046d60495481565b34801562000b3d57600080fd5b506200043862000b4f36600462009442565b62007701565b34801562000b6257600080fd5b506200046d60355481565b34801562000b7a57600080fd5b506200046d603a5481565b34801562000b9257600080fd5b506200046d62000ba436600462009694565b805160208183018101805160468252928201919093012091525481565b34801562000bce57600080fd5b506200046d603e5481565b34801562000be657600080fd5b5062000652601181565b34801562000bfd57600080fd5b506200046d62000c0f366004620096e9565b62007b18565b34801562000c2257600080fd5b50620003f462000c3436600462009a6f565b62007b89565b34801562000c4757600080fd5b506200046d60395481565b34801562000c5f57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9d576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc757604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d679062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000d959062009d30565b801562000de65780601f1062000dba5761010080835404028352916020019162000de6565b820191906000526020600020905b81548152906001019060200180831162000dc857829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e119062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3f9062009d30565b801562000e905780601f1062000e645761010080835404028352916020019162000e90565b820191906000526020600020905b81548152906001019060200180831162000e7257829003601f168201915b5050505050815260200160018201805462000eab9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed99062009d30565b801562000f2a5780601f1062000efe5761010080835404028352916020019162000f2a565b820191906000526020600020905b81548152906001019060200180831162000f0c57829003601f168201915b5050505050815260200160028201805462000f459062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462000f739062009d30565b801562000fc45780601f1062000f985761010080835404028352916020019162000fc4565b820191906000526020600020905b81548152906001019060200180831162000fa657829003601f168201915b5050505050815260200160038201805462000fdf9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200100d9062009d30565b80156200105e5780601f1062001032576101008083540402835291602001916200105e565b820191906000526020600020905b8154815290600101906020018083116200104057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010ea575050509190925250509051949350505050565b33611000146200113d57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b69062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e49062009d30565b8015620012355780601f10620012095761010080835404028352916020019162001235565b820191906000526020600020905b8154815290600101906020018083116200121757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620012609062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200128e9062009d30565b8015620012df5780601f10620012b357610100808354040283529160200191620012df565b820191906000526020600020905b815481529060010190602001808311620012c157829003601f168201915b50505050508152602001600182018054620012fa9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620013289062009d30565b8015620013795780601f106200134d5761010080835404028352916020019162001379565b820191906000526020600020905b8154815290600101906020018083116200135b57829003601f168201915b50505050508152602001600282018054620013949062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c29062009d30565b8015620014135780601f10620013e75761010080835404028352916020019162001413565b820191906000526020600020905b815481529060010190602001808311620013f557829003601f168201915b505050505081526020016003820180546200142e9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200145c9062009d30565b8015620014ad5780601f106200148157610100808354040283529160200191620014ad565b820191906000526020600020905b8154815290600101906020018083116200148f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001539575050509190925250505060408101519091506001600160a01b031615806200157657508060e001515b156200163357604051611002903490600081818185875af1925050503d8060008114620015c0576040519150601f19603f3d011682016040523d82523d6000602084013e620015c5565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016269060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168a57600080fd5b505af11580156200169f573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016e091815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017159190869060040162009d66565b600060405180830381600087803b1580156200173057600080fd5b505af115801562001745573d6000803e3d6000fd5b5050505050505b50565b33611001146200177757604051630f22c43960e41b8152611001600482015260240162001134565b60005462010000900460ff1615620017a257604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b892919062009d80565b908152604051908190036020019020546001600160a01b03169050620017e0603f8262007ddd565b620017fe5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001826620151804262009da6565b604a546000828152604b6020526040902054919250116200185a5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187b90849062009dc9565b909155505060405160469062001895908790879062009d80565b908152602001604051809103902054600014158015620018e65750426201518060468787604051620018c992919062009d80565b908152602001604051809103902054620018e4919062009dc9565b105b156200190557604051631898eb6b60e01b815260040160405180910390fd5b6000806200191585600262007e00565b91509150816200193857604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b1919062009ddf565b9050620019bf858362007e8a565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019ff9392919062009e0f565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3d916001600160a01b0316908a9060040162009d66565b600060405180830381600087803b15801562001a5857600080fd5b505af115801562001a6d573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa557604051630f22c43960e41b8152612000600482015260240162001134565b60005462010000900460ff161562001ad057604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b219187908790819084018382808284376000920191909152506200805192505050565b915091508062001b445760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b6a575050604080516000815260208101909152905062001ddd565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b9a9160040190815260200190565b6020604051808303816000875af115801562001bba573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001be0919062009e3e565b90508062001c875782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3c92919062009e5e565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001ddd95505050505050565b600062001c9484620081b4565b9050600081600481111562001cad5762001cad62009df9565b0362001ccf575050604080516000815260208101909152925062001ddd915050565b6040516000906110049047908381818185875af1925050503d806000811462001d15576040519150601f19603f3d011682016040523d82523d6000602084013e62001d1a565b606091505b505090508062001d3d576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d9092919062009e5e565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001ddd975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e21576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ecd5760405163b1d02c3d60e01b815260040160405180910390fd5b8062001edb603f8262007ddd565b62001ef95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3757604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f87573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fad919062009ddf565b101562001fcd576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001ff35760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201790849062009e85565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200208057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020b25760405163b1d02c3d60e01b815260040160405180910390fd5b33620020c0603f8262007ddd565b620020de5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200210657604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214757506001600160a01b03821660009081526047602052604090205460ff165b156200216657604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218c90620151809062009dc9565b1115620021ac57604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b0316331462002265576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200230b5760405163b1d02c3d60e01b815260040160405180910390fd5b8162002319603f8262007ddd565b620023375760405163056e881160e01b815260040160405180910390fd5b816000036200235957604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023c19062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620023ef9062009d30565b8015620024405780601f10620024145761010080835404028352916020019162002440565b820191906000526020600020905b8154815290600101906020018083116200242257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200246b9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620024999062009d30565b8015620024ea5780601f10620024be57610100808354040283529160200191620024ea565b820191906000526020600020905b815481529060010190602001808311620024cc57829003601f168201915b50505050508152602001600182018054620025059062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620025339062009d30565b8015620025845780601f10620025585761010080835404028352916020019162002584565b820191906000526020600020905b8154815290600101906020018083116200256657829003601f168201915b505050505081526020016002820180546200259f9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cd9062009d30565b80156200261e5780601f10620025f2576101008083540402835291602001916200261e565b820191906000526020600020905b8154815290600101906020018083116200260057829003601f168201915b50505050508152602001600382018054620026399062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620026679062009d30565b8015620026b85780601f106200268c57610100808354040283529160200191620026b8565b820191906000526020600020905b8154815290600101906020018083116200269a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002744575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e4919062009ddf565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002835929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b031603620028625762002862866200880a565b6040808301519051633041949b60e01b815261200591633041949b916200288f9190879060040162009d66565b600060405180830381600087803b158015620028aa57600080fd5b505af1158015620028bf573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028f657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620029285760405163b1d02c3d60e01b815260040160405180910390fd5b8362002936603f8262007ddd565b620029545760405163056e881160e01b815260040160405180910390fd5b8362002962603f8262007ddd565b620029805760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029b057604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029e35760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a4b9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002a799062009d30565b801562002aca5780601f1062002a9e5761010080835404028352916020019162002aca565b820191906000526020600020905b81548152906001019060200180831162002aac57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002af59062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002b239062009d30565b801562002b745780601f1062002b485761010080835404028352916020019162002b74565b820191906000526020600020905b81548152906001019060200180831162002b5657829003601f168201915b5050505050815260200160018201805462002b8f9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbd9062009d30565b801562002c0e5780601f1062002be25761010080835404028352916020019162002c0e565b820191906000526020600020905b81548152906001019060200180831162002bf057829003601f168201915b5050505050815260200160028201805462002c299062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002c579062009d30565b801562002ca85780601f1062002c7c5761010080835404028352916020019162002ca8565b820191906000526020600020905b81548152906001019060200180831162002c8a57829003601f168201915b5050505050815260200160038201805462002cc39062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002cf19062009d30565b801562002d425780601f1062002d165761010080835404028352916020019162002d42565b820191906000526020600020905b81548152906001019060200180831162002d2457829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dce57505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e599062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002e879062009d30565b801562002ed85780601f1062002eac5761010080835404028352916020019162002ed8565b820191906000526020600020905b81548152906001019060200180831162002eba57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002f039062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002f319062009d30565b801562002f825780601f1062002f565761010080835404028352916020019162002f82565b820191906000526020600020905b81548152906001019060200180831162002f6457829003601f168201915b5050505050815260200160018201805462002f9d9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462002fcb9062009d30565b80156200301c5780601f1062002ff0576101008083540402835291602001916200301c565b820191906000526020600020905b81548152906001019060200180831162002ffe57829003601f168201915b50505050508152602001600282018054620030379062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620030659062009d30565b8015620030b65780601f106200308a57610100808354040283529160200191620030b6565b820191906000526020600020905b8154815290600101906020018083116200309857829003601f168201915b50505050508152602001600382018054620030d19062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620030ff9062009d30565b8015620031505780601f10620031245761010080835404028352916020019162003150565b820191906000526020600020905b8154815290600101906020018083116200313257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031dc5750505050508152505090508060e0015180156200321f5750876001600160a01b0316836001600160a01b031614155b156200323e57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af115801562003295573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032bb919062009ddf565b9050603754811015620032e15760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200337657506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa1580156200334e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003374919062009ddf565b105b1562003395576040516317b204bf60e11b815260040160405180910390fd5b6000620186a0603a5483620033ab919062009e9b565b620033b7919062009da6565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200340c576040519150601f19603f3d011682016040523d82523d6000602084013e62003411565b606091505b505090508062003434576040516312171d8360e31b815260040160405180910390fd5b62003440828462009e85565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af115801562003496573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034bd919062009ddf565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003522939291909283526020830191909152604082015260600190565b60405180910390a460408051600280825260608201835260009260208301908036833701905050905086604001518160008151811062003566576200356662009eb5565b60200260200101906001600160a01b031690816001600160a01b031681525050856040015181600181518110620035a157620035a162009eb5565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035e29084908c9060040162009ecb565b600060405180830381600087803b158015620035fd57600080fd5b505af115801562003612573d6000803e3d6000fd5b505050508a1562003684576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364f92919062009d66565b600060405180830381600087803b1580156200366a57600080fd5b505af11580156200367f573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036c957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036fb5760405163b1d02c3d60e01b815260040160405180910390fd5b3362003709603f8262007ddd565b620037275760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374d90620151809062009dc9565b11156200376d57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b90910481169085161115620037a75760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037e5576009820154620037df9086906001600160401b031662009ef7565b620037ff565b6009820154620037ff906001600160401b03168662009ef7565b60098301546001600160401b039182169250600160801b9004168111156200383a5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038b9603f62008930565b90508086101562003f2f578415620038d25784620038d4565b805b9450600085620038e5888462009e85565b11620038fd57620038f7878362009e85565b620038ff565b855b9050806001600160401b038111156200391c576200391c620095b3565b60405190808252806020026020018201604052801562003946578160200160208202803683370190505b509450806001600160401b03811115620039645762003964620095b3565b6040519080825280602002602001820160405280156200398e578160200160208202803683370190505b509350806001600160401b03811115620039ac57620039ac620095b3565b604051908082528060200260200182016040528015620039e157816020015b6060815260200190600190039081620039cb5790505b50925060005b8181101562003f2c57600062003a0b62003a02838b62009dc9565b603f906200893b565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a789062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003aa69062009d30565b801562003af75780601f1062003acb5761010080835404028352916020019162003af7565b820191906000526020600020905b81548152906001019060200180831162003ad957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b229062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003b509062009d30565b801562003ba15780601f1062003b755761010080835404028352916020019162003ba1565b820191906000526020600020905b81548152906001019060200180831162003b8357829003601f168201915b5050505050815260200160018201805462003bbc9062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003bea9062009d30565b801562003c3b5780601f1062003c0f5761010080835404028352916020019162003c3b565b820191906000526020600020905b81548152906001019060200180831162003c1d57829003601f168201915b5050505050815260200160028201805462003c569062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003c849062009d30565b801562003cd55780601f1062003ca95761010080835404028352916020019162003cd5565b820191906000526020600020905b81548152906001019060200180831162003cb757829003601f168201915b5050505050815260200160038201805462003cf09062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462003d1e9062009d30565b801562003d6f5780601f1062003d435761010080835404028352916020019162003d6f565b820191906000526020600020905b81548152906001019060200180831162003d5157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003dfb575050505050815250509050806000015188848151811062003e345762003e3462009eb5565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ecd5780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003ea1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ec7919062009ddf565b62003ed0565b60005b87848151811062003ee55762003ee562009eb5565b602002602001018181525050806080015186848151811062003f0b5762003f0b62009eb5565b602002602001018190525050508062003f249062009f1a565b9050620039e7565b50505b92959194509250565b60005462010000900460ff161562003f6357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f955760405163b1d02c3d60e01b815260040160405180910390fd5b3362003fa3603f8262007ddd565b1562003fc257604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b03888116600090815260436020526040902054161515806200400357506001600160a01b03881660009081526047602052604090205460ff165b156200402257604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200404192919062009d80565b908152604051908190036020019020546001600160a01b03161415806200408b5750604887876040516200407792919062009d80565b9081526040519081900360200190205460ff165b15620040aa576040516311fdb94760e01b815260040160405180910390fd5b6000620040b8838062009f36565b604051602001620040cb92919062009d80565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041155760405163c0bf414360e01b815260040160405180910390fd5b60006200412b670de0b6b3a76400003462009e85565b905060365481101562004151576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200417957604051636520611b60e11b815260040160405180910390fd5b6113886200418e604087016020880162009797565b6001600160401b03161180620041d45750620041b1604086016020870162009797565b6001600160401b0316620041c9602087018762009797565b6001600160401b0316115b80620042135750620041ed604086016020870162009797565b6001600160401b031662004208606087016040880162009797565b6001600160401b0316115b15620042325760405163dc81db8560e01b815260040160405180910390fd5b6200427d62004242858062009f36565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200894992505050565b6200429b57604051635dba5ad760e01b815260040160405180910390fd5b620042aa838a8a8a8a62008aeb565b620042c857604051631647e3cb60e11b815260040160405180910390fd5b60006200431684620042db878062009f36565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c1b92505050565b905062004325603f8562008d1c565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043a58b8d8362009fde565b508560058201620043b782826200a0a6565b5087905060098201620043cb82826200a1df565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b0319169288169290921790915551859060459062004419908e908e9062009d80565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200449c9291906200a2af565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b5b6833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b5b6833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b9062004540908590899060040162009d66565b600060405180830381600087803b1580156200455b57600080fd5b505af115801562004570573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045ad603f8262007ddd565b620045cb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620046999062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620046c79062009d30565b8015620047185780601f10620046ec5761010080835404028352916020019162004718565b820191906000526020600020905b815481529060010190602001808311620046fa57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047439062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620047719062009d30565b8015620047c25780601f106200479657610100808354040283529160200191620047c2565b820191906000526020600020905b815481529060010190602001808311620047a457829003601f168201915b50505050508152602001600182018054620047dd9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200480b9062009d30565b80156200485c5780601f1062004830576101008083540402835291602001916200485c565b820191906000526020600020905b8154815290600101906020018083116200483e57829003601f168201915b50505050508152602001600282018054620048779062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a59062009d30565b8015620048f65780601f10620048ca57610100808354040283529160200191620048f6565b820191906000526020600020905b815481529060010190602001808311620048d857829003601f168201915b50505050508152602001600382018054620049119062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200493f9062009d30565b8015620049905780601f10620049645761010080835404028352916020019162004990565b820191906000526020600020905b8154815290600101906020018083116200497257829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a1c5750505091909252505050608001519392505050565b336110011462004a6d57604051630f22c43960e41b8152611001600482015260240162001134565b6001600160a01b038082166000908152604360205260409020541662004a95603f8262007ddd565b62004ab35760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b16573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b3c919062009ddf565b90506000603d544262004b50919062009dc9565b905062004b5e838262007e8a565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b9e9392919062009e0f565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bdc916001600160a01b031690889060040162009d66565b600060405180830381600087803b15801562004bf757600080fd5b505af115801562004c0c573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c385750600054600160ff909116105b8062004c545750303b15801562004c54575060005460ff166001145b62004cb95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001134565b6000805460ff19166001179055801562004cdd576000805461ff0019166101001790555b33411462004cfe5760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d1e576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755602d60385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562278d00603e55604a5560408051610760810190915261074080825260609182916200b5d6602083013980602001905181019062004daf91906200a2eb565b915060405180611160016040528061114081526020016200bd16611140913980602001905181019062004de391906200a38f565b905060005b825181101562004e525760016047600085848151811062004e0d5762004e0d62009eb5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e4a8162009f1a565b905062004de8565b5060005b815181101562004ec3576001604883838151811062004e795762004e7962009eb5565b602002602001015160405162004e9091906200a48c565b908152604051908190036020019020805491151560ff1990921691909117905562004ebb8162009f1a565b905062004e56565b5062004ee37308e68ec70fa3b629784fdb28887e206ce8561e0862008d33565b505080156200174c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f5657604051630f22c43960e41b8152612000600482015260240162001134565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f8b939291906200a4aa565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fcb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004ff657604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200503f603f8462007ddd565b6200505d5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050e0919062009ddf565b90505b92915050565b60005462010000900460ff16156200511457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051465760405163b1d02c3d60e01b815260040160405180910390fd5b8162005154603f8262007ddd565b620051725760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051985760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620052009062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200522e9062009d30565b80156200527f5780601f1062005253576101008083540402835291602001916200527f565b820191906000526020600020905b8154815290600101906020018083116200526157829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052aa9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d89062009d30565b8015620053295780601f10620052fd5761010080835404028352916020019162005329565b820191906000526020600020905b8154815290600101906020018083116200530b57829003601f168201915b50505050508152602001600182018054620053449062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620053729062009d30565b8015620053c35780601f106200539757610100808354040283529160200191620053c3565b820191906000526020600020905b815481529060010190602001808311620053a557829003601f168201915b50505050508152602001600282018054620053de9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200540c9062009d30565b80156200545d5780601f1062005431576101008083540402835291602001916200545d565b820191906000526020600020905b8154815290600101906020018083116200543f57829003601f168201915b50505050508152602001600382018054620054789062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620054a69062009d30565b8015620054f75780601f10620054cb57610100808354040283529160200191620054f7565b820191906000526020600020905b815481529060010190602001808311620054d957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055835750505050508152505090508060e001518015620055c65750856001600160a01b0316826001600160a01b031614155b15620055e557604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005636573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200565d919062009ddf565b9050826001600160a01b0316876001600160a01b03166000805160206200b5b683398151915283876040516200569d929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056d29190879060040162009d66565b600060405180830381600087803b158015620056ed57600080fd5b505af115801562005702573d6000803e3d6000fd5b50505050851562001745576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057369086908b9060040162009d66565b600060405180830381600087803b1580156200575157600080fd5b505af115801562005766573d6000803e3d6000fd5b5050505050505050505050565b6200579f6040518060800160405280606081526020016060815260200160608152602001606081525090565b81620057ad603f8262007ddd565b620057cb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620058029062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620058309062009d30565b8015620058815780601f10620058555761010080835404028352916020019162005881565b820191906000526020600020905b8154815290600101906020018083116200586357829003601f168201915b505050505081526020016001820180546200589c9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620058ca9062009d30565b80156200591b5780601f10620058ef576101008083540402835291602001916200591b565b820191906000526020600020905b815481529060010190602001808311620058fd57829003601f168201915b50505050508152602001600282018054620059369062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620059649062009d30565b8015620059b55780601f106200598957610100808354040283529160200191620059b5565b820191906000526020600020905b8154815290600101906020018083116200599757829003601f168201915b50505050508152602001600382018054620059d09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620059fe9062009d30565b801562005a4f5780601f1062005a235761010080835404028352916020019162005a4f565b820191906000526020600020905b81548152906001019060200180831162005a3157829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a8b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005abd5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ac9828262008dcc565b5050565b336110071462005af557604051630f22c43960e41b8152611007600482015260240162001134565b62005b626040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005c1d576020811462005b945783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005bd791858580838501838280828437600092019190915250929392505062008f359050565b90506108fc81108062005beb575061271081115b1562005c145784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60355562006927565b62005c8e6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005d58576020811462005cc05783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005d0391858580838501838280828437600092019190915250929392505062008f359050565b9050683635c9adc5dea0000081108062005d26575069152d02c7e14af680000081115b1562005d4f5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60365562006927565b62005dcb604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005e92576020811462005dfd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005e4091858580838501838280828437600092019190915250929392505062008f359050565b905067016345785d8a000081108062005e605750678ac7230489e8000081115b1562005e895784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60375562006927565b62005f03604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b1562005fbb576020811462005f355783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f840181900481028201810190925282815260009162005f7891858580838501838280828437600092019190915250929392505062008f359050565b905080158062005f8957506101f481115b1562005fb25784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60385562006927565b620060246040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620060e15760208114620060565783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200609991858580838501838280828437600092019190915250929392505062008f359050565b90506203f480811080620060af575062278d0081115b15620060d85784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b60395562006927565b6200614f60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620061fc5760208114620061815783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f8401819004810282018101909252828152600091620061c491858580838501838280828437600092019190915250929392505062008f359050565b90506064811115620061f35784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603a5562006927565b6200626c60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b156200632d57602081146200629e5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f8401819004810282018101909252828152600091620062e191858580838501838280828437600092019190915250929392505062008f359050565b9050674563918244f40000811080620062fb5750603c5481115b15620063245784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603b5562006927565b6200639b6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b156200645e5760208114620063cd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200641091858580838501838280828437600092019190915250929392505062008f359050565b905068056bc75e2d631000008110806200642c5750603b548111155b15620064555784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603c5562006927565b620064cb6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620065885760208114620064fd5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200654091858580838501838280828437600092019190915250929392505062008f359050565b90506202a300811080620065565750603e548110155b156200657f5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603d5562006927565b620065f36040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620066b05760208114620066255783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200666891858580838501838280828437600092019190915250929392505062008f359050565b9050620d2f008110806200667e5750603d548111155b15620066a75784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b603e5562006927565b6200672a6040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620067d657602081146200675c5783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b604080516020601f84018190048102820181019092528281526000916200679f91858580838501838280828437600092019190915250929392505062008f359050565b905080600003620067cd5784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b604a5562006927565b620068446040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed89050565b15620069045760148114620068765783838383604051630a5a604160e01b81526004016200113494939291906200a4c9565b6000620068be601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f359050565b90506001600160a01b038116620068f25784848484604051630a5a604160e01b81526004016200113494939291906200a4c9565b620068fd8162008f3a565b5062006927565b838383836040516325ee20d560e21b81526004016200113494939291906200a4c9565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200695e94939291906200a4c9565b60405180910390a150505050565b60005462010000900460ff16156200699757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069c95760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069e757620069e7620095b3565b60405190808252806020026020018201604052801562006a11578160200160208202803683370190505b5090506000805b8381101562006b0f5762006a5a87878381811062006a3a5762006a3a62009eb5565b905060200201602081019062006a51919062009442565b603f9062007ddd565b62006a785760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a915762006a9162009eb5565b905060200201602081019062006aa8919062009442565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ae45762006ae462009eb5565b6001600160a01b039092166020928302919091019091015262006b078162009f1a565b905062006a18565b50604051634484077560e01b8152612005906344840775906200288f908590889060040162009ecb565b606080600062006b4a603f62008930565b90508085101562006d0e57831562006b63578362006b65565b805b935060008462006b76878462009e85565b1162006b8e5762006b88868362009e85565b62006b90565b845b9050806001600160401b0381111562006bad5762006bad620095b3565b60405190808252806020026020018201604052801562006bd7578160200160208202803683370190505b509350806001600160401b0381111562006bf55762006bf5620095b3565b60405190808252806020026020018201604052801562006c1f578160200160208202803683370190505b50925060005b8181101562006d0b5762006c3e62003a02828962009dc9565b85828151811062006c535762006c5362009eb5565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c8c5762006c8c62009eb5565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006ce05762006ce062009eb5565b6001600160a01b039092166020928302919091019091015262006d038162009f1a565b905062006c25565b50505b9250925092565b336110011462006d3d57604051630f22c43960e41b8152611001600482015260240162001134565b60005462010000900460ff161562006d6857604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d90603f8262007ddd565b62006dae5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dd6620151804262009da6565b604a546000828152604b60205260409020549192501162006e0a5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e2b90849062009dc9565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e8057506001600160a01b038416600090815260446020526040902054429062006e7e90620151809062009dc9565b105b1562006e9f576040516330abb81d60e21b815260040160405180910390fd5b60008062006eaf85600062007e00565b915091508162006ed257604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f4b919062009ddf565b905062006f59858362007e8a565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f999392919062009e0f565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005736916001600160a01b0316908a9060040162009d66565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070489062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620070769062009d30565b8015620070c75780601f106200709b57610100808354040283529160200191620070c7565b820191906000526020600020905b815481529060010190602001808311620070a957829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070f29062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620071209062009d30565b8015620071715780601f10620071455761010080835404028352916020019162007171565b820191906000526020600020905b8154815290600101906020018083116200715357829003601f168201915b505050505081526020016001820180546200718c9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620071ba9062009d30565b80156200720b5780601f10620071df576101008083540402835291602001916200720b565b820191906000526020600020905b815481529060010190602001808311620071ed57829003601f168201915b50505050508152602001600282018054620072269062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620072549062009d30565b8015620072a55780601f106200727957610100808354040283529160200191620072a5565b820191906000526020600020905b8154815290600101906020018083116200728757829003601f168201915b50505050508152602001600382018054620072c09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620072ee9062009d30565b80156200733f5780601f1062007313576101008083540402835291602001916200733f565b820191906000526020600020905b8154815290600101906020018083116200732157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073cb5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200743257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620074645760405163b1d02c3d60e01b815260040160405180910390fd5b3362007472603f8262007ddd565b620074905760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620074b690620151809062009dc9565b1115620074d657604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074e79062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620075159062009d30565b8015620075665780601f106200753a5761010080835404028352916020019162007566565b820191906000526020600020905b8154815290600101906020018083116200754857829003601f168201915b50505082875250859160058401915081906200758390826200a4f4565b50602082015160018201906200759a90826200a4f4565b5060408201516002820190620075b190826200a4f4565b5060608201516003820190620075c890826200a4f4565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200763657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076685760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007689576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076fa57620076e7858583818110620076ae57620076ae62009eb5565b9050602002016020810190620076c5919062009442565b848484818110620076da57620076da62009eb5565b9050602002013562008dcc565b620076f28162009f1a565b90506200768c565b5050505050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492938493909160808401916200776c9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200779a9062009d30565b8015620077eb5780601f10620077bf57610100808354040283529160200191620077eb565b820191906000526020600020905b815481529060010190602001808311620077cd57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620078169062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620078449062009d30565b8015620078955780601f10620078695761010080835404028352916020019162007895565b820191906000526020600020905b8154815290600101906020018083116200787757829003601f168201915b50505050508152602001600182018054620078b09062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620078de9062009d30565b80156200792f5780601f1062007903576101008083540402835291602001916200792f565b820191906000526020600020905b8154815290600101906020018083116200791157829003601f168201915b505050505081526020016002820180546200794a9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620079789062009d30565b8015620079c95780601f106200799d57610100808354040283529160200191620079c9565b820191906000526020600020905b815481529060010190602001808311620079ab57829003601f168201915b50505050508152602001600382018054620079e49062009d30565b80601f016020809104026020016040519081016040528092919081815260200182805462007a129062009d30565b801562007a635780601f1062007a375761010080835404028352916020019162007a63565b820191906000526020600020905b81548152906001019060200180831162007a4557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007aef5750505091909252505050604001519392505050565b600062007b27603f8462007ddd565b62007b455760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200509c565b60005462010000900460ff161562007bb457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007be65760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bf4603f8262007ddd565b62007c125760405163056e881160e01b815260040160405180910390fd5b3362007c22818787878762008aeb565b62007c4057604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c5f92919062009d80565b908152604051908190036020019020546001600160a01b031614158062007ca957506048868660405162007c9592919062009d80565b9081526040519081900360200190205460ff165b1562007cc8576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cf790620151809062009dc9565b111562007d1757604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d2d91906200a5bc565b908152604051908190036020019020556004810162007d4e87898362009fde565b5042600c820155604051829060459062007d6c908a908a9062009d80565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007dcc908a908a906200a2af565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050e0565b6000806000848460405160200162007e1a9291906200a63a565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e5a5760008093509350505062007e83565b603e5462007e69904262009dc9565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007ed157600080fd5b505af115801562007ee6573d6000803e3d6000fd5b505050506000600162007efa603f62008930565b62007f06919062009e85565b604954108015915062007fc45760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f80919062009e3e565b62007fc45760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fd957600b83018290555b600a83015460ff166200804c57600a8301805460ff19166001908117909155604980546000906200800c90849062009dc9565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080c39062008fa6565b90506000805b620080d48362009019565b15620081a757806000036200810957620080f8620080f2846200903f565b620090a3565b6001600160a01b0316845262008194565b80600103620081355762008121620080f2846200903f565b6001600160a01b0316602085015262008194565b8060020362008161576200814d620080f2846200903f565b6001600160a01b0316604085015262008194565b806003036200818e576200817f62008179846200903f565b620090bb565b60608501526001915062008194565b620081a7565b6200819f8162009f1a565b9050620080c9565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081ec575060208201516001600160a01b0316155b15620081fa57506004919050565b81516200820a90603f9062007ddd565b6200821757506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082839062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620082b19062009d30565b8015620083025780601f10620082d65761010080835404028352916020019162008302565b820191906000526020600020905b815481529060010190602001808311620082e457829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200832d9062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200835b9062009d30565b8015620083ac5780601f106200838057610100808354040283529160200191620083ac565b820191906000526020600020905b8154815290600101906020018083116200838e57829003601f168201915b50505050508152602001600182018054620083c79062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620083f59062009d30565b8015620084465780601f106200841a5761010080835404028352916020019162008446565b820191906000526020600020905b8154815290600101906020018083116200842857829003601f168201915b50505050508152602001600282018054620084619062009d30565b80601f01602080910402602001604051908101604052809291908181526020018280546200848f9062009d30565b8015620084e05780601f10620084b457610100808354040283529160200191620084e0565b820191906000526020600020905b815481529060010190602001808311620084c257829003601f168201915b50505050508152602001600382018054620084fb9062009d30565b80601f0160208091040260200160405190810160405280929190818152602001828054620085299062009d30565b80156200857a5780601f106200854e576101008083540402835291602001916200857a565b820191906000526020600020905b8154815290600101906020018083116200855c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620086065750505050508152505090508060e00151801562008651575082600001516001600160a01b031683602001516001600160a01b031614155b15620086605750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086bc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086e3919062009ddf565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b5b68339815191528387606001516040516200872f929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008792929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087cc9290919060040162009d66565b600060405180830381600087803b158015620087e757600080fd5b505af1158015620087fc573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008834575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008884573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620088aa919062009ddf565b101562005ac957620088cc81603d5442620088c6919062009dc9565b62007e8a565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b1580156200891357600080fd5b505af115801562008928573d6000803e3d6000fd5b505050505050565b6000620050e3825490565b6000620050e0838362009193565b60008082905060038151108062008961575060098151115b15620089705750600092915050565b60418160008151811062008988576200898862009eb5565b016020015160f81c1080620089ba5750605a81600081518110620089b057620089b062009eb5565b016020015160f81c115b15620089c95750600092915050565b60015b815181101562008ae1576030828281518110620089ed57620089ed62009eb5565b016020015160f81c108062008a1e5750603982828151811062008a145762008a1462009eb5565b016020015160f81c115b801562008a6e5750604182828151811062008a3d5762008a3d62009eb5565b016020015160f81c108062008a6e5750605a82828151811062008a645762008a6462009eb5565b016020015160f81c115b801562008abe5750606182828151811062008a8d5762008a8d62009eb5565b016020015160f81c108062008abe5750607a82828151811062008ab45762008ab462009eb5565b016020015160f81c115b1562008ace575060009392505050565b62008ad98162009f1a565b9050620089cc565b5060019392505050565b600060308414158062008aff575060608214155b1562008b0e5750600062008c12565b60008686864660405160200162008b2994939291906200a678565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b839594939291906200a6a5565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bcd57600080fd5b5060008160008151811062008be65762008be662009eb5565b016020015160f81c90506001811462008c085760009550505050505062008c12565b6001955050505050505b95945050505050565b60008061200361dead60405162008c32906200941e565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c75573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008ca99291906200a6dd565b6000604051808303818588803b15801562008cc357600080fd5b505af115801562008cd8573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050e0836001600160a01b038416620091c0565b600054610100900460ff1662008da05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001134565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dda603f8262007ddd565b62008df85760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e5c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e82919062009ddf565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008eca91815260200190565b60405180910390a350505050565b60008160405160200162008eed91906200a48c565b604051602081830303815290604052805190602001208360405160200162008f1691906200a48c565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fd48262009212565b62008fde57600080fd5b600062008fef836020015162009245565b836020015162009000919062009dc9565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620090319162009dc9565b836020015110915050919050565b60408051808201909152600080825260208201526200905e8262009019565b6200906857600080fd5b602082015160006200907a82620092d4565b905062009088818362009dc9565b60209485015260408051808201909152908152928301525090565b8051600090601514620090b557600080fd5b620050e3825b805160009015801590620090d157508151602110155b620090db57600080fd5b6000620090ec836020015162009245565b90508083600001511015620091445760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001134565b82516000906200915690839062009e85565b90506000808386602001516200916d919062009dc9565b90508051915060208310156200918a57826020036101000a820491505b50949350505050565b6000826000018281548110620091ad57620091ad62009eb5565b9060005260206000200154905092915050565b60008181526001830160205260408120546200920957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050e3565b506000620050e3565b805160009081036200922657506000919050565b6020820151805160001a9060c082101562008ae1575060009392505050565b8051600090811a60808110156200925f5750600092915050565b60b88110806200927c575060c081108015906200927c575060f881105b156200928b5750600192915050565b60c0811015620092c657620092a3600160b86200a703565b620092b29060ff168262009e85565b620092bf90600162009dc9565b9392505050565b620092a3600160f86200a703565b80516000908190811a6080811015620092f1576001915062009417565b60b88110156200931d576200930860808262009e85565b6200931590600162009dc9565b915062009417565b60c08110156200939657600060b78203600186019550806020036101000a8651049150600181018201935050808310156200938f5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001134565b5062009417565b60f8811015620093ad576200930860c08262009e85565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620094155760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001134565b505b5092915050565b610e96806200a72083390190565b6001600160a01b03811681146200174c57600080fd5b6000602082840312156200945557600080fd5b8135620092bf816200942c565b60008083601f8401126200947557600080fd5b5081356001600160401b038111156200948d57600080fd5b60208301915083602082850101111562007e8357600080fd5b60008060208385031215620094ba57600080fd5b82356001600160401b03811115620094d157600080fd5b620094df8582860162009462565b90969095509350505050565b6000806000604084860312156200950157600080fd5b833560ff811681146200951357600080fd5b925060208401356001600160401b038111156200952f57600080fd5b6200953d8682870162009462565b9497909650939450505050565b60005b83811015620095675781810151838201526020016200954d565b50506000910152565b600081518084526200958a8160208601602086016200954a565b601f01601f19169290920160200192915050565b602081526000620050e0602083018462009570565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095ee57620095ee620095b3565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200961f576200961f620095b3565b604052919050565b60006001600160401b03821115620096435762009643620095b3565b50601f01601f191660200190565b600062009668620096628462009627565b620095f4565b90508281528383830111156200967d57600080fd5b828260208301376000602084830101529392505050565b600060208284031215620096a757600080fd5b81356001600160401b03811115620096be57600080fd5b8201601f81018413620096d057600080fd5b620096e18482356020840162009651565b949350505050565b60008060408385031215620096fd57600080fd5b82356200970a816200942c565b946020939093013593505050565b80151581146200174c57600080fd5b600080600080608085870312156200973e57600080fd5b84356200974b816200942c565b935060208501356200975d816200942c565b9250604085013591506060850135620097768162009718565b939692955090935050565b6001600160401b03811681146200174c57600080fd5b600060208284031215620097aa57600080fd5b8135620092bf8162009781565b60008060408385031215620097cb57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620098155781516001600160a01b031687529582019590820190600101620097ee565b509495945050505050565b608081526000620098356080830187620097da565b82810360208481019190915286518083528782019282019060005b818110156200986e5784518352938301939183019160010162009850565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098c357601f19858403018752620098b083835162009570565b9686019692509085019060010162009891565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098f957600080fd5b883562009906816200942c565b975060208901356001600160401b03808211156200992357600080fd5b620099318c838d0162009462565b909950975060408b01359150808211156200994b57600080fd5b620099598c838d0162009462565b90975095508591506060605f19840112156200997457600080fd5b60608b01945060c08b01359250808311156200998f57600080fd5b505088016080818b031215620099a457600080fd5b8091505092959891949750929550565b60008060408385031215620099c857600080fd5b8235620099d5816200942c565b91506020830135620099e78162009718565b809150509250929050565b60208152600082516080602084015262009a1060a084018262009570565b90506020840151601f198085840301604086015262009a30838362009570565b9250604086015191508085840301606086015262009a4f838362009570565b925060608601519150808584030160808601525062008c12828262009570565b6000806000806040858703121562009a8657600080fd5b84356001600160401b038082111562009a9e57600080fd5b62009aac8883890162009462565b9096509450602087013591508082111562009ac657600080fd5b5062009ad58782880162009462565b95989497509550505050565b60008083601f84011262009af457600080fd5b5081356001600160401b0381111562009b0c57600080fd5b6020830191508360208260051b850101111562007e8357600080fd5b60008060006040848603121562009b3e57600080fd5b83356001600160401b0381111562009b5557600080fd5b62009b638682870162009ae1565b909450925050602084013562009b79816200942c565b809150509250925092565b60608152600062009b996060830186620097da565b828103602084015262009bad8186620097da565b915050826040830152949350505050565b600082601f83011262009bd057600080fd5b620050e08383356020850162009651565b60006020828403121562009bf457600080fd5b81356001600160401b038082111562009c0c57600080fd5b908301906080828603121562009c2157600080fd5b62009c2b620095c9565b82358281111562009c3b57600080fd5b62009c498782860162009bbe565b82525060208301358281111562009c5f57600080fd5b62009c6d8782860162009bbe565b60208301525060408301358281111562009c8657600080fd5b62009c948782860162009bbe565b60408301525060608301358281111562009cad57600080fd5b62009cbb8782860162009bbe565b60608301525095945050505050565b6000806000806040858703121562009ce157600080fd5b84356001600160401b038082111562009cf957600080fd5b62009d078883890162009ae1565b9096509450602087013591508082111562009d2157600080fd5b5062009ad58782880162009ae1565b600181811c9082168062009d4557607f821691505b6020821081036200462657634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dc457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050e357620050e362009d90565b60006020828403121562009df257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e305762009e3062009df9565b826040830152949350505050565b60006020828403121562009e5157600080fd5b8151620092bf8162009718565b828152604081016005831062009e785762009e7862009df9565b8260208301529392505050565b81810381811115620050e357620050e362009d90565b8082028115828204841417620050e357620050e362009d90565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ee06040830185620097da565b905060018060a01b03831660208301529392505050565b6001600160401b0382811682821603908082111562009417576200941762009d90565b60006001820162009f2f5762009f2f62009d90565b5060010190565b6000808335601e1984360301811262009f4e57600080fd5b8301803591506001600160401b0382111562009f6957600080fd5b60200191503681900382131562007e8357600080fd5b601f8211156200804c57600081815260208120601f850160051c8101602086101562009fa85750805b601f850160051c820191505b81811015620089285782815560010162009fb4565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009ff85762009ff8620095b3565b6200a010836200a009835462009d30565b8362009f7f565b6000601f8411600181146200a04357600085156200a02e5750838201355b6200a03a868262009fc9565b845550620076fa565b600083815260209020601f19861690835b828110156200a07657868501358255602094850194600190920191016200a054565b50868210156200a0945760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a0b2828362009f36565b6001600160401b038111156200a0cc576200a0cc620095b3565b6200a0e4816200a0dd855462009d30565b8562009f7f565b6000601f8211600181146200a11757600083156200a1025750838201355b6200a10e848262009fc9565b8655506200a174565b600085815260209020601f19841690835b828110156200a14a57868501358255602094850194600190920191016200a128565b50848210156200a1685760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a187602083018362009f36565b6200a19781836001860162009fde565b50506200a1a8604083018362009f36565b6200a1b881836002860162009fde565b50506200a1c9606083018362009f36565b6200a1d981836003860162009fde565b50505050565b81356200a1ec8162009781565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a2198162009781565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a2598162009781565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096e16020830184866200a286565b60006001600160401b038211156200a2e1576200a2e1620095b3565b5060051b60200190565b600060208083850312156200a2ff57600080fd5b82516001600160401b038111156200a31657600080fd5b8301601f810185136200a32857600080fd5b80516200a33962009662826200a2c5565b81815260059190911b820183019083810190878311156200a35957600080fd5b928401925b828410156200a3845783516200a374816200942c565b825292840192908401906200a35e565b979650505050505050565b600060208083850312156200a3a357600080fd5b82516001600160401b03808211156200a3bb57600080fd5b818501915085601f8301126200a3d057600080fd5b81516200a3e162009662826200a2c5565b81815260059190911b830184019084810190888311156200a40157600080fd5b8585015b838110156200a47f578051858111156200a41f5760008081fd5b8601603f81018b136200a4325760008081fd5b8781015160406200a447620096628362009627565b8281528d828486010111156200a45d5760008081fd5b6200a46e838c83018487016200954a565b86525050509186019186016200a405565b5098975050505050505050565b600082516200a4a08184602087016200954a565b9190910192915050565b60ff8416815260406020820152600062008c126040830184866200a286565b6040815260006200a4df6040830186886200a286565b82810360208401526200a3848185876200a286565b81516001600160401b038111156200a510576200a510620095b3565b6200a528816200a521845462009d30565b8462009f7f565b602080601f8311600181146200a55c57600084156200a5475750858301515b6200a553858262009fc9565b86555062008928565b600085815260208120601f198616915b828110156200a58d578886015182559484019460019091019084016200a56c565b50858210156200a5ac5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5cc8162009d30565b600182811680156200a5e757600181146200a5fd576200a62e565b60ff19841687528215158302870194506200a62e565b8760005260208060002060005b858110156200a6255781548a8201529084019082016200a60a565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a664576200a66462009df9565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6b9818460208b016200954a565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096e19083018462009570565b60ff8281168282160390811115620050e357620050e362009d9056fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656424d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e0400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000038000000000000000000000000295e26495cef6f69dfa69911d9d8e4f3bbadb89b00000000000000000000000072b61c6014342d914470ec7ac2975be345796c2b0000000000000000000000002465176c461afb316ebc773c61faee85a6515daa0000000000000000000000007ae2f5b9e386cd1b50a4550696d957cb4900f03a000000000000000000000000b4dd66d7c2c7e57f628210187192fb89d4b99dd4000000000000000000000000e9ae3261a475a27bb1028f140bc2a7c843318afd000000000000000000000000ee226379db83cffc681495730c11fdde79ba4c0c0000000000000000000000003f349bbafec1551819b8be1efea2fc46ca749aa10000000000000000000000008b6c8fd93d6f4cea42bbb345dbc6f0dfdb5bec73000000000000000000000000ef0274e31810c9df02f98fafde0f841f4e66a1cd000000000000000000000000a6f79b60359f141df90a0c745125b131caaffd12000000000000000000000000e2d3a739effcd3a99387d015e260eefac72ebea100000000000000000000000061dd481a114a2e761c554b641742c973867899d3000000000000000000000000cc8e6d00c17eb431350c6c50d8b8f05176b90b11000000000000000000000000ea0a6e3c511bbd10f4519ece37dc24887e11b55d0000000000000000000000002d4c407bbe49438ed859fe965b140dcf1aab71a9000000000000000000000000685b1ded8013785d6623cc18d214320b6bb64759000000000000000000000000d1d6bf74282782b0b3eb1413c901d6ecf02e8e2800000000000000000000000070f657164e5b75689b64b7fd1fa275f334f28e18000000000000000000000000be807dddb074639cd9fa61b47676c064fc50d62c000000000000000000000000b218c5d6af1f979ac42bc68d98a5a0d796c6ab010000000000000000000000009f8ccdafcc39f3c7d6ebf637c9151673cbc36b88000000000000000000000000d93dbfb27e027f5e9e6da52b9e1c413ce35adc11000000000000000000000000ce2fd7544e0b2cc94692d4a704debef7bcb613280000000000000000000000000bac492386862ad3df4b666bc096b0505bb694da000000000000000000000000733fda7714a05960b7536330be4dbb135bef0ed600000000000000000000000035ebb5849518aff370ca25e19e1072cc1a9fabca000000000000000000000000ebe0b55ad7bb78309180cada12427d120fdbcc3a0000000000000000000000006488aa4d1955ee33403f8ccb1d4de5fb97c7ade20000000000000000000000004396e28197653d0c244d95f8c1e57da902a72b4e000000000000000000000000702be18040aa2a9b1af9219941469f1a435854fc00000000000000000000000012d810c13e42811e9907c02e02d1fad46cfa18ba0000000000000000000000002a7cdd959bfe8d9487b2a43b33565295a698f7e2000000000000000000000000b8f7166496996a7da21cf1f1b04d9b3e26a3d0770000000000000000000000009bb832254baf4e8b4cc26bd2b52b31389b56e98b0000000000000000000000004430b3230294d12c6ab2aac5c2cd68e80b16b581000000000000000000000000c2be4ec20253b8642161bc3f444f53679c1f3d47000000000000000000000000ee01c3b1283aa067c58eab4709f85e99d46de5fe0000000000000000000000009ef9f4360c606c7ab4db26b016007d3ad0ab86a00000000000000000000000002f7be8361c80a4c1e7e9aaf001d0877f1cfde21800000000000000000000000035e7a025f4da968de7e4d7e4004197917f4070f1000000000000000000000000d6caa02bbebaebb5d7e581e4b66559e635f805ff0000000000000000000000008c4d90829ce8f72d0163c1d5cf348a862d55063000000000000000000000000068bf0b8b6fb4e317a0f9d6f03eaf8ce6675bc60d00000000000000000000000082012708dafc9e1b880fd083b32182b869be8e090000000000000000000000006bbad7cf34b5fa511d8e963dbba288b1960e75d600000000000000000000000022b81f8e175ffde54d797fe11eb03f9e3bf75f1d00000000000000000000000078f3adfc719c99674c072166708589033e2d9afe00000000000000000000000029a97c6effb8a411dabc6adeefaa84f5067c8bbe000000000000000000000000aacf6a8119f7e11623b5a43da638e91f669a130f0000000000000000000000002b3a6c089311b478bf629c29d790a7a6db3fc1b9000000000000000000000000fe6e72b223f6d6cf4edc6bff92f30e84b8258249000000000000000000000000a6503279e8b5c7bb5cf4defd3ec8abf3e009a80b0000000000000000000000004ee63a09170c3f2207aeca56134fc2bee1b28e3c000000000000000000000000ac0e15a038eedfc68ba3c35c73fed5be4a07afb500000000000000000000000069c77a677c40c7fbea129d4b171a39b7a8ddabfa00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000056000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006e0000000000000000000000000000000000000000000000000000000000000074000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000086000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000920000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000009e00000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b600000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000e600000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000f200000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000fe0000000000000000000000000000000000000000000000000000000000000104000000000000000000000000000000000000000000000000000000000000010a00000000000000000000000000000000000000000000000000000000000000030977cf58294f7239d515e15b24cfeb82494056cf691eaf729b165f32c9757c429dba5051155903067e56ebe3698678e9100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003081db0422a5fd08e40db1fc2368d2245e4b18b1d0b85c921aaaafd2e341760e29fc613edd39f71254614e2055c3287a510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a923564c6ffd37fb2fe9f118ef88092e8762c7addb526ab7eb1e772baef85181f892c731be0c1891a50e6b06262c816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b84f83ff2df44193496793b847f64e9d6db1b3953682bb95edd096eb1e69bbd357c200992ca78050d0cbe180cfaa018e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0de8472be0308918c8bdb369bf5a67525210daffa053c52224c1d2ef4f5b38e4ecfcd06a1cc51c39c3a7dccfcb6b507000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ae7bc6faa3f0cc3e6093b633fd7ee4f86970926958d0b7ec80437f936acf212b78f0cd095f4565fff144fd458d233a5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003084248a459464eec1a21e7fc7b71a053d9644e9bb8da4853b8f872cd7c1d6b324bf1922829830646ceadfb658d3de009a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a8a257074e82b881cfa06ef3eb4efeca060c2531359abd0eab8af1e3edfa2025fca464ac9c3fd123f6c24a0d7886948500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003098cbf822e4bc29f1701ac0350a3d042cd0756e9f74822c6481773ceb000641c51b870a996fe0f6a844510b1061f38cd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b772e180fbf38a051c97dabc8aaa0126a233a9e828cdafcc7422c4bb1f4030a56ba364c54103f26bad91508b5220b741000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030956c470ddff48cb49300200b5f83497f3a3ccb3aeb83c5edd9818569038e61d197184f4aa6939ea5e9911e3e98ac6d210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a80967d39e406a0a9642d41e9007a27fc1150a267d143a9f786cd2b5eecbdcc4036273705225b956d5e2f8f5eb95d25000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b3a3d4feb825ae9702711566df5dbf38e82add4dd1b573b95d2466fa6501ccb81e9d26a352b96150ccbf7b697fd0a419000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2d4c6283c44a1c7bd503aaba7666e9f0c830e0ff016c1c750a5e48757a713d0836b1cabfd5c281b1de3b77d1c19218300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003093c1f7f6929d1fe2a17b4e14614ef9fc5bdc713d6631d675403fbeefac55611bf612700b1b65f4744861b80b0f7d6ab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308a60f82a7bcf74b4cb053b9bfe83d0ed02a84ebb10865dfdd8e26e7535c43a1cccd268e860f502216b379dfc9971d358000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030939e8fb41b682372335be8070199ad3e8621d1743bcac4cc9d8f0f6e10f41e56461385c8eb5daac804fe3f2bca6ce73900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096a26afa1295da81418593bd12814463d9f6e45c36a0e47eb4cd3e5b6af29c41e2a3a5636430155a466e216585af3ba7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b1f2c71577def3144fabeb75a8a1c8cb5b51d1d1b4a05eec67988b8685008baa17459ec425dbaebc852f496dc92196cd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b659ad0fbd9f515893fdd740b29ba0772dbde9b4635921dd91bd2963a0fc855e31f6338f45b211c4e9dedb7f2eb09de70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308819ec5ec3e97e1f03bbb4bb6055c7a5feac8f4f259df58349a32bb5cb377e2cb1f362b77f1dd398cfd3e9dba46138c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b313f9cba57c63a84edb4079140e6dbd7829e5023c9532fce57e9fe602400a2953f4bf7dab66cca16e97be95d4de7044000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b64abe25614c9cfd32e456b4d521f29c8357f4af4606978296c9be93494072ac05fa86e3d27cc8d66e65000f8ba33fbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0bec348681af766751cb839576e9c515a09c8bffa30a46296ccc56612490eb480d03bf948e10005bbcc0421f90b3d4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b0245c33bc556cfeb013cd3643b30dbdef6df61a0be3ba00cae104b3c587083852e28f8911689c7033f7021a8a1774c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a7f3e2c0b4b16ad183c473bafe30a36e39fa4a143657e229cd23c77f8fbc8e4e4e241695dd3d248d1e51521eee6619140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308fdf49777b22f927d460fa3fcdd7f2ba0cf200634a3dfb5197d7359f2f88aaf496ef8c93a065de0f376d164ff2b6db9a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308ab17a9148339ef40aed8c177379c4db0bb5efc6f5c57a5d1a6b58b84d4b562e227196c79bda9a136830ed0c09f378130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308dd20979bd63c14df617a6939c3a334798149151577dd3f1fadb2bd1c1b496bf84c25c879da5f0f9dfdb88c6dd17b1e6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b679cbab0276ac30ff5f198e5e1dedf6b84959129f70fe7a07fcdf13444ba45b5dbaa7b1f650adf8b0acbecd04e2675b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000308974616fe8ab950a3cded19b1d16ff49c97bf5af65154b3b097d5523eb213f3d35fc5c57e7276c7f2d83be87ebfdcdf9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030ab764a39ff81dad720d5691b852898041a3842e09ecbac8025812d51b32223d8420e6ae51a01582220a10f7722de67c10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000309025b6715c8eaabac0bfccdb2f25d651c9b69b0a184011a4a486b0b2080319d2396e7ca337f2abdf01548b2de1b3ba06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b2317f59d86abfaf690850223d90e9e7593d91a29331dfc2f84d5adecc75fc39ecab4632c1b4400a3dd1e1298835bcca00000000000000000000000000000000a164736f6c6343000811000a", + Code: feynman.MainnetStakeHubContract, }, { ContractAddr: common.HexToAddress(StakeCreditContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a", + Code: feynman.MainnetStakeCreditContract, }, { ContractAddr: common.HexToAddress(GovernorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c8b565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca4565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615dea565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c8b565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615ee0565b3480156105b157600080fd5b506105e36105c0366004615c8b565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f08565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160df565b611267565b34801561066b57600080fd5b5061052061067a36600461616e565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160df565b611378565b3480156106c157600080fd5b506105206106d0366004615c8b565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c8b565b61146b565b6040516104d59493929190616254565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa3660046162a1565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c8b565b611773565b6040516104d59190616305565b3480156107e857600080fd5b5061045c6107f7366004615c8b565b61177e565b34801561080857600080fd5b5061045c61081736600461616e565b6117a9565b34801561082857600080fd5b506104fe61083736600461632d565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160df565b61182a565b34801561089357600080fd5b506104fe6108a236600461616e565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616e565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616e565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b5061052061098936600461635d565b611960565b34801561099a57600080fd5b506105206109a9366004616389565b611989565b3480156109ba57600080fd5b506105206109c9366004615c8b565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c8b565b611a88565b3480156109fa57600080fd5b50610520610a0936600461640c565b611b10565b348015610a1a57600080fd5b50610520610a29366004616465565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eaf565b348015610a6457600080fd5b50610a6d611f45565b6040516104d59796959493929190616505565b348015610a8c57600080fd5b50610a95611fe3565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616567565b612057565b348015610aec57600080fd5b5061052061206e565b348015610b0157600080fd5b5061045c610b1036600461616e565b61209b565b348015610b2157600080fd5b50610520610b30366004615c8b565b612123565b348015610b4157600080fd5b5061045c610b503660046165bf565b6121bf565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612904565b348015610b9457600080fd5b50610626610ba336600461661e565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c8b565b612910565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166b1565b61291b565b348015610c0e57600080fd5b50610520610c1d3660046160df565b612a2b565b348015610c2e57600080fd5b5061045c610c3d3660046166f4565b612a65565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c36600461671d565b612aed565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c8b565b612b74565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d3636600461632d565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c8b565b612b97565b348015610e1257600080fd5b50610520610e213660046167be565b612c1f565b348015610e3257600080fd5b5061045c610e41366004615c8b565b612c40565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167ea565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c8b565b612cc8565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c8b565b612d57565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a612123565b60008c815261016360205260409020549098506001600160401b03169650610f308b612910565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162ef565b1493506007816007811115610f9e57610f9e6162ef565b14925050509193959799509193959799565b6000610fbb82612d7a565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd929190616852565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9f565b868686612dcc565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612dea915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b815260040161045390616862565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa929190616852565b604051809103902090505b806111c1610164612e53565b036111b557505b6111d181612ed2565b50565b606061016280546111e490616899565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616899565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168d3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168ff565b9150506112c6565b5061134985858585613043565b95945050505050565b6000610ef06001611361611fe3565b61136b9190616918565b65ffffffffffff16612cc8565b60008061138786868686612a2b565b9050600061139482611773565b905060048160078111156113aa576113aa6162ef565b14806113c7575060058160078111156113c5576113c56162ef565b145b6113e35760405162461bcd60e51b81526004016104539061693e565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613248565b61145482888888886132e9565b61146182888888886133cb565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616899565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616899565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616899565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616899565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613406565b979650505050505050565b6000610fbb82613429565b60008060008061178d85613576565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613807565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697f565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613406565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612dea915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169ec565b81548110611a0c57611a0c6168d3565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138d2565b61025e9061393b565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b815260040161045390616862565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae9929190616852565b604051809103902090505b80611b00610164612e53565b03611af457505b6111d1816139ee565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340692505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a31565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162ef565b1480611c1b57506000816007811115611c1957611c196162ef565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a2b565b3360009081526102c3602052604090208190559050611c7188888888613adc565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b44565b611dd4611db760036000616a15565b611dc5600362093a80616a15565b680ad78ebc5ac6200000613b9b565b611ddc613bd2565b611de7612005613bf9565b611df2612006613c29565b611dfc600a613c59565b611e12611e0d600362015180616a15565b613c89565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e677308e68ec70fa3b629784fdb28887e206ce8561e08613cb9565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611ee1576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0b57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f655750609954155b611fa95760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fb1613d0c565b611fb9613d1b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa92505050801561204a575060408051601f3d908101601f1916820190925261204791810190616a37565b60015b61195b57610ef043613d2a565b6000612064848484613d91565b90505b9392505050565b61025e54600090156120935761208561025e613e08565b6001600160e01b0316905090565b5061025d5490565b6120a3610edb565b6001600160a01b0316336001600160a01b0316146120d35760405162461bcd60e51b815260040161045390616862565b306120dc610edb565b6001600160a01b03161461211a57600080366040516120fc929190616852565b604051809103902090505b80612113610164612e53565b0361210757505b6111d181613e38565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015612182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a69190616a5f565b9050806001146121b65780612067565b60009392505050565b33611007146121e557604051630f22c43960e41b81526110076004820152602401610453565b61224b6040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561230057602081146122795783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916122ba918585808385018382808284376000920191909152509293925050613efc9050565b90508015806122cb57506201518081115b156122f15784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa816139ee565b506128c1565b6123676040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561241657602081146123955783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916123d6918585808385018382808284376000920191909152509293925050613efc9050565b90508015806123e7575062278d0081115b1561240d5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613f01565b612482604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561253857602081146124b05783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f84018190048102820181019092528281526000916124f1918585808385018382808284376000920191909152509293925050613efc9050565b9050801580612509575069021e19e0c9bab240000081115b1561252f5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613fa4565b6125a26040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561265157602081146125d05783838383604051630a5a604160e01b81526004016104539493929190616aa1565b604080516020601f8401819004810282018101909252828152600091612611918585808385018382808284376000920191909152509293925050613efc9050565b905060058110806126225750601481115b156126485784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81612ed2565b6126c0604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b1561278657600881146126ee5783838383604051630a5a604160e01b81526004016104539493929190616aa1565b6000612734600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efc9050565b90506001600160401b038116158061275757506202a300816001600160401b0316115b1561277d5784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81613fe7565b6127f26040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea39050565b156128a057601481146128205783838383604051630a5a604160e01b81526004016104539493929190616aa1565b6000612866601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efc9050565b90506001600160a01b0381166128975784848484604051630a5a604160e01b81526004016104539493929190616aa1565b6122fa81614053565b838383836040516325ee20d560e21b81526004016104539493929190616aa1565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f69493929190616aa1565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140bf565b612923610edb565b6001600160a01b0316336001600160a01b0316146129535760405162461bcd60e51b815260040161045390616862565b3061295c610edb565b6001600160a01b03161461299a576000803660405161297c929190616852565b604051809103902090505b80612993610164612e53565b0361298757505b600080856001600160a01b03168585856040516129b8929190616852565b60006040518083038185875af1925050503d80600081146129f5576040519150601f19603f3d011682016040523d82523d6000602084013e6129fa565b606091505b5091509150612a228282604051806060016040528060288152602001616efe602891396140fd565b50505050505050565b600084848484604051602001612a449493929190616ac8565b60408051601f19818403018152919052805160209091012095945050505050565b612a6d610edb565b6001600160a01b0316336001600160a01b031614612a9d5760405162461bcd60e51b815260040161045390616862565b30612aa6610edb565b6001600160a01b031614612ae45760008036604051612ac6929190616852565b604051809103902090505b80612add610164612e53565b03612ad157505b6111d181613fe7565b60008251845114612b515760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5f338787878787614116565b611b588686612b6e87876141d4565b85611b62565b600080600080612b8385613576565b93509350935093506117a184848484611267565b612b9f610edb565b6001600160a01b0316336001600160a01b031614612bcf5760405162461bcd60e51b815260040161045390616862565b30612bd8610edb565b6001600160a01b031614612c165760008036604051612bf8929190616852565b604051809103902090505b80612c0f610164612e53565b03612c0357505b6111d181613f01565b60006120678383612c3b60408051602081019091526000815290565b613d91565b612c48610edb565b6001600160a01b0316336001600160a01b031614612c785760405162461bcd60e51b815260040161045390616862565b30612c81610edb565b6001600160a01b031614612cbf5760008036604051612ca1929190616852565b604051809103902090505b80612cb8610164612e53565b03612cac57505b6111d181613fa4565b60006064612cd5836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d439190616a5f565b612d4d9190616b13565b610fbb9190616a15565b600080600080612d6685613576565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614306565b6000610fbb612dac6143a2565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612ddd878787876143ac565b9150915061146181614470565b6000805462010000900460ff1615612e1557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e465760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145ba565b6000612e6e8254600f81810b600160801b909204900b131590565b15612e8c57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f555760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5f61206e565b90508015801590612f71575061025e54155b15612fd657604080518082019091526000815261025e9060208101612f95846146bd565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613004612ff1612fe4611fe3565b65ffffffffffff166138d2565b612ffa846146bd565b61025e9190614726565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061305286868686612a2b565b9050600461305f82611773565b6007811115613070576130706162ef565b1461308d5760405162461bcd60e51b81526004016104539061693e565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fc9190616a5f565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613137908a908a908a906000908b90600401616b2a565b602060405180830381865afa158015613154573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131789190616a5f565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c5918b918b918b91908b908990600401616b78565b600060405180830381600087803b1580156131df57600080fd5b505af11580156131f3573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132259190616bd0565b604080519283526020830191909152015b60405180910390a15095945050505050565b30613251610edb565b6001600160a01b0316146132e25760005b84518110156117a157306001600160a01b0316858281518110613287576132876168d3565b60200260200101516001600160a01b0316036132d2576132d28382815181106132b2576132b26168d3565b60200260200101518051906020012061016461474190919063ffffffff16565b6132db816168ff565b9050613262565b5050505050565b60005462010000900460ff161561331357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133445760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133bd576102c16000868381518110613367576133676168d3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133ab57604051630b094f2760e31b815260040160405180910390fd5b806133b5816168ff565b915050613347565b506132e2858585858561477d565b306133d4610edb565b6001600160a01b0316146132e25761016454600f81810b600160801b909204900b13156132e2576000610164556132e2565b60006113498585858561342460408051602081019091526000815290565b612dea565b600080613435836147f2565b9050600481600781111561344b5761344b6162ef565b146134565792915050565b600083815261022c602052604090205480613472575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e09190616be3565b156134ef575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355d9190616be3565b1561356c575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374883600301805480602002602001604051908101604052809291908181526020016000905b8282101561366f5783829060005260206000200180546135e290616899565b80601f016020809104026020016040519081016040528092919081815260200182805461360e90616899565b801561365b5780601f106136305761010080835404028352916020019161365b565b820191906000526020600020905b81548152906001019060200180831161363e57829003601f168201915b5050505050815260200190600101906135c3565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373f5783829060005260206000200180546136b290616899565b80601f01602080910402602001604051908101604052809291908181526020018280546136de90616899565b801561372b5780601f106137005761010080835404028352916020019161372b565b820191906000526020600020905b81548152906001019060200180831161370e57829003601f168201915b505050505081526020019060010190613693565b505050506141d4565b600984015483546040805160208084028201810190925282815291869183018282801561379e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613780575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137f057602002820191906000526020600020905b8154815260200190600101908083116137dc575b505050505092509450945094509450509193509193565b60008061381686868686612a2b565b60008181526101c660205260409020549091506001600160a01b03163381148061386a5750613843612904565b613868826001613851611fe3565b61385b9190616918565b65ffffffffffff16612c1f565b105b6138c65760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b6117688787878761492a565b600063ffffffff8211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399857600061395684614938565b61396090856169ec565b60008881526020902090915081015463ffffffff908116908716101561398857809150613996565b613993816001616bd0565b92505b505b60006139a687878585614a20565b905080156139e1576139cb876139bd6001846169ec565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ada576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aac9190616a5f565b1015613acb576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3833868686516001600160401b03811115613afd57613afd615d27565b604051908082528060200260200182016040528015613b3057816020015b6060815260200190600190039081613b1b5790505b508787614116565b61134985858585614a76565b600054610100900460ff16613b6b5760405162461bcd60e51b815260040161045390616c05565b613b9281613b8d6040805180820190915260018152603160f81b602082015290565b614e55565b6111d181614ea4565b600054610100900460ff16613bc25760405162461bcd60e51b815260040161045390616c05565b613bcd838383614edc565b505050565b600054610100900460ff16613ada5760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff16613c205760405162461bcd60e51b815260040161045390616c05565b6111d181614f1e565b600054610100900460ff16613c505760405162461bcd60e51b815260040161045390616c05565b6111d181614f68565b600054610100900460ff16613c805760405162461bcd60e51b815260040161045390616c05565b6111d181614f8f565b600054610100900460ff16613cb05760405162461bcd60e51b815260040161045390616c05565b6111d181614fb6565b600054610100900460ff16613ce05760405162461bcd60e51b815260040161045390616c05565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616899565b6060609b80546111e490616899565b600065ffffffffffff8211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120649190616a5f565b805460009080156121b657613e22836139bd6001846169ec565b54600160201b90046001600160e01b0316612067565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb69190616c50565b6040516020818303038152906040528051906020012083604051602001613edd9190616c50565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f615760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fdd565b6060831561410c575081612067565b6120678383614ff3565b805160208201206000614134878761412e88886141d4565b85612a2b565b60008181526101c6602052604090206009810154919250906141c95780546001600160a01b0319166001600160a01b038a16178155875161417e90600183019060208b0190615ac2565b50865161419490600283019060208a0190615b23565b5085516141aa9060038301906020890190615b5e565b5084516141c09060048301906020880190615bb0565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141f1576141f1615d27565b60405190808252806020026020018201604052801561422457816020015b606081526020019060019003908161420f5790505b50905060005b81518110156142fe57848181518110614245576142456168d3565b6020026020010151516000146142b557848181518110614267576142676168d3565b602002602001015180519060200120848281518110614288576142886168d3565b60200260200101516040516020016142a1929190616c6c565b6040516020818303038152906040526142d0565b8381815181106142c7576142c76168d3565b60200260200101515b8282815181106142e2576142e26168d3565b6020026020010181905250806142f7906168ff565b905061422a565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434c57506001600160e01b0319868116908216145b8061436357506001600160e01b0319868116908516145b8061437e57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef061501d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143e35750600090506003614467565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614437573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661446057600060019250925050614467565b9150600090505b94509492505050565b6000816004811115614484576144846162ef565b0361448c5750565b60018160048111156144a0576144a06162ef565b036144ed5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b6002816004811115614501576145016162ef565b0361454e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b6003816004811115614562576145626162ef565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145ca8787878787615091565b600088815261029060205260409020549091506001600160401b03161580156145f757506145f7876151e7565b15611b5857600061461161028f546001600160401b031690565b614619611fe3565b65ffffffffffff1661462b9190616c9d565b905061463688612910565b816001600160401b03161115614685576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139375760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614734858585615227565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b9908890889088906000908990600401616b2a565b6000604051808303818588803b1580156147d257600080fd5b505af11580156147e6573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148175750600792915050565b6002810154610100900460ff16156148325750600292915050565b600083815261016360205260408120546001600160401b03169081900361489b5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a5611fe3565b65ffffffffffff1690508082106148c157506000949350505050565b60006148cc86612910565b90508181106148e15750600195945050505050565b6148ea866151e7565b801561490d575060008681526101c6602052604090206006810154600590910154115b1561491e5750600495945050505050565b50600395945050505050565b6000611349858585856153c6565b60008160000361494a57506000919050565b600060016149578461547c565b901c6001901b90506001818481614970576149706169ff565b048201901c90506001818481614988576149886169ff565b048201901c905060018184816149a0576149a06169ff565b048201901c905060018184816149b8576149b86169ff565b048201901c905060018184816149d0576149d06169ff565b048201901c905060018184816149e8576149e86169ff565b048201901c90506001818481614a0057614a006169ff565b048201901c905061206781828581614a1a57614a1a6169ff565b04615510565b60005b818310156142fe576000614a37848461551f565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a6257809250614a70565b614a6d816001616bd0565b93505b50614a23565b600033614a83818461553a565b614acf5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad9611fe3565b65ffffffffffff169050614aeb612904565b614afa83610e216001856169ec565b1015614b625760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b778888888880519060200120612a2b565b90508651885114614b9a5760405162461bcd60e51b815260040161045390616cbd565b8551885114614bbb5760405162461bcd60e51b815260040161045390616cbd565b6000885111614c0c5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c7c5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c886101945490565b614c929084616bd0565b90506000614ca06101955490565b614caa9083616bd0565b90506040518060e00160405280614cc08461562b565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614ced8361562b565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614df257614df2615d27565b604051908082528060200260200182016040528015614e2557816020015b6060815260200190600190039081614e105790505b508d88888f604051614e3f99989796959493929190616cfe565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e7c5760405162461bcd60e51b815260040161045390616c05565b609a614e888382616ddc565b50609b614e958282616ddc565b50506000609881905560995550565b600054610100900460ff16614ecb5760405162461bcd60e51b815260040161045390616c05565b610162614ed88282616ddc565b5050565b600054610100900460ff16614f035760405162461bcd60e51b815260040161045390616c05565b614f0c836139ee565b614f1582613f01565b613bcd81613fa4565b600054610100900460ff16614f455760405162461bcd60e51b815260040161045390616c05565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661211a5760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c05565b600054610100900460ff16612ae45760405162461bcd60e51b815260040161045390616c05565b6000818311614fec5781612067565b5090919050565b8151156150035781518083602001fd5b8060405162461bcd60e51b81526004016104539190615ee0565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f615048615693565b6150506156ec565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150ab88611773565b60078111156150bc576150bc6162ef565b146151155760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512f9088906001600160401b031686613d91565b905061513e888888848861571d565b835160000361519357866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151869493929190616e9b565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d4959493929190616ec3565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521e610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b82546000908190801561536d576000615245876139bd6001856169ec565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c65760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530e57846152e7886139bd6001866169ec565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561535d565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147399050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614739565b6000806153d5868686866158bb565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916154319160040190815260200190565b600060405180830381600087803b15801561544b57600080fd5b505af115801561545f573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561549157608092831c92015b604083901c156154a357604092831c92015b602083901c156154b557602092831c92015b601083901c156154c757601092831c92015b600883901c156154d957600892831c92015b600483901c156154eb57600492831c92015b600283901c156154fd57600292831c92015b600183901c15610fbb5760010192915050565b6000818310614fec5781612067565b600061552e6002848418616a15565b61206790848416616bd0565b80516000906034811015615552576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558557600192505050610fbb565b6000806155936028856169ec565b90505b8381101561560a576000806155ca8884815181106155b6576155b66168d3565b01602001516001600160f81b0319166159c8565b91509150816155e25760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b179350505080615603906168ff565b9050615596565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569e613d0c565b8051909150156156b5578051602090910120919050565b60985480156156c45792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f7613d1b565b80519091501561570e578051602090910120919050565b60995480156156c45792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157ad5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157cd84615a5a565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff851661581d57838260060160008282546158129190616bd0565b90915550612a229050565b60001960ff86160161583d57838260050160008282546158129190616bd0565b60011960ff86160161585d57838260070160008282546158129190616bd0565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158ca86868686612a2b565b905060006158d782611773565b905060028160078111156158ed576158ed6162ef565b1415801561590d5750600681600781111561590a5761590a6162ef565b14155b801561592b57506007816007811115615928576159286162ef565b14155b6159775760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132369084815260200190565b60008060f883901c602f811180156159e35750603a8160ff16105b156159f857600194602f199091019350915050565b8060ff166040108015615a0e575060478160ff16105b15615a23576001946036199091019350915050565b8060ff166060108015615a39575060678160ff16105b15615a4e576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b17579160200282015b82811115615b1757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ae2565b50613937929150615c02565b828054828255906000526020600020908101928215615b17579160200282015b82811115615b17578251825591602001919060010190615b43565b828054828255906000526020600020908101928215615ba4579160200282015b82811115615ba45782518290615b949082616ddc565b5091602001919060010190615b7e565b50613937929150615c17565b828054828255906000526020600020908101928215615bf6579160200282015b82811115615bf65782518290615be69082616ddc565b5091602001919060010190615bd0565b50613937929150615c34565b5b808211156139375760008155600101615c03565b80821115613937576000615c2b8282615c51565b50600101615c17565b80821115613937576000615c488282615c51565b50600101615c34565b508054615c5d90616899565b6000825580601f10615c6d575050565b601f0160209004906000526020600020908101906111d19190615c02565b600060208284031215615c9d57600080fd5b5035919050565b600060208284031215615cb657600080fd5b81356001600160e01b03198116811461206757600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615cf157600080fd5b5081356001600160401b03811115615d0857600080fd5b602083019150836020828501011115615d2057600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6557615d65615d27565b604052919050565b60006001600160401b03821115615d8657615d86615d27565b50601f01601f191660200190565b600082601f830112615da557600080fd5b8135615db8615db382615d6d565b615d3d565b818152846020838601011115615dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0657600080fd5b88359750615e1660208a01615cce565b965060408901356001600160401b0380821115615e3257600080fd5b615e3e8c838d01615cdf565b909850965060608b0135915080821115615e5757600080fd5b50615e648b828c01615d94565b945050615e7360808a01615cce565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615eab578181015183820152602001615e93565b50506000910152565b60008151808452615ecc816020860160208601615e90565b601f01601f19169290920160200192915050565b6020815260006120676020830184615eb4565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1e57600080fd5b8435615f2981615ef3565b93506020850135615f3981615ef3565b92506040850135915060608501356001600160401b03811115615f5b57600080fd5b615f6787828801615d94565b91505092959194509250565b60006001600160401b03821115615f8c57615f8c615d27565b5060051b60200190565b600082601f830112615fa757600080fd5b81356020615fb7615db383615f73565b82815260059290921b84018101918181019086841115615fd657600080fd5b8286015b84811015615ffa578035615fed81615ef3565b8352918301918301615fda565b509695505050505050565b600082601f83011261601657600080fd5b81356020616026615db383615f73565b82815260059290921b8401810191818101908684111561604557600080fd5b8286015b84811015615ffa5780358352918301918301616049565b600082601f83011261607157600080fd5b81356020616081615db383615f73565b82815260059290921b840181019181810190868411156160a057600080fd5b8286015b84811015615ffa5780356001600160401b038111156160c35760008081fd5b6160d18986838b0101615d94565b8452509183019183016160a4565b600080600080608085870312156160f557600080fd5b84356001600160401b038082111561610c57600080fd5b61611888838901615f96565b9550602087013591508082111561612e57600080fd5b61613a88838901616005565b9450604087013591508082111561615057600080fd5b5061615d87828801616060565b949793965093946060013593505050565b60006020828403121561618057600080fd5b813561206781615ef3565b600081518084526020808501945080840160005b838110156161c45781516001600160a01b03168752958201959082019060010161619f565b509495945050505050565b600081518084526020808501945080840160005b838110156161c4578151875295820195908201906001016161e3565b600081518084526020808501808196508360051b8101915082860160005b85811015616247578284038952616235848351615eb4565b9885019893509084019060010161621d565b5091979650505050505050565b608081526000616267608083018761618b565b828103602084015261627981876161cf565b9050828103604084015261628d81866161ff565b9050828103606084015261176881856161ff565b600080600080600060a086880312156162b957600080fd5b853594506162c960208701615cce565b93506162d760408701615cce565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632757634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561634057600080fd5b82359150602083013561635281615ef3565b809150509250929050565b6000806040838503121561637057600080fd5b8235915061638060208401615cce565b90509250929050565b6000806000806000608086880312156163a157600080fd5b853594506163b160208701615cce565b935060408601356001600160401b03808211156163cd57600080fd5b6163d989838a01615cdf565b909550935060608801359150808211156163f257600080fd5b506163ff88828901615d94565b9150509295509295909350565b6000806000806060858703121561642257600080fd5b8435935061643260208601615cce565b925060408501356001600160401b0381111561644d57600080fd5b61645987828801615cdf565b95989497509550505050565b6000806000806080858703121561647b57600080fd5b84356001600160401b038082111561649257600080fd5b61649e88838901615f96565b955060208701359150808211156164b457600080fd5b6164c088838901616005565b945060408701359150808211156164d657600080fd5b6164e288838901616060565b935060608701359150808211156164f857600080fd5b50615f6787828801615d94565b60ff60f81b8816815260e06020820152600061652460e0830189615eb4565b82810360408401526165368189615eb4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161cf565b60008060006060848603121561657c57600080fd5b833561658781615ef3565b92506020840135915060408401356001600160401b038111156165a957600080fd5b6165b586828701615d94565b9150509250925092565b600080600080604085870312156165d557600080fd5b84356001600160401b03808211156165ec57600080fd5b6165f888838901615cdf565b9096509450602087013591508082111561661157600080fd5b5061645987828801615cdf565b600080600080600060a0868803121561663657600080fd5b853561664181615ef3565b9450602086013561665181615ef3565b935060408601356001600160401b038082111561666d57600080fd5b61667989838a01616005565b9450606088013591508082111561668f57600080fd5b61669b89838a01616005565b935060808801359150808211156163f257600080fd5b600080600080606085870312156166c757600080fd5b84356166d281615ef3565b93506020850135925060408501356001600160401b0381111561644d57600080fd5b60006020828403121561670657600080fd5b81356001600160401b038116811461206757600080fd5b600080600080600060a0868803121561673557600080fd5b85356001600160401b038082111561674c57600080fd5b61675889838a01615f96565b9650602088013591508082111561676e57600080fd5b61677a89838a01616005565b9550604088013591508082111561679057600080fd5b61679c89838a01616060565b945060608801359150808211156167b257600080fd5b61669b89838a01616060565b600080604083850312156167d157600080fd5b82356167dc81615ef3565b946020939093013593505050565b600080600080600060a0868803121561680257600080fd5b853561680d81615ef3565b9450602086013561681d81615ef3565b9350604086013592506060860135915060808601356001600160401b0381111561684657600080fd5b6163ff88828901615d94565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168ad57607f821691505b6020821081036168cd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201616911576169116168e9565b5060010190565b65ffffffffffff828116828216039080821115616937576169376168e9565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561699157600080fd5b81516001600160401b038111156169a757600080fd5b8201601f810184136169b857600080fd5b80516169c6615db382615d6d565b8181528560208385010111156169db57600080fd5b611349826020830160208601615e90565b81810381811115610fbb57610fbb6168e9565b634e487b7160e01b600052601260045260246000fd5b600082616a3257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4957600080fd5b815165ffffffffffff8116811461206757600080fd5b600060208284031215616a7157600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab5604083018688616a78565b8281036020840152611768818587616a78565b608081526000616adb608083018761618b565b8281036020840152616aed81876161cf565b90508281036040840152616b0181866161ff565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e9565b60a081526000616b3d60a083018861618b565b8281036020840152616b4f81886161cf565b90508281036040840152616b6381876161ff565b60608401959095525050608001529392505050565b60c081526000616b8b60c083018961618b565b8281036020840152616b9d81896161cf565b90508281036040840152616bb181886161ff565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e9565b600060208284031215616bf557600080fd5b8151801515811461206757600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c62818460208701615e90565b9190910192915050565b6001600160e01b0319831681528151600090616c8f816004850160208701615e90565b919091016004019392505050565b6001600160401b03818116838216019080821115616937576169376168e9565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d298382018b61618b565b90508281036060840152616d3d818a6161cf565b90508281036080840152616d5181896161ff565b905082810360a0840152616d6581886161ff565b90508560c08401528460e0840152828103610100840152616d868185615eb4565b9c9b505050505050505050505050565b601f821115613bcd57600081815260208120601f850160051c81016020861015616dbd5750805b601f850160051c820191505b818110156117a157828155600101616dc9565b81516001600160401b03811115616df557616df5615d27565b616e0981616e038454616899565b84616d96565b602080601f831160018114616e3e5760008415616e265750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6d57888601518255948401946001909101908401616e4e565b5085821015616e8b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb4565b85815260ff8516602082015283604082015260a060608201526000616eeb60a0830185615eb4565b8281036080840152611c718185615eb456fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a", + Code: feynman.MainnetGovernorContract, }, { ContractAddr: common.HexToAddress(GovTokenContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a", + Code: feynman.MainnetGovTokenContract, }, { ContractAddr: common.HexToAddress(TimelockContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa6565b61064a565b005b34801561022157600080fd5b50610235610230366004611b1a565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258a83398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254a83398151915281565b6102136102aa366004611b44565b610739565b3480156102bb57600080fd5b506102356102ca366004611baf565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7d565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611baf565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611baf565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce4565b610802565b34801561039f57600080fd5b506102356103ae366004611baf565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce4565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611baf565b6108c8565b34801561042657600080fd5b50610213610435366004611baf565b6108df565b34801561044657600080fd5b5061026c610455366004611b44565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d54565b610b74565b34801561049b57600080fd5b5061026c60008051602061256a83398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce4565b610cf5565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e05565b610d20565b34801561051257600080fd5b5061026c6000805160206125aa83398151915281565b34801561053457600080fd5b5061026c610543366004611e70565b610f0a565b34801561055457600080fd5b506102fa610563366004611f97565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611baf565b610f4f565b3480156105a057600080fd5b5061026c6105af366004611baf565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce4565b611012565b6102136105ef366004611e70565b611037565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa610624366004612040565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b60008051602061256a833981519152610662816111af565b6000610672898989898989610983565b905061067e81846111b9565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cd565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a8565b92915050565b60008051602061258a833981519152610753816000610cf5565b6107615761076181336112dd565b6000610771888888888888610983565b905061077d8185611336565b610789888888886113d1565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c1949392919061210a565b60405180910390a36107d2816114a4565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111af565b61082783836114dd565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611563565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cd565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213c565b60200260200101906001600160a01b031690816001600160a01b031681525050610b2a6201518082836120046115ca565b508015610b71576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60008051602061256a833981519152610b8c816111af565b888714610bab5760405162461bcd60e51b81526004016108b190612152565b888514610bca5760405162461bcd60e51b81526004016108b190612152565b6000610bdc8b8b8b8b8b8b8b8b610f0a565b9050610be881846111b9565b60005b8a811015610ca65780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2857610c2861213c565b9050602002016020810190610c3d9190612195565b8d8d86818110610c4f57610c4f61213c565b905060200201358c8c87818110610c6857610c6861213c565b9050602002810190610c7a91906121b0565b8c8b604051610c8e969594939291906120cd565b60405180910390a3610c9f8161220c565b9050610beb565b508315610ce857807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cdf91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4657604051630f22c43960e41b815261100760048201526024016108b1565b610da9604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116039050565b15610ea65760208114610dd75783838383604051630a5a604160e01b81526004016108b19493929190612225565b604080516020601f8401819004810282018101909252828152600091610e1891858580838501838280828437600092019190915250929392505061165c9050565b9050801580610e2957506212750081115b15610e4f5784848484604051630a5a604160e01b81526004016108b19493929190612225565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8857600080fd5b505af1158015610e9c573d6000803e3d6000fd5b5050505050610ec7565b838383836040516325ee20d560e21b81526004016108b19493929190612225565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efc9493929190612225565b60405180910390a150505050565b60008888888888888888604051602001610f2b9897969594939291906122da565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125aa833981519152610f67816111af565b610f70826108c8565b610fd65760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102d816111af565b6108278383611563565b60008051602061258a833981519152611051816000610cf5565b61105f5761105f81336112dd565b87861461107e5760405162461bcd60e51b81526004016108b190612152565b87841461109d5760405162461bcd60e51b81526004016108b190612152565b60006110af8a8a8a8a8a8a8a8a610f0a565b90506110bb8185611336565b60005b898110156111995760008b8b838181106110da576110da61213c565b90506020020160208101906110ef9190612195565b905060008a8a848181106111055761110561213c565b9050602002013590503660008a8a868181106111235761112361213c565b905060200281019061113591906121b0565b91509150611145848484846113d1565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117c949392919061210a565b60405180910390a350505050806111929061220c565b90506110be565b506111a3816114a4565b50505050505050505050565b610b7181336112dd565b6111c28261082c565b156112275760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112885760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b611292814261237b565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e78282610cf5565b6108c4576112f481611661565b6112ff836020611673565b6040516020016113109291906123b2565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612427565b61133f826107dc565b61135b5760405162461bcd60e51b81526004016108b19061245a565b80158061137657506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ee9291906124a4565b60006040518083038185875af1925050503d806000811461142b576040519150601f19603f3d011682016040523d82523d6000602084013e611430565b606091505b505090508061149d5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ad816107dc565b6114c95760405162461bcd60e51b81526004016108b19061245a565b600090815260976020526040902060019055565b6114e78282610cf5565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156d8282610cf5565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115f15760405162461bcd60e51b81526004016108b1906124b4565b6115fd8484848461180e565b50505050565b60008160405160200161161691906124ff565b604051602081830303815290604052805190602001208360405160200161163d91906124ff565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b6060600061168283600261251b565b61168d90600261237b565b6001600160401b038111156116a4576116a4611bc8565b6040519080825280601f01601f1916602001820160405280156116ce576020820181803683370190505b509050600360fc1b816000815181106116e9576116e961213c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117185761171861213c565b60200101906001600160f81b031916908160001a905350600061173c84600261251b565b61174790600161237b565b90505b60018111156117bf576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177b5761177b61213c565b1a60f81b8282815181106117915761179161213c565b60200101906001600160f81b031916908160001a90535060049490941c936117b881612532565b905061174a565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118355760405162461bcd60e51b81526004016108b1906124b4565b61184d60008051602061254a833981519152806119ed565b61187360008051602061256a83398151915260008051602061254a8339815191526119ed565b61189960008051602061258a83398151915260008051602061254a8339815191526119ed565b6118bf6000805160206125aa83398151915260008051602061254a8339815191526119ed565b6118d760008051602061254a83398151915230611a38565b6001600160a01b038116156118fe576118fe60008051602061254a83398151915282611a38565b60005b835181101561196f5761193b60008051602061256a83398151915285838151811061192e5761192e61213c565b6020026020010151611a38565b61195f6000805160206125aa83398151915285838151811061192e5761192e61213c565b6119688161220c565b9050611901565b5060005b82518110156119b0576119a060008051602061258a83398151915284838151811061192e5761192e61213c565b6119a98161220c565b9050611973565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efc565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114dd565b80356001600160a01b0381168114611a5957600080fd5b919050565b60008083601f840112611a7057600080fd5b5081356001600160401b03811115611a8757600080fd5b602083019150836020828501011115611a9f57600080fd5b9250929050565b600080600080600080600060c0888a031215611ac157600080fd5b611aca88611a42565b96506020880135955060408801356001600160401b03811115611aec57600080fd5b611af88a828b01611a5e565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2c57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5d57600080fd5b611b6687611a42565b95506020870135945060408701356001600160401b03811115611b8857600080fd5b611b9489828a01611a5e565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bc157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0657611c06611bc8565b604052919050565b600082601f830112611c1f57600080fd5b81356001600160401b03811115611c3857611c38611bc8565b611c4b601f8201601f1916602001611bde565b818152846020838601011115611c6057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9357600080fd5b611c9c85611a42565b9350611caa60208601611a42565b92506040850135915060608501356001600160401b03811115611ccc57600080fd5b611cd887828801611c0e565b91505092959194509250565b60008060408385031215611cf757600080fd5b82359150611d0760208401611a42565b90509250929050565b60008083601f840112611d2257600080fd5b5081356001600160401b03811115611d3957600080fd5b6020830191508360208260051b8501011115611a9f57600080fd5b600080600080600080600080600060c08a8c031215611d7257600080fd5b89356001600160401b0380821115611d8957600080fd5b611d958d838e01611d10565b909b50995060208c0135915080821115611dae57600080fd5b611dba8d838e01611d10565b909950975060408c0135915080821115611dd357600080fd5b50611de08c828d01611d10565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1b57600080fd5b84356001600160401b0380821115611e3257600080fd5b611e3e88838901611a5e565b90965094506020870135915080821115611e5757600080fd5b50611e6487828801611a5e565b95989497509550505050565b60008060008060008060008060a0898b031215611e8c57600080fd5b88356001600160401b0380821115611ea357600080fd5b611eaf8c838d01611d10565b909a50985060208b0135915080821115611ec857600080fd5b611ed48c838d01611d10565b909850965060408b0135915080821115611eed57600080fd5b50611efa8b828c01611d10565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2957600080fd5b813560206001600160401b03821115611f4457611f44611bc8565b8160051b611f53828201611bde565b9283528481018201928281019087851115611f6d57600080fd5b83870192505b84831015611f8c57823582529183019190830190611f73565b979650505050505050565b600080600080600060a08688031215611faf57600080fd5b611fb886611a42565b9450611fc660208701611a42565b935060408601356001600160401b0380821115611fe257600080fd5b611fee89838a01611f18565b9450606088013591508082111561200457600080fd5b61201089838a01611f18565b9350608088013591508082111561202657600080fd5b5061203388828901611c0e565b9150509295509295909350565b600080600080600060a0868803121561205857600080fd5b61206186611a42565b945061206f60208701611a42565b9350604086013592506060860135915060808601356001600160401b0381111561209857600080fd5b61203388828901611c0e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f560a0830186886120a4565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121326060830184866120a4565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a757600080fd5b6107fb82611a42565b6000808335601e198436030181126121c757600080fd5b8301803591506001600160401b038211156121e157600080fd5b602001915036819003821315611a9f57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221e5761221e6121f6565b5060010190565b6040815260006122396040830186886120a4565b8281036020840152611f8c8185876120a4565b818352600060208085019450848460051b86018460005b878110156122cd5783830389528135601e1988360301811261228457600080fd5b870185810190356001600160401b0381111561229f57600080fd5b8036038213156122ae57600080fd5b6122b98582846120a4565b9a87019a9450505090840190600101612263565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561231b576001600160a01b0361230684611a42565b168252602092830192909101906001016122ed565b5083810360208501528881526001600160fb1b0389111561233b57600080fd5b8860051b9150818a60208301370182810360209081016040850152612363908201878961224c565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f6565b60005b838110156123a9578181015183820152602001612391565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123ea81601785016020880161238e565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241b81602884016020880161238e565b01602801949350505050565b602081526000825180602084015261244681604085016020870161238e565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161251181846020870161238e565b9190910192915050565b8082028115828204841417610733576107336121f6565b600081612541576125416121f6565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a", + Code: feynman.MainnetTimelockContract, }, { ContractAddr: common.HexToAddress(TokenRecoverPortalContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2dbebb57a0d436d6a30b78c1f123395035249035", - Code: "608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b6101186101443660046116a8565b610328565b61016c6101573660046116a8565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a3660046116a8565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116c3565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b81525081565b60405161012d919061173f565b6101186104b3565b610118610625565b60695461016c9060ff1681565b61011861022736600461179b565b6106b1565b60335460ff1661016c565b61011861024536600461184c565b610ad0565b61016c610258366004611926565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e30565b6105dc7308e68ec70fa3b629784fdb28887e206ce8561e08610e5d565b8015610622576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610655576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561067957604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106d757604051630f22c43960e41b8152611007600482015260240161054c565b6107416040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b1561080b576014811461076f5783838383604051630a5a604160e01b815260040161054c9493929190611968565b60006107b5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b0381166107e65784848484604051630a5a604160e01b815260040161054c9493929190611968565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a8d565b6108706040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b156109405760695460ff1615610899576040516379b3306f60e11b815260040160405180910390fd5b602081146108c25783838383604051630a5a604160e01b815260040161054c9493929190611968565b604080516020601f8401819004810282018101909252828152600091610903918585808385018382808284376000920191909152509293925050610f069050565b90508061092b5784848484604051630a5a604160e01b815260040161054c9493929190611968565b6068556069805460ff19166001179055610a8d565b6109b86040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b15610a6c57601481146109e65783838383604051630a5a604160e01b815260040161054c9493929190611968565b6000610a2c601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b038116610a5d5784848484604051630a5a604160e01b815260040161054c9493929190611968565b610a6681610f0b565b50610a8d565b838383836040516325ee20d560e21b815260040161054c9493929190611968565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ac29493929190611968565b60405180910390a150505050565b60695460ff16610af35760405163678f619760e11b815260040160405180910390fd5b606854610b135760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b3c57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b6057604051631785c68160e01b815260040160405180910390fd5b610b68610f72565b6000610bf689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bf18e8e33610fcb565b6110ec565b90506000818c8c604051602001610c0f9392919061199a565b604051602081830303815290604052805190602001209050610c40816000908152606a602052604090205460ff1690565b15610c5d57604051623e493160e81b815260040160405180910390fd5b610d053389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111c492505050565b610d468484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112cf565b610d63576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610e1194939291906119c1565b60405180910390a15050610e2460018055565b50505050505050505050565b600054610100900460ff16610e575760405162461bcd60e51b815260040161054c906119f9565b60018055565b600054610100900460ff16610e845760405162461bcd60e51b815260040161054c906119f9565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ebf9190611a44565b6040516020818303038152906040528051906020012083604051602001610ee69190611a44565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fc45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152506110288560405160200161101291815260200190565b60405160208183030381529060405260006112e5565b6040516bffffffffffffffffffffffff19606087901b1660208201526110619060340160405160208183030381529060405260016112e5565b6110778860405160200161101291815260200190565b60405160200161108a9493929190611a60565b60408051601f19818403018152908290526110a491611a44565b602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110e49190611b8f565b949350505050565b6060835160211461111057604051638152ea1b60e01b815260040160405180910390fd5b825160401461113257604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161117093929190611bbe565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111b957600080fd5b509695505050505050565b606060005b825181101561122257818382815181106111e5576111e5611c01565b60200260200101516040516020016111fe929190611c17565b6040516020818303038152906040529150808061121a90611c4f565b9150506111c9565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d54696772697360601b8152508787866068548660405160200161126e96959493929190611c68565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661129f86836114b7565b6001600160a01b0316146112c6576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112dc8584611551565b14949350505050565b60606000835160026112f79190611cd9565b67ffffffffffffffff81111561130f5761130f611ba8565b6040519080825280601f01601f191660200182016040528015611339576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561147f5781825187838151811061138557611385611c01565b0160200151611397919060f81c611d06565b815181106113a7576113a7611c01565b01602001516001600160f81b031916836113c2836002611cd9565b815181106113d2576113d2611c01565b60200101906001600160f81b031916908160001a9053508182518783815181106113fe576113fe611c01565b0160200151611410919060f81c611d1a565b8151811061142057611420611c01565b01602001516001600160f81b0319168361143b836002611cd9565b611446906001611d2e565b8151811061145657611456611c01565b60200101906001600160f81b031916908160001a9053508061147781611c4f565b915050611367565b5083156114af57816040516020016114979190611d41565b60405160208183030381529060405292505050610f00565b509392505050565b600082516041146114db576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b81101561150457611501601b82611d6b565b90505b601b8160ff1610806115195750601c8160ff16115b15611537576040516356b00a4f60e11b815260040160405180910390fd5b600061154586838686611596565b50979650505050505050565b600081815b84518110156114af576115828286838151811061157557611575611c01565b602002602001015161165a565b91508061158e81611c4f565b915050611556565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115cd5750600090506003611651565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661164a57600060019250925050611651565b9150600090505b94509492505050565b6000818310611676576000828152602084905260409020611685565b60008381526020839052604090205b9392505050565b80356001600160a01b03811681146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b6116858261168c565b600080604083850312156116d657600080fd5b823591506116e66020840161168c565b90509250929050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6020815260006116856020830184611713565b60008083601f84011261176457600080fd5b50813567ffffffffffffffff81111561177c57600080fd5b60208301915083602082850101111561179457600080fd5b9250929050565b600080600080604085870312156117b157600080fd5b843567ffffffffffffffff808211156117c957600080fd5b6117d588838901611752565b909650945060208701359150808211156117ee57600080fd5b506117fb87828801611752565b95989497509550505050565b60008083601f84011261181957600080fd5b50813567ffffffffffffffff81111561183157600080fd5b6020830191508360208260051b850101111561179457600080fd5b60008060008060008060008060008060c08b8d03121561186b57600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561189157600080fd5b61189d8e838f01611752565b909a50985060608d01359150808211156118b657600080fd5b6118c28e838f01611752565b909850965060808d01359150808211156118db57600080fd5b6118e78e838f01611752565b909650945060a08d013591508082111561190057600080fd5b5061190d8d828e01611807565b915080935050809150509295989b9194979a5092959850565b60006020828403121561193857600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061197c60408301868861193f565b828103602084015261198f81858761193f565b979650505050505050565b600084516119ac8184602089016116ef565b91909101928352506020820152604001919050565b6080815260006119d46080830187611713565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a568184602087016116ef565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611aa3816022850160208a016116ef565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611af481604d840160208a016116ef565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b2481605c8401602089016116ef565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b5781606e8401602088016116ef565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611ba157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bd08184602089016116ef565b845190830190611be48183602089016116ef565b8451910190611bf78183602088016116ef565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c298184602088016116ef565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c6157611c61611c39565b5060010190565b60008751611c7a818460208c016116ef565b606088901b6bffffffffffffffffffffffff19169083019081528651611ca7816014840160208b016116ef565b0160148101869052603481018590528351611cc98160548401602088016116ef565b0160540198975050505050505050565b8082028115828204841417610f0057610f00611c39565b634e487b7160e01b600052601260045260246000fd5b600082611d1557611d15611cf0565b500490565b600082611d2957611d29611cf0565b500690565b80820180821115610f0057610f00611c39565b61060f60f31b815260008251611d5e8160028501602087016116ef565b9190910160020192915050565b60ff8181168382160190811115610f0057610f00611c3956fea164736f6c6343000811000a", + Code: feynman.MainnetTokenRecoverPortalContract, }, }, } @@ -606,62 +620,62 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ee4565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f0e565b34801561057757600080fd5b50610580610e42565b60405161054091906181f7565b34801561059957600080fd5b506105ad6105a83660046180dd565b610e48565b604051610540919061838a565b3480156105c657600080fd5b506105cf611165565b604051610540919061837f565b3480156105e857600080fd5b5061051c6105f7366004617eeb565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e4b565b611855565b34801561066757600080fd5b5061051c610676366004617e83565b611902565b34801561068757600080fd5b506105cf61069636600461808a565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461808a565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e4b565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618295565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f1f565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ed5565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e4b565b6123c5565b34801561080157600080fd5b50610533610810366004617e4b565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461808a565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461808a565b612507565b60405161054096959493929190618224565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180dd565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e4b565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b3836600461802e565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e4b565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618282565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461808a565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fef565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e4b565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e4b565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461808a565b6139e4565b60405161054093929190618eed565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618af0565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185b1565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618cf1565b600b54610f4c57610e9d6179f7565b60015460005b81811015610f4857600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff1916911515919091179055604086015180518794610f24936000805160206191bc833981519152909101920190617a26565b506060820151610f3a9060038301906013617aa0565b505050806001019050610ea3565b5050505b610f54617acd565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7d92505050565b9150915080610fb157610fa86064613f39565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f9a565b905061112a565b825160ff16600114156111265782602001515160011461101b5760008051602061917c83398151915260405161100b906189a9565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc836001840361515c565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f39565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d40565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a2f565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617af1565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be9061100090600890600401618266565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fcf565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b26565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a26565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a26565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ee4565b60405180910390a150505050610e32565b60608061163e838661551f565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181f7565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ee4565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd8282615a06565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e9e565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d40565b60105443116119425760405162461bcd60e51b8152600401610e1290618744565b3a156119605760405162461bcd60e51b8152600401610e1290618a2f565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185b1565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161f516565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e7903090869060040161820b565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3991906180a2565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e4b565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ee4565b60405180910390a2611be9565b600354611b88908663ffffffff61623716565b6003908155810154611ba0908663ffffffff61623716565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ee4565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ee4565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179f7565b60015460005b81811015611e8557600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff1916911515919091179055604086015180518794611e61936000805160206191bc833981519152909101920190617a26565b506060820151611e779060038301906013617aa0565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185e8565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f12838361515c565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b905060606122608261625c565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163ca565b6122bd8383838888038989038a8b8b8b5103016163ca565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618cf1565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f2d565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c79565b6000190192915050565b600b5461271d5761266e6179f7565b60015460005b8181101561271957600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff19169115159190911790556040860151805187946126f5936000805160206191bc833981519152909101920190617a26565b50606082015161270b9060038301906013617aa0565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e1290618966565b611f2d3382616521565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618fd16101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185b1565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a5d565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165b99050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c33565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061661292505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e1290618856565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165b99050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183cf565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061661292505050565b90506127106129f2600f548361623790919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e1290618406565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165b99050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e129061846e565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061661292505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187ae565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165b99050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e1290618537565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061661292505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dd1565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165b99050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184eb565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061661292505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188cc565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165b99050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618aab565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061661292505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165b99050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e129061857c565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061661292505050565b905060008111612ef55760405162461bcd60e51b8152600401610e1290618656565b6064811115612f165760405162461bcd60e51b8152600401610e129061869e565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165b99050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d8d565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061661292505050565b90506127106130036006548361623790919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b94565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e2e565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a84848484604051613076949392919061839d565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b5d565b613235617acd565b600061325b604051806101e001604052806101ab8152602001618fd16101ab9139613d7d565b915091508061327c5760405162461bcd60e51b8152600401610e1290618cb0565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b5050505050616617565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e55565b600b54613624576135756179f7565b60015460005b8181101561362057600b8054600181018255600091909152835160008051602061919c83398151915260169092029182019081556020808601516000805160206191dc8339815191528401805460ff19169115159190911790556040860151805187946135fc936000805160206191bc833981519152909101920190617a26565b5060608201516136129060038301906013617aa0565b50505080600101905061357b565b5050505b600061362f8261667b565b905061363a81611c4b565b156118fe576118fe8282616521565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d40565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185b1565b600034116136b45760405162461bcd60e51b8152600401610e129061889d565b3a156136d25760405162461bcd60e51b8152600401610e1290618a2f565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167fe90919063ffffffff16565b9063ffffffff61683816565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ee4565b60405180910390a16137d1838263ffffffff6161f516565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167fe90919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ee4565b60405180910390a1613889838263ffffffff6161f516565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ee4565b60405180910390a2613986565b600354613925908463ffffffff61623716565b600390815581015461393d908463ffffffff61623716565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ee4565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ee4565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b60096000815460019003919050819055506000613b20600a5461374685613746600b8981548110613b0257fe5b6000918252602090912060169091020154439063ffffffff6161f516565b90506000600b8581548110613b3157fe5b906000526020600020906016020160010160006101000a81548160ff0219169083151502179055506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b9657600080fd5b505afa158015613baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bce91906180ba565b9150915060009350808310613d2d57613be7878761515c565b5060405163436aa28360e11b8152600090612002906386d5450690613c10908b906004016181f7565b60206040518083038186803b158015613c2857600080fd5b505afa158015613c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c609190617e67565b6001600160a01b031614613ccc576040516313d13bdb60e31b815261100190639e89ded890613c95908a90879060040161820b565b600060405180830381600087803b158015613caf57600080fd5b505af1158015613cc3573d6000803e3d6000fd5b50505050613d24565b6040516305bfb49960e41b815261100190635bfb499090613cf1908a906004016181f7565b600060405180830381600087803b158015613d0b57600080fd5b505af1158015613d1f573d6000803e3d6000fd5b505050505b60019350613d3f565b818310613d3f57613d3d8761667b565b505b6040516001600160a01b038816907fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b90600090a25050509392505050565b613d85617acd565b6000613d8f617acd565b613d97617b6a565b613da8613da38661687a565b61689f565b90506000805b613db7836168e9565b15613f2b5780613ddc57613dd2613dcd8461690a565b616958565b60ff168452613f23565b8060011415613f1e576060613df8613df38561690a565b6169d8565b90508051604051908082528060200260200182016040528015613e3557816020015b613e22617af1565b815260200190600190039081613e1a5790505b5085602001819052508051604051908082528060200260200182016040528015613e7357816020015b6060815260200190600190039081613e5e5790505b50604086015260005b8151811015613f1357613e8d617af1565b60606000613ead858581518110613ea057fe5b6020026020010151616aa9565b92509250925080613ecd578860009a509a50505050505050505050613f34565b8289602001518581518110613ede57fe5b60200260200101819052508189604001518581518110613efa57fe5b6020026020010181905250505050806001019050613e7c565b506001925050613f23565b613f2b565b600101613dae565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f53579050509050613f798363ffffffff16616bc3565b81600081518110613f8657fe5b602002602001018190525061115e81616bd6565b6000606483511115613fd15760008051602061917c833981519152604051613fc1906186fb565b60405180910390a1506066611dc5565b60005b835181101561406f5760005b8181101561406657848181518110613ff457fe5b6020026020010151600001516001600160a01b031685838151811061401557fe5b6020026020010151600001516001600160a01b0316141561405e5760008051602061917c83398151915260405161404b9061880b565b60405180910390a1606692505050611dc5565b600101613fe0565b50600101613fd4565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141215760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a08301529083529092019101614097565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141f65760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141e25780601f106141b7576101008083540402835291602001916141e2565b820191906000526020600020905b8154815290600101906020018083116141c557829003601f168201915b50505050508152602001906001019061414b565b50505050905060005b82518110156142535782818151811061421457fe5b60200260200101516060015160030283828151811061422f57fe5b60209081029190910101516001600160401b039091166060909101526001016141ff565b5060608061426389898686616c60565b91509150614271828261551f565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142b0578160200160208202803683370190505b50905060005b828110156144415760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142e757fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614322926001600160a01b0390921691016181f7565b60206040518083038186803b15801561433a57600080fd5b505afa15801561434e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143729190617e67565b6001600160a01b0316146143d457600182828151811061438e57fe5b602002602001019060ff16908160ff1681525050600181815481106143af57fe5b9060005260206000209060040201600301546000146143cf578360010193505b614439565b67016345785d8a0000600182815481106143ea57fe5b9060005260206000209060040201600301541061440c57846001019450614439565b6001818154811061441957fe5b906000526020600020906004020160030154600014614439578360010193505b6001016142b6565b5060608460405190808252806020026020018201604052801561446e578160200160208202803683370190505b50905060608560405190808252806020026020018201604052801561449d578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144cc578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144fb578160200160208202803683370190505b509050600060608860405190808252806020026020018201604052801561452c578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561455b578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156145a357600080fd5b505afa1580156145b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145db91906180a2565b905067016345785d8a00008111156146275760008051602061917c83398151915260405161460890618b1c565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149bb5789818151811061463e57fe5b602002602001015160ff1660011415614734576001818154811061465e57fe5b90600052602060002090600402016003015460001461472f576001818154811061468457fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146af57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146dc57fe5b906000526020600020906004020160030154838d815181106146fa57fe5b60200260200101818152505060018a8d8151811061471457fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149b3565b67016345785d8a00006001828154811061474a57fe5b906000526020600020906004020160030154106148cf576001818154811061476e57fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479f57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147d457fe5b906000526020600020906004020160030154816147ed57fe5b06600183815481106147fb57fe5b90600052602060002090600402016003015403905061482383826161f590919063ffffffff16565b898f8151811061482f57fe5b6020026020010181815250506001828154811061484857fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061487957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f815181106148a657fe5b60209081029190910101526148c1868263ffffffff61623716565b95508d6001019d50506149b3565b600181815481106148dc57fe5b9060005260206000209060040201600301546000146149b3576001818154811061490257fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061493357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061496057fe5b906000526020600020906004020160030154838d8151811061497e57fe5b60200260200101818152505060008a8d8151811061499857fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161462a565b5060008415614c31576002546040516303702b2960e51b815261100491636e0565209188916149f5918e918e918d91420190600401618305565b6020604051808303818588803b158015614a0e57600080fd5b505af193505050508015614a3f575060408051601f3d908101601f19168201909252614a3c91810190617fcf565b60015b614bb6576040516000815260443d1015614a5b57506000614af6565b60046000803e60005160e01c6308c379a08114614a7c576000915050614af6565b60043d036004833e81513d60248201116001600160401b0382111715614aa757600092505050614af6565b80830180516001600160401b03811115614ac8576000945050505050614af6565b8060208301013d8601811115614ae657600095505050505050614af6565b601f01601f191660405250925050505b80614b015750614b43565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b35919061838a565b60405180910390a250614bb1565b3d808015614b6d576040519150601f19603f3d011682016040523d82523d6000602084013e614b72565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614ba7919061838a565b60405180910390a2505b614c31565b8015614bf8577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614beb9190618ee4565b60405180910390a1614c2f565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c26906184b4565b60405180910390a25b505b8015614de75760005b8751811015614de5576000888281518110614c5157fe5b60200260200101519050600060018281548110614c6a57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c9b57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d575760018281548110614cdc57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d2b57fe5b906000526020600020906004020160030154604051614d4a9190618ee4565b60405180910390a2614ddb565b60018281548110614d6457fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614db357fe5b906000526020600020906004020160030154604051614dd29190618ee4565b60405180910390a25b5050600101614c3a565b505b835115614fdd5760005b8451811015614fdb578a8181518110614e0657fe5b602002602001015160ff1660011415614ea5576120026001600160a01b031663092193ab858381518110614e3657fe5b6020026020010151878481518110614e4a57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6e91906181f7565b6000604051808303818588803b158015614e8757600080fd5b505af1158015614e9b573d6000803e3d6000fd5b5050505050614fd3565b6000858281518110614eb357fe5b60200260200101516001600160a01b03166108fc868481518110614ed357fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f6957858281518110614f0957fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f4757fe5b6020026020010151604051614f5c9190618ee4565b60405180910390a2614fd1565b858281518110614f7557fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fb357fe5b6020026020010151604051614fc89190618ee4565b60405180910390a25b505b600101614df1565b505b5050505050505050505050505060005b60015481101561504a576001818154811061500457fe5b9060005260206000209060040201600301546000146150425760006001828154811061502c57fe5b9060005260206000209060040201600301819055505b600101614fed565b5047156150b8577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150809190618ee4565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150b6573d6000803e3d6000fd5b505b600060038190556005558151156150d3576150d38282615a06565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561511057600080fd5b505af1158015615124573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516c57fe5b906000526020600020906004020160030154905060006001808054905003905060016151966130a3565b51116151cb576000600185815481106151ab57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516152049190618ee4565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153f1576001816001018154811061524557fe5b90600052602060002090600402016001828154811061526057fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061532157fe5b9060005260206000209060160201600b828154811061533c57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615393938386019390821615610100026000190190911604617b8a565b506153a660038281019084016013617bff565b509050508060010160046000600184815481106153bf57fe5b600091825260208083206004909202909101546001600160a01b03168352820192909252604001902055600101615227565b5060018054806153fd57fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061545057fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154826002830182617b26565b615490600383016000617c29565b50509055600081838161549f57fe5b04905080156155135760015460005b81811015615510576154e783600183815481106154c757fe5b90600052602060002090600402016003015461623790919063ffffffff16565b600182815481106154f457fe5b60009182526020909120600360049092020101556001016154ae565b50505b50600195945050505050565b6060806000808080806155306131ad565b6001549091505b801561575f57600181039250600b838154811061555057fe5b600091825260209091206001601690920201015460ff1661557057615756565b6001838154811061557d57fe5b60009182526020909120600490910201546001600160a01b031694506155a4858484613aac565b9350836155b057615756565b60405163436aa28360e11b81526000908190612002906386d54506906155da908a906004016181f7565b60206040518083038186803b1580156155f257600080fd5b505afa158015615606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061562a9190617e67565b90506001600160a01b038116156156b3576040516302ceee9160e11b81526120029063059ddd22906156609084906004016181f7565b60206040518083038186803b15801561567857600080fd5b505afa15801561568c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156b09190617e67565b91505b60005b8c5181101561575257876001600160a01b03168d82815181106156d557fe5b6020026020010151600001516001600160a01b0316148061571e5750826001600160a01b03168d828151811061570757fe5b6020026020010151600001516001600160a01b0316145b1561574a5760018d828151811061573157fe5b6020908102919091010151901515608090910152615752565b6001016156b6565b5050505b60001901615537565b5060005b89518110156157cc5789818151811061577857fe5b602002602001015160800151806157b8575060006001600160a01b03168a82815181106157a157fe5b6020026020010151600001516001600160a01b0316145b156157c4578560010195505b600101615763565b50885185106158b45760408051600180825281830190925290816020015b6157f2617af1565b8152602001906001900390816157ea575050604080516001808252818301909252919850602082015b606081526020019060019003908161581b5790505095508860008151811061583f57fe5b60200260200101518760008151811061585457fe5b60200260200101819052508760008151811061586c57fe5b60200260200101518660008151811061588157fe5b602002602001018190525060008760008151811061589b57fe5b60209081029190910101519015156080909101526159f9565b848951036040519080825280602002602001820160405280156158f157816020015b6158de617af1565b8152602001906001900390816158d65790505b5096508489510360405190808252806020026020018201604052801561592b57816020015b60608152602001906001900390816159165790505b5095506000915060005b89518110156159f75789818151811061594a57fe5b60200260200101516080015115801561598d575060006001600160a01b03168a828151811061597557fe5b6020026020010151600001516001600160a01b031614155b156159ef5789818151811061599e57fe5b60200260200101518884815181106159b257fe5b60200260200101819052508881815181106159c957fe5b60200260200101518784815181106159dd57fe5b60200260200101819052508260010192505b600101615935565b505b50505050505b9250929050565b600154825160005b82811015615b23576001615a20617af1565b60018381548110615a2d57fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615af757878181518110615abd57fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615aef5760009250615af7565b600101615aa9565b508115615b195780516001600160a01b03166000908152600460205260408120555b5050600101615a0e565b5080821115615be257805b82811015615be0576001805480615b4157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b9457fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bc66002830182617b26565b615bd4600383016000617c29565b50509055600101615b2e565b505b6000818310615bf15781615bf3565b825b905060005b81811015615f9757615ca5868281518110615c0f57fe5b602002602001015160018381548110615c2457fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a082015261702c565b615e59578060010160046000888481518110615cbd57fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615cf957fe5b602002602001015160018281548110615d0e57fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dc957fe5b6020026020010151600b8281548110615dde57fe5b90600052602060002090601602016002019080519060200190615e02929190617a26565b506000600b8281548110615e1257fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e4357fe5b6000918252602090912060169091020155615f8f565b858181518110615e6557fe5b60200260200101516060015160018281548110615e7e57fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f44858281518110615ec257fe5b6020026020010151600b8381548110615ed757fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8f57848181518110615f5457fe5b6020026020010151600b8281548110615f6957fe5b90600052602060002090601602016002019080519060200190615f8d929190617a26565b505b600101615bf8565b508282111561616f57615fa86179f7565b835b8381101561616c57858181518110615fbe57fe5b602002602001015182604001819052506001878281518110615fdc57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b805492830181559093528451601690910260008051602061919c8339815191528101918255858301516000805160206191dc8339815191528201805491151560ff1990921691909117905592850151805186949293616112936000805160206191bc83398151915201920190617a26565b5060608201516161289060038301906013617aa0565b505050806001016004600089848151811061613f57fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615faa565b50505b616177617088565b61617f617270565b6000600981905560015493505b838110156161ed576000600b82815481106161a357fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161d457fe5b600091825260209091206016909102015560010161618c565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061745e565b60008282018381101561115e5760405162461bcd60e51b8152600401610e129061861f565b60015481516040805182815260208084028201019091526060929190839082801561629b57816020015b60608152602001906001900390816162865790505b50600b5490915083146162b2579250611d15915050565b60005b828110156163c157600b6001600460008985815181106162d157fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054038154811061630557fe5b600091825260209182902060026016909202018101805460408051601f60001961010060018616150201909316949094049182018590048502840185019052808352919290919083018282801561639d5780601f106163725761010080835404028352916020019161639d565b820191906000526020600020905b81548152906001019060200180831161638057829003601f168201915b50505050508282815181106163ae57fe5b60209081029190910101526001016162b5565b50949350505050565b60005b8281101561651757600082878388016040516020016163ed9291906181e9565b6040516020818303038152906040528051906020012060001c8161640d57fe5b0690508085018287011461650e576000898388018151811061642b57fe5b602002602001015190506060898489018151811061644557fe5b602002602001015190508a8388018151811061645d57fe5b60200260200101518b858a018151811061647357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b848901815181106164a257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164d057fe5b60200260200101518a858a01815181106164e657fe5b6020026020010181905250808a8489018151811061650057fe5b602002602001018190525050505b506001016163cd565b5050505050505050565b600980546001908101909155600b80548390811061653b57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061657157fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165cc91906181cd565b60405160208183030381529060405280519060200120836040516020016165f391906181cd565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166335760009250616671565b600160208701838101602088015b60028483851001141561666c5780518351146166605760009650600093505b60209283019201616641565b505050505b5090949350505050565b6001600160a01b038116600090815260046020526040812054806166a457506000199050611d15565b6001810390506000600182815481106166b957fe5b90600052602060002090600402016003015490506000600183815481106166dc57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616735908590618ee4565b60405180910390a28061674d57829350505050611d15565b600081838161675857fe5b04905080156167f45760005b848110156167a65761677d82600183815481106154c757fe5b6001828154811061678a57fe5b6000918252602090912060036004909202010155600101616764565b50600180549085015b818110156167f1576167c883600183815481106154c757fe5b600182815481106167d557fe5b60009182526020909120600360049092020101556001016167af565b50505b5091949350505050565b60008261680d57506000611dc5565b8282028284828161681a57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189ee565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061748a565b616882617c38565b506040805180820190915281518152602082810190820152919050565b6168a7617b6a565b6168b0826174c1565b6168b957600080fd5b60006168c883602001516174fb565b60208085015160408051808201909152868152920190820152915050919050565b60006168f3617c38565b505080518051602091820151919092015191011190565b616912617c38565b61691b826168e9565b61692457600080fd5b602082015160006169348261755e565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696d57508151602110155b61697657600080fd5b600061698583602001516174fb565b905080836000015110156169ab5760405162461bcd60e51b8152600401610e1290618bfc565b8251602080850151830180519284900392918310156163c157506020919091036101000a90049392505050565b60606169e3826174c1565b6169ec57600080fd5b60006169f78361763f565b9050606081604051908082528060200260200182016040528015616a3557816020015b616a22617c38565b815260200190600190039081616a1a5790505b5090506000616a4785602001516174fb565b60208601510190506000805b84811015616a9e57616a648361755e565b9150604051806040016040528083815260200184815250848281518110616a8757fe5b602090810291909101015291810191600101616a53565b509195945050505050565b616ab1617af1565b60606000616abd617af1565b6060616ac7617b6a565b616ad08761689f565b90506000805b616adf836168e9565b15616bb45780616b0a57616afa616af58461690a565b61769b565b6001600160a01b03168552616bac565b8060011415616b3257616b1f616af58461690a565b6001600160a01b03166020860152616bac565b8060021415616b5a57616b47616af58461690a565b6001600160a01b03166040860152616bac565b8060031415616b8657616b6f613dcd8461690a565b6001600160401b0316606086015260019150616bac565b8060041415616ba757616ba0616b9b8461690a565b6176b5565b9350616bac565b616bb4565b600101616ad6565b50929791965091945092505050565b6060611dc5616bd183617725565b61780b565b6060815160001415616bf75750604080516000815260208101909152611d15565b606082600081518110616c0657fe5b602002602001015190506000600190505b8351811015616c4757616c3d82858381518110616c3057fe5b602002602001015161785d565b9150600101616c17565b5061115e616c5a825160c060ff166178da565b8261785d565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616ca057600080fd5b505afa158015616cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616cd891906180a2565b90508085518851011015616ced575083518651015b606081604051908082528060200260200182016040528015616d2957816020015b616d16617af1565b815260200190600190039081616d0e5790505b509050606082604051908082528060200260200182016040528015616d6257816020015b6060815260200190600190039081616d4d5790505b50905060008060005b8b51831080616d7a5750895182105b8015616d8557508581105b1561701a578b51831415616df557898281518110616d9f57fe5b6020026020010151858281518110616db357fe5b6020026020010181905250888281518110616dca57fe5b6020026020010151848281518110616dde57fe5b602090810291909101015260019182019101616d6b565b8951821415616e60578b8381518110616e0a57fe5b6020026020010151858281518110616e1e57fe5b60200260200101819052508a8381518110616e3557fe5b6020026020010151848281518110616e4957fe5b602090810291909101015260019283019201616d6b565b898281518110616e6c57fe5b6020026020010151606001516001600160401b03168c8481518110616e8d57fe5b6020026020010151606001516001600160401b03161115616f09578b8381518110616eb457fe5b6020026020010151858281518110616ec857fe5b60200260200101819052508a8381518110616edf57fe5b6020026020010151848281518110616ef357fe5b6020026020010181905250826001019250617012565b898281518110616f1557fe5b6020026020010151606001516001600160401b03168c8481518110616f3657fe5b6020026020010151606001516001600160401b03161015616fb257898281518110616f5d57fe5b6020026020010151858281518110616f7157fe5b6020026020010181905250888281518110616f8857fe5b6020026020010151848281518110616f9c57fe5b6020026020010181905250816001019150617012565b898281518110616fbe57fe5b6020026020010151600001516001600160a01b03168c8481518110616fdf57fe5b6020026020010151600001516001600160a01b03161015617006578b8381518110616eb457fe5b898281518110616d9f57fe5b600101616d6b565b50929a91995090975050505050505050565b805182516000916001600160a01b039182169116148015617066575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170d357805b828110156170d15760128054806170ab57fe5b6001900381819060005260206000200160006170c79190617b26565b9055600101617098565b505b60008183106170e257816170e4565b825b905060005b818110156171fc576171a16012828154811061710157fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561718f5780601f106171645761010080835404028352916020019161718f565b820191906000526020600020905b81548152906001019060200180831161717257829003601f168201915b50505050506013838154811061341857fe5b6171f457601381815481106171b257fe5b90600052602060002001601282815481106171c957fe5b9060005260206000200190805460018160011615610100020316600290046171f2929190617b8a565b505b6001016170e9565b5082821115610e3257825b8281101561726a5760126013828154811061721e57fe5b6000918252602080832084546001818101875595855291909320929091018054617261949390920192909160026101009282161592909202600019011604617b8a565b50600101617207565b50505050565b601354600b54808211156172bb57805b828110156172b957601380548061729357fe5b6001900381819060005260206000200160006172af9190617b26565b9055600101617280565b505b60008183106172ca57816172cc565b825b905060005b818110156173eb57617389601382815481106172e957fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156173775780601f1061734c57610100808354040283529160200191617377565b820191906000526020600020905b81548152906001019060200180831161735a57829003601f168201915b5050505050600b8381548110615ed757fe5b6173e357600b818154811061739a57fe5b9060005260206000209060160201600201601382815481106173b857fe5b9060005260206000200190805460018160011615610100020316600290046173e1929190617b8a565b505b6001016172d1565b5082821115610e3257825b8281101561726a576013600b828154811061740d57fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461745595939094019390926000199082161561010002011604617b8a565b506001016173f6565b600081848411156174825760405162461bcd60e51b8152600401610e12919061838a565b505050900390565b600081836174ab5760405162461bcd60e51b8152600401610e12919061838a565b5060008385816174b757fe5b0495945050505050565b80516000906174d257506000611d15565b6020820151805160001a9060c08210156174f157600092505050611d15565b5060019392505050565b8051600090811a6080811015617515576000915050611d15565b60b8811080617530575060c08110801590617530575060f881105b1561753f576001915050611d15565b60c08110156175535760b519019050611d15565b60f519019050611d15565b80516000908190811a60808110156175795760019150617638565b60b881101561758e57607e1981019150617638565b60c08110156175df57600060b78203600186019550806020036101000a8651049150600181018201935050808310156175d95760405162461bcd60e51b8152600401610e129061893b565b50617638565b60f88110156175f45760be1981019150617638565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156176365760405162461bcd60e51b8152600401610e129061893b565b505b5092915050565b805160009061765057506000611d15565b6000809050600061766484602001516174fb565b602085015185519181019250015b80821015617692576176838261755e565b82019150826001019250617672565b50909392505050565b80516000906015146176ac57600080fd5b611dc582616958565b80516060906176c357600080fd5b60006176d283602001516174fb565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015617709576020820181803683370190505b50905060008160200190506163c18487602001510182856179ac565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166177695750601861778d565b6fffffffffffffffffffffffffffffffff1984166177895750601061778d565b5060005b60208110156177c3578181815181106177a257fe5b01602001516001600160f81b031916156177bb576177c3565b60010161778d565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177f8576020820181803683370190505b5080830196909652508452509192915050565b60608151600114801561783d5750607f60f81b8260008151811061782b57fe5b01602001516001600160f81b03191611155b15617849575080611d15565b611dc561785b8351608060ff166178da565b835b6060806040519050835180825260208201818101602087015b8183101561788e578051835260209283019201617876565b50855184518101855292509050808201602086015b818310156178bb5780518352602092830192016178a3565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106179045760405162461bcd60e51b8152600401610e1290618786565b6040805160018082528183019092526060916020820181803683370190505090506037841161795e5782840160f81b8160008151811061794057fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061796985617725565b90508381510160370160f81b8260008151811061798257fe5b60200101906001600160f81b031916908160001a9053506179a3828261785d565b95945050505050565b806179b657610e32565b5b602081106179d6578251825260209283019290910190601f19016179b7565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a21617c52565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a6757805160ff1916838001178555617a94565b82800160010185558215617a94579182015b82811115617a94578251825591602001919060010190617a79565b506131e8929150617c71565b8260138101928215617a945791602002820182811115617a94578251825591602001919060010190617a79565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b4c5750611f2d565b601f016020900490600052602060002090810190611f2d9190617c71565b6040518060400160405280617b7d617c38565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bc35780548555617a94565b82800160010185558215617a9457600052602060002091601f016020900482015b82811115617a94578254825591600101919060010190617be4565b8260138101928215617a945791820182811115617a94578254825591600101919060010190617be4565b50611f2d906013810190617c71565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c77565b8035611dc581618fbb565b60008083601f840112617ca7578182fd5b5081356001600160401b03811115617cbd578182fd5b60208301915083602080830285010111156159ff57600080fd5b6000601f8381840112617ce8578182fd5b8235617cfb617cf682618f70565b618f4a565b818152925060208084019085810160005b84811015617d8d578135880189603f820112617d2757600080fd5b838101356001600160401b03811115617d3f57600080fd5b617d50818901601f19168601618f4a565b81815260408c81848601011115617d6657600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d0c565b50505050505092915050565b600082601f830112617da9578081fd5b8135617db7617cf682618f70565b818152915060208083019084810181840286018201871015617dd857600080fd5b6000805b85811015617d8d5782356001600160401b0381168114617dfa578283fd5b85529383019391830191600101617ddc565b60008083601f840112617e1d578182fd5b5081356001600160401b03811115617e33578182fd5b6020830191508360208285010111156159ff57600080fd5b600060208284031215617e5c578081fd5b813561115e81618fbb565b600060208284031215617e78578081fd5b815161115e81618fbb565b60008060008060408587031215617e98578283fd5b84356001600160401b0380821115617eae578485fd5b617eba88838901617c96565b90965094506020870135915080821115617ed2578384fd5b50617edf87828801617c96565b95989497509550505050565b600080600060608486031215617eff578283fd5b83356001600160401b0380821115617f15578485fd5b81860187601f820112617f26578586fd5b80359250617f36617cf684618f70565b80848252602080830192508084018b828389028701011115617f5657898afd5b8994505b86851015617f8057617f6c8c82617c8b565b845260019490940193928101928101617f5a565b509097508801359350505080821115617f97578384fd5b617fa387838801617d99565b93506040860135915080821115617fb8578283fd5b50617fc586828701617cd7565b9150509250925092565b600060208284031215617fe0578081fd5b8151801515811461115e578182fd5b60008060208385031215618001578182fd5b82356001600160401b03811115618016578283fd5b61802285828601617e0c565b90969095509350505050565b60008060008060408587031215618043578384fd5b84356001600160401b0380821115618059578586fd5b61806588838901617e0c565b9096509450602087013591508082111561807d578384fd5b50617edf87828801617e0c565b60006020828403121561809b578081fd5b5035919050565b6000602082840312156180b3578081fd5b5051919050565b600080604083850312156180cc578182fd5b505080516020909101519092909150565b6000806000604084860312156180f1578081fd5b833560ff81168114618101578182fd5b925060208401356001600160401b0381111561811b578182fd5b61812786828701617e0c565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561816c5781516001600160a01b031687529582019590820190600101618147565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181b9816020860160208601618f8f565b601f01601f19169290920160200192915050565b600082516181df818460208701618f8f565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618134565b6000604082526182a86040830185618134565b602083820381850152818551808452828401915082838202850101838801865b838110156182f657601f198784030185526182e48383516181a1565b948601949250908501906001016182c8565b50909998505050505050505050565b6000608082526183186080830187618134565b828103602084810191909152865180835287820192820190845b8181101561834e57845183529383019391830191600101618332565b505084810360408601526183628188618134565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e60208301846181a1565b6000604082526183b1604083018688618177565b82810360208401526183c4818587618177565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179a360608301846181a1565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff85168252604060208301526179a3604083018486618177565b6040518181016001600160401b0381118282101715618f6857600080fd5b604052919050565b60006001600160401b03821115618f85578081fd5b5060209081020190565b60005b83811015618faa578181015183820152602001618f92565b8381111561726a5750506000910152565b6001600160a01b0381168114611f2d57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", + Code: feynman.ChapelValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d56565b60405180910390f35b610388610626565b6040516103779190613534565b6103a86103a336600461346a565b61062c565b604051610377919061356c565b6103bd610692565b6040516103779190613561565b6103dd6103d8366004613181565b61069b565b60405161037793929190613d3e565b6103ff6103fa3660046132c7565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d27565b61038861042c36600461343a565b610a1f565b61044461043f366004613181565b610a46565b604051610377929190613d30565b610411610a9d565b610462610aa3565b6040516103779190613d67565b610388610aa8565b61047f610aae565b6040516103779190613d18565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613181565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461346a565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131b9565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461331e565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461346a565b611332565b6103ff6105c1366004613181565b6113a3565b6103ff6105d4366004613387565b611812565b610388611df1565b610411611df7565b610388611dfc565b6103ff611e02565b610462611e3e565b610388611e43565b610462611e49565b6103ff611e4e565b610388612297565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bbb565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613661565b60405162461bcd60e51b815260040161064f90613cac565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613661565b6006546106ed5760146006555b6008546106fb576170806008555b81511580159061070b5750805115155b6107275760405162461bcd60e51b815260040161064f90613b19565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073f579050509050610760606161229d565b8160008151811061076d57fe5b6020026020010181905250610781836122b8565b8160018151811061078e57fe5b60200260200101819052506107a2826122b8565b816002815181106107af57fe5b602002602001018190525060606107c58261230e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613534565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610889919061319d565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613631565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135d2565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613534565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613534565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613548565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613452565b505050505050505050565b61200581565b61708081565b60018181548110610a2c57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a51612f68565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b606181565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138a4565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613661565b61200063f7a251d7600b610b268461239f565b60006040518463ffffffff1660e01b8152600401610b4693929190613d75565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e52833981519152600083604051610bcf92919061357f565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b603281565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bbb565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613661565b610c5d612f8b565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246892505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d56565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d56565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138a4565b610d5c82826124e8565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613661565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a08565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b6020820152915061269b9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613830565b604080516020601f8401819004810282018101909252828152600091610e9c918585808385018382808284376000920191909152506126f592505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b76565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b6020820152915061269b9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a56565b604080516020601f8401819004810282018101909252828152600091610f9d918585808385018382808284376000920191909152506126f592505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061371a565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b6020820152915061269b9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f90613990565b604080516020601f84018190048102820181019092528281526000916110a6918585808385018382808284376000920191909152506126f592505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613a98565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c61736800000000000000006020820152915061269b9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f9061374f565b604080516020601f84018190048102820181019092528281526111b291908484808385018382808284376000920191909152506126fa92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b6020820152915061269b9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f9061391f565b604080516020601f8401819004810282018101909252828152600091611292918585808385018382808284376000920191909152506126f592505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f90613698565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c57565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135a0565b60405180910390a150505050565b609681565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bbb565b60005460ff166113755760405162461bcd60e51b815260040161064f90613661565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c0a565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613661565b60035443116114055760405162461bcd60e51b815260040161064f90613ce3565b3a156114235760405162461bcd60e51b815260040161064f90613962565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613534565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132a7565b6114a15761180b565b6114a9612f68565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613534565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613534565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a919061319d565b6001600160a01b03161461166b576116668282602001516124e8565b611734565b61200063f7a251d7600b61167e8561239f565b60006040518463ffffffff1660e01b815260040161169e93929190613d75565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e5283398151915283602001518360405161172a92919061357f565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613534565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613661565b60075460ff166118565760405162461bcd60e51b815260040161064f906135fc565b6006546118635760146006555b600854611871576170806008555b60085481516040015143910111801561189557504360085482602001516040015101115b6118b15760405162461bcd60e51b815260040161064f90613c7e565b8060200151602001518160000151602001511480156118df5750806020015160600151816000015160600151145b156118fc5760405162461bcd60e51b815260040161064f90613877565b80516040810151905110801561191b5750602081015160408101519051105b6119375760405162461bcd60e51b815260040161064f906137f9565b60208101515181515110801561195c5750806000015160400151816020015160400151105b8061198757508051516020820151511080156119875750806020015160400151816000015160400151105b806119a15750806020015160400151816000015160400151145b6119bd5760405162461bcd60e51b815260040161064f906136e3565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e6919060040161356c565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906132a7565b611a525760405162461bcd60e51b815260040161064f906139d9565b611a6481600001518260400151612722565b8015611a7d5750611a7d81602001518260400151612722565b611a995760405162461bcd60e51b815260040161064f9061379a565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1391908101906131e4565b9150915060005b8151811015611c5057611b44828281518110611b3257fe5b602002602001015185604001516128fa565b15611c48576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7c9033908590600401613548565b602060405180830381600087803b158015611b9657600080fd5b505af1158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190613452565b506110006001600160a01b03166335409f7f858481518110611bec57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c109190613534565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b5050505050611c50565b600101611b1a565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7c9160040161356c565b60206040518083038186803b158015611c9457600080fd5b505afa158015611ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccc919061319d565b6001600160a01b031614611d3a576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d03919060040161356c565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d5a866040015161295e565b60006040518463ffffffff1660e01b8152600401611d7a93929190613d75565b600060405180830381600087803b158015611d9457600080fd5b505af1158015611da8573d6000803e3d6000fd5b505050506000611dbd84604001516000612999565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e255760405162461bcd60e51b815260040161064f90613ae2565b603260045560966005556000805460ff19166001179055565b601181565b61100081565b600381565b3361100014611e6f5760405162461bcd60e51b815260040161064f906138a4565b60005460ff16611e915760405162461bcd60e51b815260040161064f90613661565b600154611e9d57612295565b600154600090600019015b808211612269576000805b82841015611fcc57611ec3612f68565b6002600060018781548110611ed457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fb657600460055481611f4157fe5b04816020015103816020018181525050806002600060018881548110611f6357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fc0565b6001925050611fcc565b50836001019350611eb3565b82841161216357611fdb612f68565b6002600060018681548110611fec57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120d45760046005548161205957fe5b0481602001510381602001818152505080600260006001878154811061207b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121639050565b60026000600186815481106120e557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061212957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121565750612163565b5060001990920191611fcc565b81801561216d5750805b1561224c57600260006001868154811061218357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121ca57fe5b600091825260209091200154600180546001600160a01b0390921691869081106121f057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061222957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612258575050612269565b505060019091019060001901611ea8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122b06122ab836129b5565b6122b8565b90505b919050565b6060815160011480156122ea5750607f60f81b826000815181106122d857fe5b01602001516001600160f81b03191611155b156122f65750806122b3565b6122b06123088351608060ff16612a9b565b83612b6d565b606081516000141561232f57506040805160008152602081019091526122b3565b60608260008151811061233e57fe5b602002602001015190506000600190505b835181101561237f576123758285838151811061236857fe5b6020026020010151612b6d565b915060010161234f565b50612398612392825160c060ff16612a9b565b82612b6d565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ba5790505090506123e3836001600160a01b0316612bea565b816000815181106123f057fe5b60200260200101819052506124044361229d565b8160018151811061241157fe5b6020908102919091010152612426606161229d565b8160028151811061243357fe5b60200260200101819052506124474261229d565b8160038151811061245457fe5b60200260200101819052506123988161230e565b612470612f8b565b600061247a612f8b565b612482612f9d565b61249361248e86612c0d565b612c32565b90506000805b6124a283612c7c565b156124db57806124ce576124bd6124b884612c9d565b612ceb565b63ffffffff168452600191506124d3565b6124db565b600101612499565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061250d908590600401613534565b600060405180830381600087803b15801561252757600080fd5b505af1925050508015612538575060015b610d5c576040516000815260443d1015612554575060006125f1565b60046000803e60005160e01c6308c379a081146125755760009150506125f1565b60043d036004833e81513d602482011167ffffffffffffffff821117156125a1576000925050506125f1565b808301805167ffffffffffffffff8111156125c35760009450505050506125f1565b8060208301013d86018111156125e1576000955050505050506125f1565b601f01601f191660405250925050505b806125fc5750612633565b826001600160a01b0316600080516020613e52833981519152838360405161262592919061357f565b60405180910390a250612696565b3d80801561265d576040519150601f19603f3d011682016040523d82523d6000602084013e612662565b606091505b50826001600160a01b0316600080516020613e52833981519152838360405161268c92919061357f565b60405180910390a2505b610d5c565b6000816040516020016126ae9190613518565b60405160208183030381529060405280519060200120836040516020016126d59190613518565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561271457600191508161271a565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161273e575050604080516020808252818301909252919250606091908082018180368337019050509050612783856000015161229d565b8260008151811061279057fe5b60200260200101819052506127ab6020866020015183612d6d565b6127b4816122b8565b826001815181106127c157fe5b60200260200101819052506127d9856040015161229d565b826002815181106127e657fe5b60200260200101819052506128016020866060015183612d6d565b61280a816122b8565b8260038151811061281757fe5b602002602001018190525061283d60206128308461230e565b8051906020012083612d6d565b6040805160b080825260e0820190925260609160208201818036833701905050905061286d818360006020612d7d565b61287f81876080015160206060612d7d565b61288d818660806030612d7d565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128ca57600080fd5b5060016128d8826000612dd0565b60ff16146128ed5760009450505050506126ef565b5060019695505050505050565b8151815160009160019181148083146129165760009250612954565b600160208701838101602088015b60028483851001141561294f5780518351146129435760009650600093505b60209283019201612924565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816129795790505090506123e3836122b8565b600081602001835110156129ac57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166129f957506018612a1d565b6fffffffffffffffffffffffffffffffff198416612a1957506010612a1d565b5060005b6020811015612a5357818181518110612a3257fe5b01602001516001600160f81b03191615612a4b57612a53565b600101612a1d565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ac55760405162461bcd60e51b815260040161064f906137d1565b60408051600180825281830190925260609160208201818036833701905050905060378411612b1f5782840160f81b81600081518110612b0157fe5b60200101906001600160f81b031916908160001a90535090506126ef565b6060612b2a856129b5565b90508381510160370160f81b82600081518110612b4357fe5b60200101906001600160f81b031916908160001a905350612b648282612b6d565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612b9e578051835260209283019201612b86565b50855184518101855292509050808201602086015b81831015612bcb578051835260209283019201612bb3565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b8318601482015260348101909152606090612398816122b8565b612c15612fbd565b506040805180820190915281518152602082810190820152919050565b612c3a612f9d565b612c4382612dec565b612c4c57600080fd5b6000612c5b8360200151612e26565b60208085015160408051808201909152868152920190820152915050919050565b6000612c86612fbd565b505080518051602091820151919092015191011190565b612ca5612fbd565b612cae82612c7c565b612cb757600080fd5b60208201516000612cc782612e89565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d0057508151602110155b612d0957600080fd5b6000612d188360200151612e26565b90508083600001511015612d3e5760405162461bcd60e51b815260040161064f90613b3f565b825160208085015183018051928490039291831015612d6457826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612d9457fe5b602001015160f81c60f81b858480600101955081518110612db157fe5b60200101906001600160f81b031916908160001a905350600101612d80565b60008160010183511015612de357600080fd5b50016001015190565b8051600090612dfd575060006122b3565b6020820151805160001a9060c0821015612e1c576000925050506122b3565b5060019392505050565b8051600090811a6080811015612e405760009150506122b3565b60b8811080612e5b575060c08110801590612e5b575060f881105b15612e6a5760019150506122b3565b60c0811015612e7e5760b5190190506122b3565b60f5190190506122b3565b80516000908190811a6080811015612ea45760019150612f61565b60b8811015612eb957607e1981019150612f61565b60c0811015612f0a57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f045760405162461bcd60e51b815260040161064f906138f4565b50612f61565b60f8811015612f1f5760be1981019150612f61565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561271a5760405162461bcd60e51b815260040161064f906138f4565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fb0612fbd565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612fe7578081fd5b8151612ffa612ff582613dc8565b613da1565b818152915060208083019084810160005b84811015613070578151870188603f82011261302657600080fd5b83810151613036612ff582613de8565b81815260408b8184860101111561304c57600080fd5b61305b83888401838701613e0c565b5086525050928201929082019060010161300b565b505050505092915050565b60008083601f84011261308c578182fd5b50813567ffffffffffffffff8111156130a3578182fd5b6020830191508360208285010111156130bb57600080fd5b9250929050565b600082601f8301126130d2578081fd5b81356130e0612ff582613de8565b91508082528360208285010111156130f757600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613121578081fd5b61312b60a0613da1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561316957600080fd5b613175848285016130c2565b60808301525092915050565b600060208284031215613192578081fd5b813561239881613e3c565b6000602082840312156131ae578081fd5b815161239881613e3c565b600080604083850312156131cb578081fd5b82356131d681613e3c565b946020939093013593505050565b600080604083850312156131f6578182fd5b825167ffffffffffffffff8082111561320d578384fd5b81850186601f82011261321e578485fd5b8051925061322e612ff584613dc8565b80848252602080830192508084018a82838902870101111561324e578889fd5b8894505b8685101561327957805161326581613e3c565b845260019490940193928101928101613252565b508801519096509350505080821115613290578283fd5b5061329d85828601612fd7565b9150509250929050565b6000602082840312156132b8578081fd5b81518015158114612398578182fd5b600080604083850312156132d9578182fd5b823567ffffffffffffffff808211156132f0578384fd5b6132fc868387016130c2565b93506020850135915080821115613311578283fd5b5061329d858286016130c2565b60008060008060408587031215613333578182fd5b843567ffffffffffffffff8082111561334a578384fd5b6133568883890161307b565b9096509450602087013591508082111561336e578384fd5b5061337b8782880161307b565b95989497509550505050565b600060208284031215613398578081fd5b813567ffffffffffffffff808211156133af578283fd5b818401606081870312156133c1578384fd5b6133cb6060613da1565b92508035828111156133db578485fd5b6133e787828401613110565b8452506020810135828111156133fb578485fd5b61340787828401613110565b60208501525060408101358281111561341e578485fd5b61342a878284016130c2565b6040850152509195945050505050565b60006020828403121561344b578081fd5b5035919050565b600060208284031215613463578081fd5b5051919050565b60008060006040848603121561347e578081fd5b833560ff8116811461348e578182fd5b9250602084013567ffffffffffffffff8111156134a9578182fd5b6134b58682870161307b565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613504816020860160208601613e0c565b601f01601f19169290920160200192915050565b6000825161352a818460208701613e0c565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261239860208301846134ec565b60008382526040602083015261359860408301846134ec565b949350505050565b6000604082526135b46040830186886134c2565b82810360208401526135c78185876134c2565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613d9160608301856134ec565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dc057600080fd5b604052919050565b600067ffffffffffffffff821115613dde578081fd5b5060209081020190565b600067ffffffffffffffff821115613dfe578081fd5b50601f01601f191660200190565b60005b83811015613e27578181015183820152602001613e0f565b83811115613e36576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", + Code: feynman.ChapelSlashContract, }, { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113d9565b34801561081957600080fd5b506107776113df565b34801561082e57600080fd5b506106366113e4565b34801561084357600080fd5b506104d06113ef565b34801561085857600080fd5b506104d06113f5565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fb565b34801561089757600080fd5b50610636611416565b3480156108ac57600080fd5b5061077761141f565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611424565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118f9565b348015610a0257600080fd5b506107776118ff565b348015610a1757600080fd5b50610636611904565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190a565b348015610a5657600080fd5b506104d061198b565b348015610a6b57600080fd5b50610777611991565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611996565b348015610abf57600080fd5b506104d0611c46565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4c565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d94565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efd565b348015610bd157600080fd5b50610636611f83565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f8a565b348015610c1f57600080fd5b50610777612147565b348015610c3457600080fd5b5061063661214c565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612158565b348015610c8257600080fd5b506104d0612296565b348015610c9757600080fd5b506104d061229c565b348015610cac57600080fd5b506107776122a2565b348015610cc157600080fd5b506109cd6122a7565b348015610cd657600080fd5b506107776122b0565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b5565b348015610d3257600080fd5b506104d0612335565b348015610d4757600080fd5b506104d061233b565b348015610d5c57600080fd5b506104a26122a2565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612341565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e9565b348015610e7557600080fd5b50610636612869565b348015610e8a57600080fd5b50610636612873565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612879565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288b565b348015610f0557600080fd5b506104d06128a6565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ac565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297c565b348015610fda57600080fd5b506104d0612c50565b348015610fef57600080fd5b506104d0612c56565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5c565b34801561102e57600080fd5b50610486612cfc565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9c565b34801561107657600080fd5b50610777612dae565b34801561108b57600080fd5b50610777612db3565b3480156110a057600080fd5b50610777612db8565b3480156110b557600080fd5b506104d0612dbd565b3480156110ca57600080fd5b50610636612dc3565b3480156110df57600080fd5b50610636612dc9565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd7565b34801561112757600080fd5b506104d0612efe565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0492505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b606181565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146a576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b8685146114a85760405162461bcd60e51b815260040180806020018281038252603b815260200180615357603b913960400191505060405180910390fd5b8683146114e65760405162461bcd60e51b815260040180806020018281038252603f815260200180615269603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115325760405162461bcd60e51b81526004018080602001828103825260248152602001806151e56024913960400191505060405180910390fd5b6402540be4003406156115765760405162461bcd60e51b815260040180806020018281038252604081526020018061545a6040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115a9578160200160208202803683370190505b50905060005b84811015611684576402540be4008b8b838181106115c957fe5b90506020020135816115d757fe5b06156116145760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a8603c913960400191505060405180910390fd5b6116398b8b8381811061162357fe5b905060200201358561302890919063ffffffff16565b93506116656402540be4008c8c8481811061165057fe5b9050602002013561308290919063ffffffff16565b82828151811061167157fe5b60209081029190910101526001016115af565b506001546116a99061169c908663ffffffff6130c416565b849063ffffffff61302816565b3410156116e75760405162461bcd60e51b81526004018080602001828103825260568152602001806154046056913960600191505060405180910390fd5b6116f7348463ffffffff61311d16565b9150611701615023565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c58461315f565b6117da876402540be40063ffffffff61308216565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611838578181015183820152602001611820565b50505050905090810190601f1680156118655780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188657600080fd5b505af115801561189a573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194c5760405162461bcd60e51b815260040180806020018281038252603381526020018061513d6033913960400191505060405180910390fd5b8115611983576040516120019083156108fc029084906000818181858888f19350505050158015611981573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119db576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361300014611a1b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a625760405162461bcd60e51b81526004018080602001828103825260358152602001806152096035913960400191505060405180910390fd5b60006221272160e91b8414611bcc576000848152600460205260409020546001600160a01b031680611ad5576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c41565b6001600160a01b038116600090815260026020526040902054611af8848261341a565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4357600080fd5b505afa158015611b57573d6000803e3d6000fd5b505050506040513d6020811015611b6d57600080fd5b50511015611bb9576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc58683858861345a565b5050611c3f565b611be1826402540be40063ffffffff6130c416565b905080471015611c2f576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3d8582848761345a565b505b505b505050565b61200381565b60005460ff16611c91576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b3361200014611cd15760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f492505050565b611c41565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd45760405162461bcd60e51b815260040180806020018281038252602b81526020018061523e602b913960400191505060405180910390fd5b60006221272160e91b8314611e3f57506000828152600460205260409020546001600160a01b031680611e3f576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eaa576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3d5760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b6201518081565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc457600080fd5b505afa158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50516001600160a01b0316331461204c576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b6000821161209a576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120f0576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219e576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33611005146121de5760405162461bcd60e51b815260040180806020018281038252602f815260200180615170602f913960400191505060405180910390fd5b60004783106121ed57476121ef565b825b9050670de0b6b3a764000081111561220b576000915050612290565b801561228d576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612247573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fb576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123815760405162461bcd60e51b815260040180806020018281038252602e815260200180615305602e913960400191505060405180910390fd5b602081146123d6576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124de576020820151670de0b6b3a7640000811180159061248557506402540be4008106155b6124d6576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612754565b61255287878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f64000000000000000000602082015291506135509050565b156125ee57604080516020601f87018190048102820181019092528581526000916125959188888083850183828082843760009201919091525061363792505050565b905062093a808111156125e6576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612754565b61265a87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b602082015291506135509050565b1561271757604080516020601f870181900481028201810190925285815260009161269d9188888083850183828082843760009201919091525061363792505050565b905068056bc75e2d631000008110156126e75760405162461bcd60e51b815260040180806020018281038252602281526020018061519f6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612754565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128295760405162461bcd60e51b81526004018080602001828103825260238152602001806153c16023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f1576040805162461bcd60e51b815260206004820152601960248201526000805160206153e4833981519152604482015290519081900360640190fd5b33612000146129315760405162461bcd60e51b815260040180806020018281038252602f815260200180615392602f913960400191505060405180910390fd5b60ff831660031415611d2157611d1c82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363c92505050565b60085460ff16600214156129c8576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a40576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a99576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0c576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b505080915050612b9f565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6f57600080fd5b5087f1158015612b83573d6000803e3d6000fd5b50505050506040513d6020811015612b9a57600080fd5b505190505b80612bf1576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf4576040516120029083156108fc029084906000818181858888f19350505050158015612cea573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d54576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6757828160ff1681518110612e3b57fe5b01602001516001600160f81b03191615612e5a57816001019150612e5f565b612e67565b600101612e20565b5060608160ff166040519080825280601f01601f191660200182016040528015612e98576020820181803683370190505b50905060005b8260ff168160ff161015612ef457838160ff1681518110612ebb57fe5b602001015160f81c60f81b828260ff1681518110612ed557fe5b60200101906001600160f81b031916908160001a905350600101612e9e565b5095945050505050565b61100481565b6060612f0e61506f565b6000612f1984613733565b9150915080612f6f576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f7a83613872565b905063ffffffff81161561300e576040808401516020808601516001600160a01b03166000908152600290915291822054612fb59190613bd8565b9050612fbf6150a4565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300281613c11565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ced565b6000826130d357506000612290565b828202828482816130e057fe5b041461228d5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e46021913960400191505060405180910390fd5b600061228d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8f565b60408051600680825260e08201909252606091829190816020015b606081526020019060019003908161317a575050835190915061319c90613de9565b816000815181106131a957fe5b60200260200101819052506131ca83602001516001600160a01b0316613dfc565b816001815181106131d757fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322257816020015b606081526020019060019003908161320d5790505b50905060005b8281101561326f576132508660400151828151811061324357fe5b6020026020010151613de9565b82828151811061325c57fe5b6020908102919091010152600101613228565b5061327981613e1f565b8360028151811061328657fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c757816020015b60608152602001906001900390816132b25790505b50905060005b8381101561331d576132fe876060015182815181106132e857fe5b60200260200101516001600160a01b0316613dfc565b82828151811061330a57fe5b60209081029190910101526001016132cd565b5061332781613e1f565b8460038151811061333457fe5b602002602001018190525060608360405190808252806020026020018201604052801561337557816020015b60608152602001906001900390816133605790505b50905060005b848110156133b557613396886080015182815181106132e857fe5b8282815181106133a257fe5b602090810291909101015260010161337b565b506133bf81613e1f565b856004815181106133cc57fe5b60200260200101819052506133ee8760a0015167ffffffffffffffff16613de9565b856005815181106133fb57fe5b602002602001018190525061340f85613e1f565b979650505050505050565b600060088211156134435761343c836007198401600a0a63ffffffff6130c416565b9050612290565b61228d836008849003600a0a63ffffffff61308216565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613491908463ffffffff61302816565b81554262015180016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134fc6150cb565b600061350783613ea9565b91509150806135475760405162461bcd60e51b81526004018080602001828103825260248152602001806153336024913960400191505060405180910390fd5b611c4182614074565b6000816040516020018082805190602001908083835b602083106135855780518252601f199092019160209182019101613566565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f35780518252601f1990920191602091820191016135d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613644615023565b600061364f836144f8565b915091508061368f5760405162461bcd60e51b81526004018080602001828103825260248152602001806151c16024913960400191505060405180910390fd5b6136976150cb565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613718576136f5856040015182815181106136e757fe5b60200260200101518361341a565b8560400151828151811061370557fe5b60209081029190910101526001016136c7565b506080840151604083015260056060830152611c3d82614074565b61373b61506f565b600061374561506f565b61374d615102565b61375e6137598661475c565b614781565b90506000805b61376d836147cb565b15613865578061378f57613788613783846147ec565b61483a565b845261385d565b80600114156137bc576137a96137a4846147ec565b6148f1565b6001600160a01b0316602085015261385d565b80600214156137db576137d1613783846147ec565b604085015261385d565b8060031415613803576137f06137a4846147ec565b6001600160a01b0316606085015261385d565b806004141561382b576138186137a4846147ec565b6001600160a01b0316608085015261385d565b806005141561385857613840613783846147ec565b67ffffffffffffffff1660a08501526001915061385d565b613865565b600101613764565b5091935090915050915091565b60208101516000906001600160a01b03166139b6578160a0015167ffffffffffffffff164211156138a5575060016113b2565b81604001514710156138b9575060036113b2565b6138c28261490b565b61393757606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391d576040519150601f19603f3d011682016040523d82523d6000602084013e613922565b606091505b50509050806139355750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d4575060016113b2565b81516020808401516001600160a01b031660009081526003909152604090205414613a01575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a5157600080fd5b5086fa158015613a65573d6000803e3d6000fd5b50505050506040513d6020811015613a7c57600080fd5b50516040840151909150811015613a975750600390506113b2565b613aa08361490b565b613b5757600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1557600080fd5b5087f1158015613b29573d6000803e3d6000fd5b50505050506040513d6020811015613b4057600080fd5b5051905080613b555750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bfa5761343c836007198401600a0a63ffffffff61308216565b61228d836008849003600a0a63ffffffff6130c416565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c2c5750508351909150613c4e90613de9565b81600081518110613c5b57fe5b6020026020010181905250613c738360200151613de9565b81600181518110613c8057fe5b6020026020010181905250613ca183604001516001600160a01b0316613dfc565b81600281518110613cae57fe5b6020026020010181905250613ccc836060015163ffffffff16613de9565b81600381518110613cd957fe5b602002602001018190525061126281613e1f565b60008183613d795760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3e578181015183820152602001613d26565b50505050905090810190601f168015613d6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8557fe5b0495945050505050565b60008184841115613de15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3e578181015183820152602001613d26565b505050900390565b6060612290613df783614a79565b614b5f565b60408051600560a21b831860148201526034810190915260609061126281614b5f565b6060815160001415613e4057506040805160008152602081019091526113b2565b606082600081518110613e4f57fe5b602002602001015190506000600190505b8351811015613e9057613e8682858381518110613e7957fe5b6020026020010151614bb1565b9150600101613e60565b50611262613ea3825160c060ff16614c2e565b82614bb1565b613eb16150cb565b6000613ebb6150cb565b613ec3615102565b613ecf6137598661475c565b90506000805b613ede836147cb565b156138655780613f0457613ef46137a4846147ec565b6001600160a01b0316845261406c565b8060011415613fa5576060613f20613f1b856147ec565b614d26565b90508051604051908082528060200260200182016040528015613f4d578160200160208202803683370190505b50602086015260005b8151811015613f9e57613f7b828281518110613f6e57fe5b602002602001015161483a565b86602001518281518110613f8b57fe5b6020908102919091010152600101613f56565b505061406c565b8060021415614047576060613fbc613f1b856147ec565b90508051604051908082528060200260200182016040528015613fe9578160200160208202803683370190505b50604086015260005b8151811015613f9e5761401782828151811061400a57fe5b60200260200101516148f1565b8660400151828151811061402757fe5b6001600160a01b0390921660209283029190910190910152600101613ff2565b80600314156138585761405c613783846147ec565b63ffffffff166060850152600191505b600101613ed5565b80516001600160a01b031661429e5760005b816020015151811015614298576000826040015182815181106140a557fe5b60200260200101516001600160a01b0316612710846020015184815181106140c957fe5b60209081029190910101516040516000818181858888f193505050503d8060008114614111576040519150601f19603f3d011682016040523d82523d6000602084013e614116565b606091505b50509050806141d9577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415557fe5b60200260200101518560200151858151811061416d57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428f565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420f57fe5b60200260200101518560200151858151811061422757fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614086565b506144f5565b60005b8160200151518110156144f357600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d657fe5b6020026020010151866020015186815181106142ee57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434557600080fd5b5087f1158015614359573d6000803e3d6000fd5b50505050506040513d602081101561437057600080fd5b505190508015614434577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143b057fe5b6020026020010151856020015185815181106143c857fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144ea565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446a57fe5b60200260200101518560200151858151811061448257fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b506001016142a1565b505b50565b614500615023565b600061450a615023565b614512615102565b61451e6137598661475c565b90506000805b61452d836147cb565b15613865578061454a57614543613783846147ec565b8452614754565b80600114156145725761455f6137a4846147ec565b6001600160a01b03166020850152614754565b8060021415614601576060614589613f1b856147ec565b905080516040519080825280602002602001820160405280156145b6578160200160208202803683370190505b50604086015260005b81518110156145fa576145d7828281518110613f6e57fe5b866040015182815181106145e757fe5b60209081029190910101526001016145bf565b5050614754565b8060031415614696576060614618613f1b856147ec565b90508051604051908082528060200260200182016040528015614645578160200160208202803683370190505b50606086015260005b81518110156145fa5761466682828151811061400a57fe5b8660600151828151811061467657fe5b6001600160a01b039092166020928302919091019091015260010161464e565b806004141561472b5760606146ad613f1b856147ec565b905080516040519080825280602002602001820160405280156146da578160200160208202803683370190505b50608086015260005b81518110156145fa576146fb82828151811061400a57fe5b8660800151828151811061470b57fe5b6001600160a01b03909216602092830291909101909101526001016146e3565b806005141561385857614740613783846147ec565b67ffffffffffffffff1660a0850152600191505b600101614524565b614764615122565b506040805180820190915281518152602082810190820152919050565b614789615102565b61479282614df7565b61479b57600080fd5b60006147aa8360200151614e31565b60208085015160408051808201909152868152920190820152915050919050565b60006147d5615122565b505080518051602091820151919092015191011190565b6147f4615122565b6147fd826147cb565b61480657600080fd5b6020820151600061481682614e94565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484f57508151602110155b61485857600080fd5b60006148678360200151614e31565b905080836000015110156148c2576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e857826020036101000a820491505b50949350505050565b805160009060151461490257600080fd5b6122908261483a565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149445750600554155b156149865760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b45750808360400151105b156149c35760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a099163ffffffff61302816565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614abd57506018614ae1565b6fffffffffffffffffffffffffffffffff198416614add57506010614ae1565b5060005b6020811015614b1757818181518110614af657fe5b01602001516001600160f81b03191615614b0f57614b17565b600101614ae1565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b4c576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b915750607f60f81b82600081518110614b7f57fe5b01602001516001600160f81b03191611155b15614b9d5750806113b2565b612290614baf8351608060ff16614c2e565b835b6060806040519050835180825260208201818101602087015b81831015614be2578051835260209283019201614bca565b50855184518101855292509050808201602086015b81831015614c0f578051835260209283019201614bf7565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7e576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd85782840160f81b81600081518110614cba57fe5b60200101906001600160f81b031916908160001a9053509050612290565b6060614ce385614a79565b90508381510160370160f81b82600081518110614cfc57fe5b60200101906001600160f81b031916908160001a905350614d1d8282614bb1565b95945050505050565b6060614d3182614df7565b614d3a57600080fd5b6000614d4583614fc7565b9050606081604051908082528060200260200182016040528015614d8357816020015b614d70615122565b815260200190600190039081614d685790505b5090506000614d958560200151614e31565b60208601510190506000805b84811015614dec57614db283614e94565b9150604051806040016040528083815260200184815250848281518110614dd557fe5b602090810291909101015291810191600101614da1565b509195945050505050565b8051600090614e08575060006113b2565b6020820151805160001a9060c0821015614e27576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e4b5760009150506113b2565b60b8811080614e66575060c08110801590614e66575060f881105b15614e755760019150506113b2565b60c0811015614e895760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eaf5760019150614fc0565b60b8811015614ec457607e1981019150614fc0565b60c0811015614f3e57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f38576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fc0565b60f8811015614f535760be1981019150614fc0565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbe576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd8575060006113b2565b60008090506000614fec8460200151614e31565b602085015185519181019250015b8082101561501a5761500b82614e94565b82019150826001019250614ffa565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b6040518060400160405280615115615122565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a", + Code: feynman.ChapelTokenHubContract, }, { ContractAddr: common.HexToAddress(GovHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a610737565b61022961073d565b61036b610742565b6040805160ff9092168252519081900360200190f35b61024a610747565b61036b61074d565b610399610752565b6040805161ffff9092168252519081900360200190f35b61036b610757565b61024a61075c565b61024a610762565b61024a610768565b61036b61076e565b61036b610773565b61024a610778565b61036b61077e565b61024a610783565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b509092509050610789565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b031661081b565b61036b610906565b61022961090b565b61024a610910565b61024a610916565b61056161091c565b604080519115158252519081900360200190f35b61024a610925565b61024a61092b565b61022961074d565b61024a610931565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b509092509050610937565b61024a6109ae565b61024a6109b4565b61036b6109ba565b61024a6109bf565b61036b6109c5565b61024a6109ca565b606481565b61200181565b6060336120001461068a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b610692611638565b60006106d385858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109d092505050565b91509150806106ef576106e66064610a96565b92505050610730565b60006106fa83610b00565b905063ffffffff811661072157505060408051600081526020810190915291506107309050565b61072a81610a96565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b606181565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b33612000146107c95760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461085b5760405162461bcd60e51b81526004018080602001828103825260318152602001806116cc6031913960400191505060405180910390fd5b610863611638565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108fd81610b00565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109775760405162461bcd60e51b815260040180806020018281038252602f81526020018061169d602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116fd6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109d8611638565b60006109e2611638565b6109ea611662565b6109fb6109f686610ea1565b610ec6565b90506000805b610a0a83610f10565b15610a895780610a2c57610a25610a2084610f31565b610f7f565b8452610a81565b8060011415610a4b57610a41610a2084610f31565b6020850152610a81565b8060021415610a7c57610a65610a6084610f31565b610ff8565b6001600160a01b0316604085015260019150610a81565b610a89565b600101610a01565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610ab0579050509050610ad68363ffffffff16611018565b81600081518110610ae357fe5b6020026020010181905250610af78161102b565b9150505b919050565b6000610b0f82604001516110b5565b610b7b57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610afb565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610be8578181015183820152602001610bd0565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c48578181015183820152602001610c30565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c9657600080fd5b505af1925050508015610ca7575060015b610e99576040516000815260443d1015610cc357506000610d60565b60046000803e60005160e01c6308c379a08114610ce4576000915050610d60565b60043d036004833e81513d602482011167ffffffffffffffff82111715610d1057600092505050610d60565b808301805167ffffffffffffffff811115610d32576000945050505050610d60565b8060208301013d8601811115610d5057600095505050505050610d60565b601f01601f191660405250925050505b80610d6b5750610e0e565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578181015183820152602001610db2565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610afb565b3d808015610e38576040519150601f19603f3d011682016040523d82523d6000602084013e610e3d565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610dca578181015183820152602001610db2565b506000919050565b610ea9611682565b506040805180820190915281518152602082810190820152919050565b610ece611662565b610ed7826110bb565b610ee057600080fd5b6000610eef83602001516110f5565b60208085015160408051808201909152868152920190820152915050919050565b6000610f1a611682565b505080518051602091820151919092015191011190565b610f39611682565b610f4282610f10565b610f4b57600080fd5b60208201516000610f5b82611158565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f8d57600080fd5b6000610f9c83602001516110f5565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610fd3576020820181803683370190505b5090506000816020019050610fef84876020015101828561128b565b50949350505050565b805160009060151461100957600080fd5b611012826112d6565b92915050565b60606110126110268361138b565b611471565b606081516000141561104c5750604080516000815260208101909152610afb565b60608260008151811061105b57fe5b602002602001015190506000600190505b835181101561109c576110928285838151811061108557fe5b60200260200101516114c3565b915060010161106c565b50610af76110af825160c060ff16611540565b826114c3565b3b151590565b80516000906110cc57506000610afb565b6020820151805160001a9060c08210156110eb57600092505050610afb565b5060019392505050565b8051600090811a608081101561110f576000915050610afb565b60b881108061112a575060c0811080159061112a575060f881105b15611139576001915050610afb565b60c081101561114d5760b519019050610afb565b60f519019050610afb565b80516000908190811a60808110156111735760019150611284565b60b881101561118857607e1981019150611284565b60c081101561120257600060b78203600186019550806020036101000a8651049150600181018201935050808310156111fc576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611284565b60f88110156112175760be1981019150611284565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611282576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8061129557610816565b5b602081106112b5578251825260209283019290910190601f1901611296565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112eb57508151602110155b6112f457600080fd5b600061130383602001516110f5565b9050808360000151101561135e576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fef57506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166113cf575060186113f3565b6fffffffffffffffffffffffffffffffff1984166113ef575060106113f3565b5060005b60208110156114295781818151811061140857fe5b01602001516001600160f81b0319161561142157611429565b6001016113f3565b60008160200390506060816040519080825280601f01601f19166020018201604052801561145e576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114a35750607f60f81b8260008151811061149157fe5b01602001516001600160f81b03191611155b156114af575080610afb565b6110126114c18351608060ff16611540565b835b6060806040519050835180825260208201818101602087015b818310156114f45780518352602092830192016114dc565b50855184518101855292509050808201602086015b81831015611521578051835260209283019201611509565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611590576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ea5782840160f81b816000815181106115cc57fe5b60200101906001600160f81b031916908160001a9053509050611012565b60606115f58561138b565b90508381510160370160f81b8260008151811061160e57fe5b60200101906001600160f81b031916908160001a90535061162f82826114c3565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611675611682565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a", + Code: feynman.ChapelGovHubContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611442565b610432611447565b61043261144d565b610456611453565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611483565b6104566116e3565b61061561170b565b6108896004803603602081101561088257600080fd5b5035611710565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b61045661173f565b610432600480360360208110156108d257600080fd5b503560ff16611766565b610432611781565b6103f361170b565b6103f3611787565b61061561141d565b61045661178c565b610432611792565b6103f3611798565b61043261179d565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a3565b610456612a5d565b6103f3612a65565b610432612a6a565b610432612a70565b610470612a76565b610432612a7f565b610432612a85565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8b565b61069260048036036020811015610b0b57600080fd5b503560ff1661354f565b61045661356a565b61043261358e565b6105e6613594565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e8565b610761613808565b610456613827565b61043261382d565b610432613833565b6105e6613839565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf0565b6105e6613c0b565b6103f3613e2a565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e2f565b610432613f72565b6103f3613f78565b610432613f7d565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f83565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcb565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcb565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c8565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614146565b50905061141181838851614150565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b606181565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150b57600080fd5b505afa15801561151f573d6000803e3d6000fd5b505050506040513d602081101561153557600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157657600080fd5b505afa15801561158a573d6000803e3d6000fd5b505050506040513d60208110156115a057600080fd5b50519050806115ad575060155b6000821180156115bd5750808211155b6115fc576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b90915291519081900360780190206000906116699083614191565b905080156116db5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d602081101561185157600080fd5b50516118a4576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611914576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198957600080fd5b505afa15801561199d573d6000803e3d6000fd5b505050506040513d60208110156119b357600080fd5b50516119f05760405162461bcd60e51b8152600401808060200182810382526023815260200180614a806023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5a576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac3576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b155760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b59576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9d6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d6020811015611c7057600080fd5b505160408051808201909152600381526269626360e81b6020820152611c968e8e613f83565b8585613fcb565b611ce5576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3157600080fd5b505afa158015611d45573d6000803e3d6000fd5b505050506040513d6020811015611d5b57600080fd5b505190508b8b600080806060611d7089614476565b935093509350935083611e32578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611dea578181015183820152602001611dd2565b50505050905090810190601f168015611e175780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4d565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b75760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611eff578181015183820152602001611ee7565b50505050905090810190601f168015611f2c5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4c57600080fd5b505af192505050801561203057506040513d6000823e601f3d908101601f191682016040526020811015611f7f57600080fd5b8101908080516040519392919084600160201b821115611f9e57600080fd5b908301906020820185811115611fb357600080fd5b8251600160201b811182820188101715611fcc57600080fd5b82525081516020918201929091019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b5060405250505060015b612342576040516000815260443d101561204c575060006120e7565b60046000803e60005160e01c6308c379a0811461206d5760009150506120e7565b60043d036004833e81513d60248201116001600160401b0382111715612098576000925050506120e7565b80830180516001600160401b038111156120b95760009450505050506120e7565b8060208301013d86018111156120d7576000955050505050506120e7565b601f01601f191660405250925050505b806120f25750612204565b60ff8716600090815260076020526040812054612129916001600160401b0390911690899061212490600290886113a7565b614526565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c45781810151838201526020016121ac565b50505050905090810190601f1680156121f15780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233d565b3d80801561222e576040519150601f19603f3d011682016040523d82523d6000602084013e612233565b606091505b5060ff8716600090815260076020526040812054612266916001600160401b0390911690899061212490600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123015781810151838201526020016122e9565b50505050905090810190601f16801561232e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b1565b8051156123af5760ff871660009081526007602052604081205461237b916001600160401b0390911690899061212490600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612985565b60ff83166001141561265b5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b83811015612441578181015183820152602001612429565b50505050905090810190601f16801561246e5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248e57600080fd5b505af192505050801561249f575060015b6123b1576040516000815260443d10156124bb57506000612556565b60046000803e60005160e01c6308c379a081146124dc576000915050612556565b60043d036004833e81513d60248201116001600160401b038211171561250757600092505050612556565b80830180516001600160401b03811115612528576000945050505050612556565b8060208301013d860181111561254657600095505050505050612556565b601f01601f191660405250925050505b8061256157506125c6565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c45781810151838201526020016121ac565b3d8080156125f0576040519150601f19603f3d011682016040523d82523d6000602084013e6125f5565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123015781810151838201526020016122e9565b60ff8316600214156129855760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e55781810151838201526020016126cd565b50505050905090810190601f1680156127125780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273257600080fd5b505af1925050508015612743575060015b612983576040516000815260443d101561275f575060006127fa565b60046000803e60005160e01c6308c379a081146127805760009150506127fa565b60043d036004833e81513d60248201116001600160401b03821117156127ab576000925050506127fa565b80830180516001600160401b038111156127cc5760009450505050506127fa565b8060208301013d86018111156127ea576000955050505050506127fa565b601f01601f191660405250925050505b8061280557506128ae565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286e578181015183820152602001612856565b50505050905090810190601f16801561289b5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612983565b3d8080156128d8576040519150601f19603f3d011682016040523d82523d6000602084013e6128dd565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561294757818101518382015260200161292f565b50505050905090810190601f1680156129745780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b7575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1757600080fd5b505af1158015612a2b573d6000803e3d6000fd5b505050506040513d6020811015612a4157600080fd5b50505050505050505050505b5050505050505050505050505050565b630100610081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b6602e913960400191505060405180910390fd5b600b5460ff1615612b0f576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c09050565b15612c1357604080516020601f8401819004810282018101909252828152600091612bbb918585808385018382808284376000920191909152506147a792505050565b90506127108111158015612bd05750600a8110155b612c0b5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a2e6032913960400191505060405180910390fd5b6001556134bd565b612c7c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c09050565b15612e0457606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612cff5760405162461bcd60e51b815260040180806020018281038252605a8152602001806148cf605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1d816147ac565b612d6e576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134bd565b612e7184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c09050565b15612fa257606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef45760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e4604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f98576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134bd565b61300684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c09050565b1561313b576002811461304a5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495d602d913960400191505060405180910390fd5b600061308d600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156130a7575060648161ffff16105b6130f1576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61319e84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c09050565b156132d157600281146131e25760405162461bcd60e51b815260040180806020018281038252602c81526020018061498a602c913960400191505060405180910390fd5b6000613225600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff1611801561323f575060648161ffff16105b613288576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b61333c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c09050565b1561348057600281146133805760405162461bcd60e51b81526004018080602001828103825260348152602001806149296034913960400191505060405180910390fd5b60006133c3600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a792505050565b905060008161ffff161180156133dd575060648161ffff16105b61342e576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134bd565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135d9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d602081101561364657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368757600080fd5b505afa15801561369b573d6000803e3d6000fd5b505050506040513d60208110156136b157600080fd5b50519050806136be575060155b6000821180156136ce5750808211155b61370d576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613754576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a5907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e357600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613891576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c50576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9357600080fd5b505afa158015613ca7573d6000803e3d6000fd5b505050506040513d6020811015613cbd57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cfe57600080fd5b505afa158015613d12573d6000803e3d6000fd5b505050506040513d6020811015613d2857600080fd5b5051905080613d35575060155b600082118015613d455750808211155b613d84576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc8576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1a907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614191565b905080156137e3576137e36140c8565b601181565b60005460ff16613e74576040805162461bcd60e51b81526020600482015260196024820152600080516020614a60833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed15760405162461bcd60e51b815260040180806020018281038252603181526020018061489e6031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f369284928a9261212492909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630100610060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fda575060006140bf565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614011576020820181803683370190505b509050600061401f826147b2565b60208089015182520190508660008061403789614146565b8086526020909501949092509050614050828583614150565b9283019261405d88614146565b8086526020909501949092509050614076828583614150565b9283018a81526020019261408987614146565b9092509050614099828583614150565b5083516020016140a76147b8565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410c576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614170578251825260209283019290910190601f1901614151565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425a57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428b575082816001015414155b1561435e576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614300916002840191906147d6565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614412565b60005b60028201548110156143e957336001600160a01b031682600201828154811061438657fe5b6000918252602090912001546001600160a01b031614156143e1576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614361565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446c576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614460600283018261483b565b50506001915050613fc5565b5060009392505050565b600080600060606021855110156144a657505060408051600080825260208201909252909250829150819061451f565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f1576020820181803683370190505b50905060006144ff82614146565b509050614511858260218d5103614150565b506001975091955093509150505b9193509193565b600b5460ff161561456a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145a9576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145ea565b600380546001908101918290555410156145ea576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe606185604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614680578181015183820152602001614668565b50505050905090810190601f1680156146ad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f55780518252601f1990920191602091820191016146d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147635780518252601f199092019160209182019101614744565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482b579160200282015b8281111561482b57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f6565b5061483792915061485c565b5090565b50805460008255906000526020600020908101906148599190614883565b50565b61488091905b808211156148375780546001600160a01b0319168155600101614862565b90565b61488091905b80821115614837576000815560010161488956fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a", + Code: feynman.ChapelCrossChainContract, }, { ContractAddr: common.HexToAddress(StakingContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101b565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611020565b34801561078b57600080fd5b506104f661164d565b3480156107a057600080fd5b506104f6611653565b3480156107b557600080fd5b50610654611659565b3480156107ca57600080fd5b5061042161165e565b3480156107df57600080fd5b50610421611664565b3480156107f457600080fd5b5061042161166d565b34801561080957600080fd5b5061042161180d565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611813565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b0316611819565b34801561089c57600080fd5b50610654611834565b3480156108b157600080fd5b50610654611839565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183e565b3480156108f957600080fd5b506104f6611859565b34801561090e57600080fd5b5061065461185f565b34801561092357600080fd5b506104f6611864565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186a565b3480156109bd57600080fd5b50610654611b32565b3480156109d257600080fd5b506104f6611b37565b3480156109e757600080fd5b506104f6611b3d565b3480156109fc57600080fd5b50610a05611b43565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4c565b348015610a3a57600080fd5b506104f6611b52565b348015610a4f57600080fd5b506104b3611659565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b58565b348015610b2f57600080fd5b506106546122ea565b348015610b4457600080fd5b506104216122ef565b348015610b5957600080fd5b5061042161248c565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612497565b348015610ba957600080fd5b506104216124c4565b348015610bbe57600080fd5b506104f66124ca565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d0565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f3565b348015610c9357600080fd5b506104f661271e565b348015610ca857600080fd5b506104f6612724565b348015610cbd57600080fd5b5061042161272a565b348015610cd257600080fd5b50610654612737565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273c565b348015610d2c57600080fd5b506104f6612771565b348015610d4157600080fd5b50610421612777565b348015610d5657600080fd5b506104f661277d565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614800565b610db2614800565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481e565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b6127a8565b90506000610ef0610eeb836127f2565b612840565b90506000606060ff831660041415610f1557610f0b846128f7565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad7565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b606181565b600881565b60105460ff166002141561106c576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109457506402540be4008106155b6110e5576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611128576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611176576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611231573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e8576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611231576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112a9576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130491859063ffffffff612df716565b9050801561134c57600254811161134c5760405162461bcd60e51b81526004018080602001828103825260258152602001806149be6025913960400191505060405180910390fd5b6000611363846402540be40063ffffffff612e8e16565b600254909150349060009061137f90839063ffffffff612ed716565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139b5790505090506113bb33612f19565b816000815181106113c857fe5b60200260200101819052506113e5886001600160a01b0316612f19565b816001815181106113f257fe5b602002602001018190525061140684612f3c565b8160028151811061141357fe5b60200260200101819052506060611433600261142e84612f4f565b612fd9565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148442620a8c0063ffffffff61305f16565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c8876402540be40063ffffffff612e8e16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152657818101518382015260200161150e565b50505050905090810190601f1680156115535780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bb573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ec573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bc576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611723576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d8060008114611779576040519150601f19603f3d011682016040523d82523d6000602084013e61177e565b606091505b50509050806117c6576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118aa5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff166118ed576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f561481e565b611937610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b905060008060606000805b61194b866130b9565b156119b6578061196857611961610eeb876127f2565b94506119ae565b80600114156119845761197d610eeb876127f2565b93506119ae565b80600214156119a95761199e611999876127f2565b6130da565b9250600191506119ae565b6119b6565b600101611942565b816119fc576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a058361314a565b611a48576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a54610ed684612783565b95506000611a64610eeb886127f2565b9050611a6e61481e565b611a77886130b9565b15611a9a57611a93610ed6611a8e6119998b6127f2565b612783565b9050611adb565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af757611af281888861319e565b611b25565b60ff821660021415611b0e57611af2818888613555565b60ff821660031415610f2a57611af2818888613822565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611baf576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bef5760405162461bcd60e51b815260040180806020018281038252602e815260200180614934602e913960400191505060405180910390fd5b611c5084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b879050565b15611db65760208114611caa576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce891858580838501838280828437600092019190915250613c6e92505050565b90506003548110611d2a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614962602e913960400191505060405180910390fd5b6002548111611d6a5760405162461bcd60e51b815260040180806020018281038252602e815260200180614990602e913960400191505060405180910390fd5b6402540be400810615611dae5760405162461bcd60e51b815260040180806020018281038252602c815260200180614908602c913960400191505060405180910390fd5b600155612258565b611e1a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b879050565b15611f7c5760208114611e74576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb291858580838501838280828437600092019190915250613c6e92505050565b905080611ef05760405162461bcd60e51b8152600401808060200182810382526022815260200180614a126022913960400191505060405180910390fd5b6001548110611f305760405162461bcd60e51b815260040180806020018281038252602e815260200180614888602e913960400191505060405180910390fd5b6402540be400810615611f745760405162461bcd60e51b815260040180806020018281038252602f815260200180614859602f913960400191505060405180910390fd5b600255612258565b611fe084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b879050565b156120c2576020811461203a576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207891858580838501838280828437600092019190915250613c6e92505050565b905060015481116120ba5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b66031913960400191505060405180910390fd5b600355612258565b61212484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b879050565b1561221b576020811461217e576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bc91858580838501838280828437600092019190915250613c6e92505050565b905060008111612213576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612258565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233e576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a2576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f8576040519150601f19603f3d011682016040523d82523d6000602084013e6123fd565b606091505b5050905080612445576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125105760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e3602f913960400191505060405180910390fd5b60005460ff16612553576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259282828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314a92505050565b6125d5576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125dd61481e565b61261f610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278392505050565b9050600061262f610eeb836127f2565b905061263961481e565b612642836130b9565b1561266057612659610ed6611a8e611999866127f2565b90506126a6565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c0576126bb81613c73565b6126ea565b60ff8216600214156126d5576126bb81613e8d565b60ff821660031415610f2a576126bb81613fb7565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278b61483e565b506040805180820190915281518152602082810190820152919050565b6127b061481e565b6127b98261411c565b6127c257600080fd5b60006127d18360200151614156565b60208085015160408051808201909152868152920190820152915050919050565b6127fa61483e565b612803826130b9565b61280c57600080fd5b6020820151600061281c826141b9565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285557508151602110155b61285e57600080fd5b600061286d8360200151614156565b905080836000015110156128c8576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ee57826020036101000a820491505b50949350505050565b600060606000806000805b61290b876130b9565b1561295d578261292d57612926612921886127f2565b6142ec565b9150612952565b826001141561294d57612942610eeb886127f2565b905060019350612952565b61295d565b826001019250612902565b836129a3576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ed57600080fd5b505af1158015612a01573d6000803e3d6000fd5b505050506040513d6020811015612a1757600080fd5b5051905080612a3c57612a2e600484846065614306565b965096505050505050612ad2565b6001600160a01b038316600090815260066020526040902054612a65908363ffffffff61305f16565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aee896130b9565b15612b785784612b0b57612b046129218a6127f2565b9350612b6d565b8460011415612b2757612b206129218a6127f2565b9250612b6d565b8460021415612b4757612b3c610eeb8a6127f2565b915060019550612b6d565b8460031415612b6857612b61612b5c8a6127f2565b614402565b9050612b6d565b612b78565b846001019450612ae5565b85612bbe576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b5051905080612c5957612c49600586856065614306565b9850985050505050505050612ad2565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9d908463ffffffff61305f16565b6001600160a01b0386166000908152600860205260409020558115612d8b576001600160a01b038516600090815260046020526040902054612ce5908463ffffffff612ed716565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d27908463ffffffff612ed716565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4b578181015183820152602001612e33565b50505050905090810190601f168015612e785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614446565b9392505050565b6000612ed083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df7565b60408051600560a21b8318601482015260348101909152606090612ed0816144ab565b60606124be612f4a83614501565b6144ab565b6060815160001415612f705750604080516000815260208101909152610df1565b606082600081518110612f7f57fe5b602002602001015190506000600190505b8351811015612fc057612fb682858381518110612fa957fe5b60200260200101516145e7565b9150600101612f90565b50612ed0612fd3825160c060ff16614664565b826145e7565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff25790505090506130158460ff16612f3c565b8160008151811061302257fe5b6020026020010181905250613036836144ab565b8160018151811061304357fe5b602002602001018190525061305781612f4f565b949350505050565b600082820183811015612ed0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c361483e565b505080518051602091820151919092015191011190565b80516060906130e857600080fd5b60006130f78360200151614156565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312e576020820181803683370190505b50905060008160200190506128ee84876020015101828561475c565b8051602080830191909120600e546000908152600a909252604082205480821461317957600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b0886130b9565b1561321957836131cd576131c6612921896127f2565b925061320e565b83600114156131e9576131e2612921896127f2565b915061320e565b8360021415613209576131fe610eeb896127f2565b90506001945061320e565b613219565b8360010193506131a7565b8461325f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613276826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bc5760ff8716156132e9576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613312908263ffffffff61305f16565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613354908263ffffffff61305f16565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354a565b60ff881661350e576001600160a01b0384166000908152600860205260409020546133ed908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344957600080fd5b505af115801561345d573d6000803e3d6000fd5b505050506040513d602081101561347357600080fd5b50516134bc576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354a565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613567886130b9565b156135d057836135845761357d612921896127f2565b92506135c5565b83600114156135a057613599612921896127f2565b91506135c5565b83600214156135c0576135b5610eeb896127f2565b9050600194506135c5565b6135d0565b83600101935061355e565b84613616576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362d826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ac5760ff8716156136a0576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136c9908263ffffffff612ed716565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370b908263ffffffff612ed716565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374442620a8c0063ffffffff61305f16565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354a565b60ff881661350e576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354a565b6000806000806000805b613835896130b9565b156138ba57846138525761384b6129218a6127f2565b93506138af565b846001141561386e576138676129218a6127f2565b92506138af565b846002141561388a576138836129218a6127f2565b91506138af565b84600314156138aa5761389f610eeb8a6127f2565b9050600195506138af565b6138ba565b84600101945061382c565b85613900576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613917826402540be40063ffffffff6147a716565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aea5760ff88161561398a576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c0908263ffffffff612ed716565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fc908261305f565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3542620a8c0063ffffffff61305f16565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7842620a8c0063ffffffff61305f16565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7b565b60ff891661350e576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbc5780518252601f199092019160209182019101613b9d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2a5780518252601f199092019160209182019101613c0b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c85866130b9565b15613cee5783613ca257613c9b612921876127f2565b9250613ce3565b8360011415613cbe57613cb7612921876127f2565b9150613ce3565b8360021415613cde57613cd3610eeb876127f2565b905060019450613ce3565b613cee565b836001019350613c7c565b84613d34576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4b826402540be40063ffffffff6147a716565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d89908263ffffffff61305f16565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de557600080fd5b505af1158015613df9573d6000803e3d6000fd5b505050506040513d6020811015613e0f57600080fd5b5051613e58576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613e9f866130b9565b15613f085783613ebc57613eb5612921876127f2565b9250613efd565b8360011415613ed857613ed1612921876127f2565b9150613efd565b8360021415613ef857613eed610eeb876127f2565b905060019450613efd565b613f08565b836001019350613e96565b84613f4e576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fca876130b9565b1561404f5784613fe757613fe0612921886127f2565b9350614044565b846001141561400357613ffc612921886127f2565b9250614044565b846002141561401f57614018612921886127f2565b9150614044565b846003141561403f57614034610eeb886127f2565b905060019550614044565b61404f565b846001019450613fc1565b85614095576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412d57506000610df1565b6020820151805160001a9060c082101561414c57600092505050610df1565b5060019392505050565b8051600090811a6080811015614170576000915050610df1565b60b881108061418b575060c0811080159061418b575060f881105b1561419a576001915050610df1565b60c08110156141ae5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d457600191506142e5565b60b88110156141e957607e19810191506142e5565b60c081101561426357600060b78203600186019550806020036101000a86510491506001810182019350508083101561425d576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e5565b60f88110156142785760be19810191506142e5565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e3576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fd57600080fd5b6124be82612840565b6000606061431f846402540be40063ffffffff612e8e16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433b57905050905061435e8760ff16612f3c565b8160008151811061436b57fe5b6020026020010181905250614388866001600160a01b0316612f19565b8160018151811061439557fe5b60200260200101819052506143a985612f3c565b816002815181106143b657fe5b60200260200101819052506143d08463ffffffff16612f3c565b816003815181106143dd57fe5b602002602001018190525060606143f382612f4f565b94989497509395505050505050565b805160009060011461441357600080fd5b6020820151805160001a9081158061442b5750608082145b1561443b57600092505050610df1565b600192505050610df1565b600081836144955760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4b578181015183820152602001612e33565b5060008385816144a157fe5b0495945050505050565b6060815160011480156144dd5750607f60f81b826000815181106144cb57fe5b01602001516001600160f81b03191611155b156144e9575080610df1565b6124be6144fb8351608060ff16614664565b836145e7565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661454557506018614569565b6fffffffffffffffffffffffffffffffff19841661456557506010614569565b5060005b602081101561459f5781818151811061457e57fe5b01602001516001600160f81b031916156145975761459f565b600101614569565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d4576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614618578051835260209283019201614600565b50855184518101855292509050808201602086015b8183101561464557805183526020928301920161462d565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b4576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470e5782840160f81b816000815181106146f057fe5b60200101906001600160f81b031916908160001a90535090506124be565b606061471985614501565b90508381510160370160f81b8260008151811061473257fe5b60200101906001600160f81b031916908160001a90535061475382826145e7565b95945050505050565b80614766576126ee565b5b60208110614786578251825260209283019290910190601f1901614767565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b6575060006124be565b828202828482816147c357fe5b0414612ed05760405162461bcd60e51b81526004018080602001828103825260218152602001806148e76021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483161483e565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a", + Code: feynman.ChapelStakingContract, }, { ContractAddr: common.HexToAddress(StakeHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bef578063fb50b31f1462000c14578063fc0c5ff11462000c39578063ff69ab611462000c5157600080fd5b8063e992aaf51462000b6c578063efdbf0e11462000b84578063f1f74d841462000bc0578063f1fad1041462000bd857600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000aff578063daacdb661462000b17578063dbda7fb31462000b2f578063e8f67c3b1462000b5457600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab5578063d7c2dfc81462000ada57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c69565b3480156200042057600080fd5b506200043862000432366004620093e3565b62000cfb565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d366004620093e3565b62001110565b348015620004a057600080fd5b50620003f4620004b236600462009447565b6200174e565b348015620004c557600080fd5b50620004dd620004d73660046200948c565b62001a7a565b6040516200044c91906200953f565b348015620004f957600080fd5b50620004386200050b36600462009635565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f462000581366004620093e3565b62001d53565b3480156200059457600080fd5b50620003f4620005a6366004620093e3565b62001dd5565b348015620005b957600080fd5b50620003f4620005cb366004620093e3565b62001fba565b348015620005de57600080fd5b5062000605620005f0366004620093e3565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f462000635366004620093e3565b62002197565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f4620006843660046200968a565b62002213565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c1366004620096c8565b62002830565b348015620006d457600080fd5b50620003f4620006e636600462009738565b62003602565b348015620006f957600080fd5b50620007116200070b36600462009758565b6200380a565b6040516200044c9493929190620097c1565b620003f4620007343660046200987d565b62003e9c565b3480156200074757600080fd5b506200046d62000759366004620093e3565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a366004620093e3565b620044e6565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e2366004620093e3565b62004590565b348015620007f557600080fd5b50620003f462000807366004620093e3565b620049a9565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004b7b565b3480156200084a57600080fd5b50620003f46200085c3660046200948c565b62004e92565b3480156200086f57600080fd5b50620003f462004efc565b3480156200088757600080fd5b506200043862000899366004620093e3565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f13660046200968a565b62004f94565b620003f46200090836600462009955565b6200504d565b3480156200091b57600080fd5b50620009336200092d366004620093e3565b620056d7565b6040516200044c919062009993565b3480156200094f57600080fd5b50620003f4620009613660046200968a565b620059c4565b3480156200097457600080fd5b50620003f46200098636600462009a10565b62005a31565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009ac9565b620068d0565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a0836600462009758565b62006a9d565b6040516200044c9392919062009b25565b34801562000a2c57600080fd5b50620003f462000a3e366004620093e3565b62006c79565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b366004620093e3565b62006f3b565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d61271081565b34801562000ac257600080fd5b50620003f462000ad436600462009b82565b6200736b565b34801562000ae757600080fd5b50620003f462000af936600462009c6b565b6200756f565b34801562000b0c57600080fd5b506200046d603b5481565b34801562000b2457600080fd5b506200046d60495481565b34801562000b3c57600080fd5b506200043862000b4e366004620093e3565b62007665565b34801562000b6157600080fd5b506200046d60355481565b34801562000b7957600080fd5b506200046d603a5481565b34801562000b9157600080fd5b506200046d62000ba336600462009635565b805160208183018101805160468252928201919093012091525481565b34801562000bcd57600080fd5b506200046d603e5481565b34801562000be557600080fd5b5062000652601181565b34801562000bfc57600080fd5b506200046d62000c0e3660046200968a565b62007a7c565b34801562000c2157600080fd5b50620003f462000c3336600462009a10565b62007aed565b34801562000c4657600080fd5b506200046d60395481565b34801562000c5e57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9c576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc657604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d669062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000d949062009cd1565b801562000de55780601f1062000db95761010080835404028352916020019162000de5565b820191906000526020600020905b81548152906001019060200180831162000dc757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e109062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3e9062009cd1565b801562000e8f5780601f1062000e635761010080835404028352916020019162000e8f565b820191906000526020600020905b81548152906001019060200180831162000e7157829003601f168201915b5050505050815260200160018201805462000eaa9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed89062009cd1565b801562000f295780601f1062000efd5761010080835404028352916020019162000f29565b820191906000526020600020905b81548152906001019060200180831162000f0b57829003601f168201915b5050505050815260200160028201805462000f449062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462000f729062009cd1565b801562000fc35780601f1062000f975761010080835404028352916020019162000fc3565b820191906000526020600020905b81548152906001019060200180831162000fa557829003601f168201915b5050505050815260200160038201805462000fde9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200100c9062009cd1565b80156200105d5780601f1062001031576101008083540402835291602001916200105d565b820191906000526020600020905b8154815290600101906020018083116200103f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e9575050509190925250509051949350505050565b33611000146200113c57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b59062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e39062009cd1565b8015620012345780601f10620012085761010080835404028352916020019162001234565b820191906000526020600020905b8154815290600101906020018083116200121657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125f9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d9062009cd1565b8015620012de5780601f10620012b257610100808354040283529160200191620012de565b820191906000526020600020905b815481529060010190602001808311620012c057829003601f168201915b50505050508152602001600182018054620012f99062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013279062009cd1565b8015620013785780601f106200134c5761010080835404028352916020019162001378565b820191906000526020600020905b8154815290600101906020018083116200135a57829003601f168201915b50505050508152602001600282018054620013939062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c19062009cd1565b8015620014125780601f10620013e65761010080835404028352916020019162001412565b820191906000526020600020905b815481529060010190602001808311620013f457829003601f168201915b505050505081526020016003820180546200142d9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200145b9062009cd1565b8015620014ac5780601f106200148057610100808354040283529160200191620014ac565b820191906000526020600020905b8154815290600101906020018083116200148e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001538575050509190925250505060408101519091506001600160a01b031615806200157557508060e001515b156200163257604051611002903490600081818185875af1925050503d8060008114620015bf576040519150601f19603f3d011682016040523d82523d6000602084013e620015c4565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016259060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168957600080fd5b505af11580156200169e573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016df91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017149190869060040162009d07565b600060405180830381600087803b1580156200172f57600080fd5b505af115801562001744573d6000803e3d6000fd5b5050505050505b50565b33611001146200177657604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff1615620017a157604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b792919062009d21565b908152604051908190036020019020546001600160a01b03169050620017df603f8262007d41565b620017fd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001825620151804262009d47565b604a546000828152604b602052604090205491925011620018595760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187a90849062009d6a565b909155505060405160469062001894908790879062009d21565b908152602001604051809103902054600014158015620018e55750426201518060468787604051620018c892919062009d21565b908152602001604051809103902054620018e3919062009d6a565b105b156200190457604051631898eb6b60e01b815260040160405180910390fd5b6000806200191485600262007d64565b91509150816200193757604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b0919062009d80565b9050620019be858362007dee565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019fe9392919062009db0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3c916001600160a01b0316908a9060040162009d07565b600060405180830381600087803b15801562001a5757600080fd5b505af115801562001a6c573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa457604051630f22c43960e41b8152612000600482015260240162001133565b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001af591879087908190840183828082843760009201919091525062007fb592505050565b915091508062001b185760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b3e575050604080516000815260208101909152905062001d42565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b6e9160040190815260200190565b6020604051808303816000875af115801562001b8e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bb4919062009ddf565b90508062001c5b5782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c1092919062009dff565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001d4295505050505050565b600062001c688462008118565b9050600081600381111562001c815762001c8162009d9a565b0362001ca3575050604080516000815260208101909152925062001d42915050565b83602001516001600160a01b031684600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a86606001518460405162001cf692919062009dff565b60405180910390a386868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092975062001d429650505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001d86576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e0057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001e325760405163b1d02c3d60e01b815260040160405180910390fd5b8062001e40603f8262007d41565b62001e5e5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001e9c57604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001eec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f12919062009d80565b101562001f32576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001f585760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff19169055604980546001919060009062001f7c90849062009e26565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff161562001fe557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020175760405163b1d02c3d60e01b815260040160405180910390fd5b3362002025603f8262007d41565b620020435760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200206b57604051636520611b60e11b815260040160405180910390fd5b6001600160a01b0382811660009081526043602052604090205416151580620020ac57506001600160a01b03821660009081526047602052604090205460ff165b15620020cb57604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620020f190620151809062009d6a565b11156200211157604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b03163314620021ca576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff16156200223e57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620022705760405163b1d02c3d60e01b815260040160405180910390fd5b816200227e603f8262007d41565b6200229c5760405163056e881160e01b815260040160405180910390fd5b81600003620022be57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023269062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620023549062009cd1565b8015620023a55780601f106200237957610100808354040283529160200191620023a5565b820191906000526020600020905b8154815290600101906020018083116200238757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620023d09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620023fe9062009cd1565b80156200244f5780601f1062002423576101008083540402835291602001916200244f565b820191906000526020600020905b8154815290600101906020018083116200243157829003601f168201915b505050505081526020016001820180546200246a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620024989062009cd1565b8015620024e95780601f10620024bd57610100808354040283529160200191620024e9565b820191906000526020600020905b815481529060010190602001808311620024cb57829003601f168201915b50505050508152602001600282018054620025049062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620025329062009cd1565b8015620025835780601f10620025575761010080835404028352916020019162002583565b820191906000526020600020905b8154815290600101906020018083116200256557829003601f168201915b505050505081526020016003820180546200259e9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cc9062009cd1565b80156200261d5780601f10620025f1576101008083540402835291602001916200261d565b820191906000526020600020905b815481529060010190602001808311620025ff57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620026a9575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af115801562002723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002749919062009d80565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b4082980287846040516200279a929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b031603620027c757620027c786620087ab565b6040808301519051633041949b60e01b815261200591633041949b91620027f49190879060040162009d07565b600060405180830381600087803b1580156200280f57600080fd5b505af115801562002824573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff16156200285b57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200288d5760405163b1d02c3d60e01b815260040160405180910390fd5b836200289b603f8262007d41565b620028b95760405163056e881160e01b815260040160405180910390fd5b83620028c7603f8262007d41565b620028e55760405163056e881160e01b815260040160405180910390fd5b6034805460ff1916600117905560008490036200291557604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029485760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b0380871660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620029b09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620029de9062009cd1565b801562002a2f5780601f1062002a035761010080835404028352916020019162002a2f565b820191906000526020600020905b81548152906001019060200180831162002a1157829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002a5a9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002a889062009cd1565b801562002ad95780601f1062002aad5761010080835404028352916020019162002ad9565b820191906000526020600020905b81548152906001019060200180831162002abb57829003601f168201915b5050505050815260200160018201805462002af49062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002b229062009cd1565b801562002b735780601f1062002b475761010080835404028352916020019162002b73565b820191906000526020600020905b81548152906001019060200180831162002b5557829003601f168201915b5050505050815260200160028201805462002b8e9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbc9062009cd1565b801562002c0d5780601f1062002be15761010080835404028352916020019162002c0d565b820191906000526020600020905b81548152906001019060200180831162002bef57829003601f168201915b5050505050815260200160038201805462002c289062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002c569062009cd1565b801562002ca75780601f1062002c7b5761010080835404028352916020019162002ca7565b820191906000526020600020905b81548152906001019060200180831162002c8957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002d3357505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002dbe9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002dec9062009cd1565b801562002e3d5780601f1062002e115761010080835404028352916020019162002e3d565b820191906000526020600020905b81548152906001019060200180831162002e1f57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002e689062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002e969062009cd1565b801562002ee75780601f1062002ebb5761010080835404028352916020019162002ee7565b820191906000526020600020905b81548152906001019060200180831162002ec957829003601f168201915b5050505050815260200160018201805462002f029062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002f309062009cd1565b801562002f815780601f1062002f555761010080835404028352916020019162002f81565b820191906000526020600020905b81548152906001019060200180831162002f6357829003601f168201915b5050505050815260200160028201805462002f9c9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462002fca9062009cd1565b80156200301b5780601f1062002fef576101008083540402835291602001916200301b565b820191906000526020600020905b81548152906001019060200180831162002ffd57829003601f168201915b50505050508152602001600382018054620030369062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620030649062009cd1565b8015620030b55780601f106200308957610100808354040283529160200191620030b5565b820191906000526020600020905b8154815290600101906020018083116200309757829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031415750505050508152505090508060e001518015620031845750876001600160a01b0316836001600160a01b031614155b15620031a357604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af1158015620031fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003220919062009d80565b9050603754811015620032465760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b0316148015620032db57506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa158015620032b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032d9919062009d80565b105b15620032fa576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a54836200330f919062009e3c565b6200331b919062009d47565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d806000811462003370576040519150601f19603f3d011682016040523d82523d6000602084013e62003375565b606091505b505090508062003398576040516312171d8360e31b815260040160405180910390fd5b620033a4828462009e26565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af1158015620033fa573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062003421919062009d80565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003486939291909283526020830191909152604082015260600190565b60405180910390a4604080516002808252606082018352600092602083019080368337019050509050866040015181600081518110620034ca57620034ca62009e56565b60200260200101906001600160a01b031690816001600160a01b03168152505085604001518160018151811062003505576200350562009e56565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035469084908c9060040162009e6c565b600060405180830381600087803b1580156200356157600080fd5b505af115801562003576573d6000803e3d6000fd5b505050508a15620035e8576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b8152600401620035b392919062009d07565b600060405180830381600087803b158015620035ce57600080fd5b505af1158015620035e3573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff16156200362d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200365f5760405163b1d02c3d60e01b815260040160405180910390fd5b336200366d603f8262007d41565b6200368b5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620036b190620151809062009d6a565b1115620036d157604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b909104811690851611156200370b5760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b03908116908616101562003749576009820154620037439086906001600160401b031662009e98565b62003763565b600982015462003763906001600160401b03168662009e98565b60098301546001600160401b039182169250600160801b9004168111156200379e5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b606080606060006200381d603f620088d1565b90508086101562003e9357841562003836578462003838565b805b945060008562003849888462009e26565b1162003861576200385b878362009e26565b62003863565b855b9050806001600160401b0381111562003880576200388062009554565b604051908082528060200260200182016040528015620038aa578160200160208202803683370190505b509450806001600160401b03811115620038c857620038c862009554565b604051908082528060200260200182016040528015620038f2578160200160208202803683370190505b509350806001600160401b0381111562003910576200391062009554565b6040519080825280602002602001820160405280156200394557816020015b60608152602001906001900390816200392f5790505b50925060005b8181101562003e905760006200396f62003966838b62009d6a565b603f90620088dc565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805494955091939092916080840191620039dc9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003a0a9062009cd1565b801562003a5b5780601f1062003a2f5761010080835404028352916020019162003a5b565b820191906000526020600020905b81548152906001019060200180831162003a3d57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003a869062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003ab49062009cd1565b801562003b055780601f1062003ad95761010080835404028352916020019162003b05565b820191906000526020600020905b81548152906001019060200180831162003ae757829003601f168201915b5050505050815260200160018201805462003b209062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003b4e9062009cd1565b801562003b9f5780601f1062003b735761010080835404028352916020019162003b9f565b820191906000526020600020905b81548152906001019060200180831162003b8157829003601f168201915b5050505050815260200160028201805462003bba9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003be89062009cd1565b801562003c395780601f1062003c0d5761010080835404028352916020019162003c39565b820191906000526020600020905b81548152906001019060200180831162003c1b57829003601f168201915b5050505050815260200160038201805462003c549062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462003c829062009cd1565b801562003cd35780601f1062003ca75761010080835404028352916020019162003cd3565b820191906000526020600020905b81548152906001019060200180831162003cb557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003d5f575050505050815250509050806000015188848151811062003d985762003d9862009e56565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003e315780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e05573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e2b919062009d80565b62003e34565b60005b87848151811062003e495762003e4962009e56565b602002602001018181525050806080015186848151811062003e6f5762003e6f62009e56565b602002602001018190525050508062003e889062009ebb565b90506200394b565b50505b92959194509250565b60005462010000900460ff161562003ec757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003ef95760405163b1d02c3d60e01b815260040160405180910390fd5b3362003f07603f8262007d41565b1562003f2657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038881166000908152604360205260409020541615158062003f6757506001600160a01b03881660009081526047602052604090205460ff165b1562003f8657604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b03166045888860405162003fa592919062009d21565b908152604051908190036020019020546001600160a01b031614158062003fef57506048878760405162003fdb92919062009d21565b9081526040519081900360200190205460ff165b156200400e576040516311fdb94760e01b815260040160405180910390fd5b60006200401c838062009ed7565b6040516020016200402f92919062009d21565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620040795760405163c0bf414360e01b815260040160405180910390fd5b60006200408f670de0b6b3a76400003462009e26565b9050603654811015620040b5576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a16620040dd57604051636520611b60e11b815260040160405180910390fd5b611388620040f2604087016020880162009738565b6001600160401b0316118062004138575062004115604086016020870162009738565b6001600160401b03166200412d602087018762009738565b6001600160401b0316115b8062004177575062004151604086016020870162009738565b6001600160401b03166200416c606087016040880162009738565b6001600160401b0316115b15620041965760405163dc81db8560e01b815260040160405180910390fd5b620041e1620041a6858062009ed7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250620088ea92505050565b620041ff57604051635dba5ad760e01b815260040160405180910390fd5b6200420e838a8a8a8a62008a8c565b6200422c57604051631647e3cb60e11b815260040160405180910390fd5b60006200427a846200423f878062009ed7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008bbc92505050565b905062004289603f8562008cbd565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043098b8d8362009f7f565b5085600582016200431b82826200a047565b50879050600982016200432f82826200a180565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b031916928816929092179091555185906045906200437d908e908e9062009d21565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e604051620044009291906200a250565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b757833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b757833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b90620044a4908590899060040162009d07565b600060405180830381600087803b158015620044bf57600080fd5b505af1158015620044d4573d6000803e3d6000fd5b50505050505050505050505050505050565b60408051606081018252600080825260208201819052918101919091528162004511603f8262007d41565b6200452f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620045fd9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200462b9062009cd1565b80156200467c5780601f1062004650576101008083540402835291602001916200467c565b820191906000526020600020905b8154815290600101906020018083116200465e57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620046a79062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620046d59062009cd1565b8015620047265780601f10620046fa5761010080835404028352916020019162004726565b820191906000526020600020905b8154815290600101906020018083116200470857829003601f168201915b50505050508152602001600182018054620047419062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200476f9062009cd1565b8015620047c05780601f106200479457610100808354040283529160200191620047c0565b820191906000526020600020905b815481529060010190602001808311620047a257829003601f168201915b50505050508152602001600282018054620047db9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620048099062009cd1565b80156200485a5780601f106200482e576101008083540402835291602001916200485a565b820191906000526020600020905b8154815290600101906020018083116200483c57829003601f168201915b50505050508152602001600382018054620048759062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a39062009cd1565b8015620048f45780601f10620048c857610100808354040283529160200191620048f4565b820191906000526020600020905b815481529060010190602001808311620048d657829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620049805750505091909252505050608001519392505050565b3361100114620049d157604051630f22c43960e41b8152611001600482015260240162001133565b6001600160a01b0380821660009081526043602052604090205416620049f9603f8262007d41565b62004a175760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004a7a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004aa0919062009d80565b90506000603d544262004ab4919062009d6a565b905062004ac2838262007dee565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b029392919062009db0565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004b40916001600160a01b031690889060040162009d07565b600060405180830381600087803b15801562004b5b57600080fd5b505af115801562004b70573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004b9c5750600054600160ff909116105b8062004bb85750303b15801562004bb8575060005460ff166001145b62004c1d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001133565b6000805460ff19166001179055801562004c41576000805461ff0019166101001790555b33411462004c625760405163022d8c9560e31b815260040160405180910390fd5b3a1562004c82576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755600960385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562069780603e55604a5560408051610220810190915261020080825260609182916200b557602083013980602001905181019062004d1391906200a28c565b915060405180610360016040528061034081526020016200b777610340913980602001905181019062004d4791906200a330565b905060005b825181101562004db65760016047600085848151811062004d715762004d7162009e56565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004dae8162009ebb565b905062004d4c565b5060005b815181101562004e27576001604883838151811062004ddd5762004ddd62009e56565b602002602001015160405162004df491906200a42d565b908152604051908190036020019020805491151560ff1990921691909117905562004e1f8162009ebb565b905062004dba565b5062004e477330151da466ec8ab345bef3d6983023e050fb067362008cd4565b505080156200174b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004eba57604051630f22c43960e41b8152612000600482015260240162001133565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004eef939291906200a44b565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004f2f576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004f5a57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b600062004fa3603f8462007d41565b62004fc15760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa1580156200501e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062005044919062009d80565b90505b92915050565b60005462010000900460ff16156200507857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620050aa5760405163b1d02c3d60e01b815260040160405180910390fd5b81620050b8603f8262007d41565b620050d65760405163056e881160e01b815260040160405180910390fd5b6037543490811015620050fc5760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051649062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620051929062009cd1565b8015620051e35780601f10620051b757610100808354040283529160200191620051e3565b820191906000526020600020905b815481529060010190602001808311620051c557829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200520e9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200523c9062009cd1565b80156200528d5780601f1062005261576101008083540402835291602001916200528d565b820191906000526020600020905b8154815290600101906020018083116200526f57829003601f168201915b50505050508152602001600182018054620052a89062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d69062009cd1565b8015620053275780601f10620052fb5761010080835404028352916020019162005327565b820191906000526020600020905b8154815290600101906020018083116200530957829003601f168201915b50505050508152602001600282018054620053429062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620053709062009cd1565b8015620053c15780601f106200539557610100808354040283529160200191620053c1565b820191906000526020600020905b815481529060010190602001808311620053a357829003601f168201915b50505050508152602001600382018054620053dc9062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200540a9062009cd1565b80156200545b5780601f106200542f576101008083540402835291602001916200545b565b820191906000526020600020905b8154815290600101906020018083116200543d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620054e75750505050508152505090508060e0015180156200552a5750856001600160a01b0316826001600160a01b031614155b156200554957604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af11580156200559a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620055c1919062009d80565b9050826001600160a01b0316876001600160a01b03166000805160206200b757833981519152838760405162005601929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056369190879060040162009d07565b600060405180830381600087803b1580156200565157600080fd5b505af115801562005666573d6000803e3d6000fd5b50505050851562001744576040516372f6ad8f60e11b81526120059063e5ed5b1e906200569a9086908b9060040162009d07565b600060405180830381600087803b158015620056b557600080fd5b505af1158015620056ca573d6000803e3d6000fd5b5050505050505050505050565b620057036040518060800160405280606081526020016060815260200160608152602001606081525090565b8162005711603f8262007d41565b6200572f5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620057669062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620057949062009cd1565b8015620057e55780601f10620057b957610100808354040283529160200191620057e5565b820191906000526020600020905b815481529060010190602001808311620057c757829003601f168201915b50505050508152602001600182018054620058009062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200582e9062009cd1565b80156200587f5780601f1062005853576101008083540402835291602001916200587f565b820191906000526020600020905b8154815290600101906020018083116200586157829003601f168201915b505050505081526020016002820180546200589a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620058c89062009cd1565b8015620059195780601f10620058ed5761010080835404028352916020019162005919565b820191906000526020600020905b815481529060010190602001808311620058fb57829003601f168201915b50505050508152602001600382018054620059349062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620059629062009cd1565b8015620059b35780601f106200598757610100808354040283529160200191620059b3565b820191906000526020600020905b8154815290600101906020018083116200599557829003601f168201915b505050505081525050915050919050565b60005462010000900460ff1615620059ef57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005a215760405163b1d02c3d60e01b815260040160405180910390fd5b62005a2d828262008d6d565b5050565b336110071462005a5957604051630f22c43960e41b8152611007600482015260240162001133565b62005ac66040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005b81576020811462005af85783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005b3b91858580838501838280828437600092019190915250929392505062008ed69050565b90506108fc81108062005b4f575061271081115b1562005b785784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6035556200688b565b62005bf26040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005cbc576020811462005c245783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005c6791858580838501838280828437600092019190915250929392505062008ed69050565b9050683635c9adc5dea0000081108062005c8a575069152d02c7e14af680000081115b1562005cb35784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6036556200688b565b62005d2f604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005df6576020811462005d615783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005da491858580838501838280828437600092019190915250929392505062008ed69050565b905067016345785d8a000081108062005dc45750678ac7230489e8000081115b1562005ded5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6037556200688b565b62005e67604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562005f1f576020811462005e995783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005edc91858580838501838280828437600092019190915250929392505062008ed69050565b905080158062005eed57506101f481115b1562005f165784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6038556200688b565b62005f886040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b1562006045576020811462005fba5783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f840181900481028201810190925282815260009162005ffd91858580838501838280828437600092019190915250929392505062008ed69050565b90506203f48081108062006013575062278d0081115b156200603c5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b6039556200688b565b620060b360405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620061605760208114620060e55783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200612891858580838501838280828437600092019190915250929392505062008ed69050565b90506064811115620061575784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603a556200688b565b620061d060405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620062915760208114620062025783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200624591858580838501838280828437600092019190915250929392505062008ed69050565b9050674563918244f400008110806200625f5750603c5481115b15620062885784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603b556200688b565b620062ff6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620063c25760208114620063315783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200637491858580838501838280828437600092019190915250929392505062008ed69050565b905068056bc75e2d63100000811080620063905750603b548111155b15620063b95784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603c556200688b565b6200642f6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620064ec5760208114620064615783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f8401819004810282018101909252828152600091620064a491858580838501838280828437600092019190915250929392505062008ed69050565b90506202a300811080620064ba5750603e548110155b15620064e35784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603d556200688b565b620065576040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620066145760208114620065895783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f8401819004810282018101909252828152600091620065cc91858580838501838280828437600092019190915250929392505062008ed69050565b9050620d2f00811080620065e25750603d548111155b156200660b5784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b603e556200688b565b6200668e6040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b156200673a5760208114620066c05783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b604080516020601f84018190048102820181019092528281526000916200670391858580838501838280828437600092019190915250929392505062008ed69050565b905080600003620067315784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b604a556200688b565b620067a86040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008e799050565b15620068685760148114620067da5783838383604051630a5a604160e01b81526004016200113394939291906200a46a565b600062006822601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b90506001600160a01b038116620068565784848484604051630a5a604160e01b81526004016200113394939291906200a46a565b620068618162008edb565b506200688b565b838383836040516325ee20d560e21b81526004016200113394939291906200a46a565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051620068c294939291906200a46a565b60405180910390a150505050565b60005462010000900460ff1615620068fb57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200692d5760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b038111156200694b576200694b62009554565b60405190808252806020026020018201604052801562006975578160200160208202803683370190505b5090506000805b8381101562006a7357620069be8787838181106200699e576200699e62009e56565b9050602002016020810190620069b59190620093e3565b603f9062007d41565b620069dc5760405163056e881160e01b815260040160405180910390fd5b60416000888884818110620069f557620069f562009e56565b905060200201602081019062006a0c9190620093e3565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006a485762006a4862009e56565b6001600160a01b039092166020928302919091019091015262006a6b8162009ebb565b90506200697c565b50604051634484077560e01b815261200590634484077590620027f4908590889060040162009e6c565b606080600062006aae603f620088d1565b90508085101562006c7257831562006ac7578362006ac9565b805b935060008462006ada878462009e26565b1162006af25762006aec868362009e26565b62006af4565b845b9050806001600160401b0381111562006b115762006b1162009554565b60405190808252806020026020018201604052801562006b3b578160200160208202803683370190505b509350806001600160401b0381111562006b595762006b5962009554565b60405190808252806020026020018201604052801562006b83578160200160208202803683370190505b50925060005b8181101562006c6f5762006ba262003966828962009d6a565b85828151811062006bb75762006bb762009e56565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006bf05762006bf062009e56565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006c445762006c4462009e56565b6001600160a01b039092166020928302919091019091015262006c678162009ebb565b905062006b89565b50505b9250925092565b336110011462006ca157604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff161562006ccc57604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006cf4603f8262007d41565b62006d125760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006d3a620151804262009d47565b604a546000828152604b60205260409020549192501162006d6e5760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006d8f90849062009d6a565b90915550506001600160a01b0384166000908152604460205260409020541580159062006de457506001600160a01b038416600090815260446020526040902054429062006de290620151809062009d6a565b105b1562006e03576040516330abb81d60e21b815260040160405180910390fd5b60008062006e1385600062007d64565b915091508162006e3657604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006e89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006eaf919062009d80565b905062006ebd858362007dee565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006efd9392919062009db0565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b916200569a916001600160a01b0316908a9060040162009d07565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384938493849390929160808401919062006fac9062009cd1565b80601f016020809104026020016040519081016040528092919081815260200182805462006fda9062009cd1565b80156200702b5780601f1062006fff576101008083540402835291602001916200702b565b820191906000526020600020905b8154815290600101906020018083116200700d57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070569062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620070849062009cd1565b8015620070d55780601f10620070a957610100808354040283529160200191620070d5565b820191906000526020600020905b815481529060010190602001808311620070b757829003601f168201915b50505050508152602001600182018054620070f09062009cd1565b80601f01602080910402602001604051908101604052809291908181526020018280546200711e9062009cd1565b80156200716f5780601f1062007143576101008083540402835291602001916200716f565b820191906000526020600020905b8154815290600101906020018083116200715157829003601f168201915b505050505081526020016002820180546200718a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620071b89062009cd1565b8015620072095780601f10620071dd5761010080835404028352916020019162007209565b820191906000526020600020905b815481529060010190602001808311620071eb57829003601f168201915b50505050508152602001600382018054620072249062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620072529062009cd1565b8015620072a35780601f106200727757610100808354040283529160200191620072a3565b820191906000526020600020905b8154815290600101906020018083116200728557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b8154815260200190600101908083116200732f5750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200739657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620073c85760405163b1d02c3d60e01b815260040160405180910390fd5b33620073d6603f8262007d41565b620073f45760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200741a90620151809062009d6a565b11156200743a57604051631f92cdbd60e11b815260040160405180910390fd5b6005810180546200744b9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620074799062009cd1565b8015620074ca5780601f106200749e57610100808354040283529160200191620074ca565b820191906000526020600020905b815481529060010190602001808311620074ac57829003601f168201915b5050508287525085916005840191508190620074e790826200a495565b5060208201516001820190620074fe90826200a495565b50604082015160028201906200751590826200a495565b50606082015160038201906200752c90826200a495565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200759a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620075cc5760405163b1d02c3d60e01b815260040160405180910390fd5b828114620075ed576040516341abc80160e01b815260040160405180910390fd5b60005b838110156200765e576200764b85858381811062007612576200761262009e56565b9050602002016020810190620076299190620093e3565b8484848181106200763e576200763e62009e56565b9050602002013562008d6d565b620076568162009ebb565b9050620075f0565b5050505050565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849390916080840191620076d09062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620076fe9062009cd1565b80156200774f5780601f1062007723576101008083540402835291602001916200774f565b820191906000526020600020905b8154815290600101906020018083116200773157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200777a9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620077a89062009cd1565b8015620077f95780601f10620077cd57610100808354040283529160200191620077f9565b820191906000526020600020905b815481529060010190602001808311620077db57829003601f168201915b50505050508152602001600182018054620078149062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620078429062009cd1565b8015620078935780601f10620078675761010080835404028352916020019162007893565b820191906000526020600020905b8154815290600101906020018083116200787557829003601f168201915b50505050508152602001600282018054620078ae9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620078dc9062009cd1565b80156200792d5780601f1062007901576101008083540402835291602001916200792d565b820191906000526020600020905b8154815290600101906020018083116200790f57829003601f168201915b50505050508152602001600382018054620079489062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620079769062009cd1565b8015620079c75780601f106200799b57610100808354040283529160200191620079c7565b820191906000526020600020905b815481529060010190602001808311620079a957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007a535750505091909252505050604001519392505050565b600062007a8b603f8462007d41565b62007aa95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd9060240162005000565b60005462010000900460ff161562007b1857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007b4a5760405163b1d02c3d60e01b815260040160405180910390fd5b3362007b58603f8262007d41565b62007b765760405163056e881160e01b815260040160405180910390fd5b3362007b86818787878762008a8c565b62007ba457604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007bc392919062009d21565b908152604051908190036020019020546001600160a01b031614158062007c0d57506048868660405162007bf992919062009d21565b9081526040519081900360200190205460ff165b1562007c2c576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007c5b90620151809062009d6a565b111562007c7b57604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007c9191906200a55d565b908152604051908190036020019020556004810162007cb287898362009f7f565b5042600c820155604051829060459062007cd0908a908a9062009d21565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007d30908a908a906200a250565b60405180910390a250505050505050565b6001600160a01b0381166000908152600183016020526040812054151562005044565b6000806000848460405160200162007d7e9291906200a5db565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007dbe5760008093509350505062007de7565b603e5462007dcd904262009d6a565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007e3557600080fd5b505af115801562007e4a573d6000803e3d6000fd5b505050506000600162007e5e603f620088d1565b62007e6a919062009e26565b604954108015915062007f285760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007ebe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007ee4919062009ddf565b62007f285760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007f3d57600b83018290555b600a83015460ff1662007fb057600a8301805460ff191660019081179091556049805460009062007f7090849062009d6a565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080279062008f47565b90506000805b620080388362008fba565b156200810b57806000036200806d576200805c620080568462008fe0565b62009044565b6001600160a01b03168452620080f8565b80600103620080995762008085620080568462008fe0565b6001600160a01b03166020850152620080f8565b80600203620080c557620080b1620080568462008fe0565b6001600160a01b03166040850152620080f8565b80600303620080f257620080e3620080dd8462008fe0565b6200905c565b606085015260019150620080f8565b6200810b565b620081038162009ebb565b90506200802d565b5091959194509092505050565b6000805462010000900460ff16156200814457604051631785c68160e01b815260040160405180910390fd5b6020808301516001600160a01b031660009081526001909152604090205460ff16806200817c575060208201516001600160a01b0316155b156200819b5760405163b1d02c3d60e01b815260040160405180910390fd5b8151620081ab90603f9062007d41565b620081b857506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082249062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620082529062009cd1565b8015620082a35780601f106200827757610100808354040283529160200191620082a3565b820191906000526020600020905b8154815290600101906020018083116200828557829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620082ce9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620082fc9062009cd1565b80156200834d5780601f1062008321576101008083540402835291602001916200834d565b820191906000526020600020905b8154815290600101906020018083116200832f57829003601f168201915b50505050508152602001600182018054620083689062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620083969062009cd1565b8015620083e75780601f10620083bb57610100808354040283529160200191620083e7565b820191906000526020600020905b815481529060010190602001808311620083c957829003601f168201915b50505050508152602001600282018054620084029062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620084309062009cd1565b8015620084815780601f10620084555761010080835404028352916020019162008481565b820191906000526020600020905b8154815290600101906020018083116200846357829003601f168201915b505050505081526020016003820180546200849c9062009cd1565b80601f0160208091040260200160405190810160405280929190818152602001828054620084ca9062009cd1565b80156200851b5780601f10620084ef576101008083540402835291602001916200851b565b820191906000526020600020905b815481529060010190602001808311620084fd57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620085a75750505050508152505090508060e001518015620085f2575082600001516001600160a01b031683602001516001600160a01b031614155b15620086015750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af11580156200865d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062008684919062009d80565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b757833981519152838760600151604051620086d0929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008733929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b926200876d9290919060040162009d07565b600060405180830381600087803b1580156200878857600080fd5b505af11580156200879d573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff1615620087d5575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200884b919062009d80565b101562005a2d576200886d81603d544262008867919062009d6a565b62007dee565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b158015620088b457600080fd5b505af1158015620088c9573d6000803e3d6000fd5b505050505050565b600062005047825490565b600062005044838362009134565b60008082905060038151108062008902575060098151115b15620089115750600092915050565b60418160008151811062008929576200892962009e56565b016020015160f81c10806200895b5750605a8160008151811062008951576200895162009e56565b016020015160f81c115b156200896a5750600092915050565b60015b815181101562008a825760308282815181106200898e576200898e62009e56565b016020015160f81c1080620089bf57506039828281518110620089b557620089b562009e56565b016020015160f81c115b801562008a0f57506041828281518110620089de57620089de62009e56565b016020015160f81c108062008a0f5750605a82828151811062008a055762008a0562009e56565b016020015160f81c115b801562008a5f5750606182828151811062008a2e5762008a2e62009e56565b016020015160f81c108062008a5f5750607a82828151811062008a555762008a5562009e56565b016020015160f81c115b1562008a6f575060009392505050565b62008a7a8162009ebb565b90506200896d565b5060019392505050565b600060308414158062008aa0575060608214155b1562008aaf5750600062008bb3565b60008686864660405160200162008aca94939291906200a619565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b249594939291906200a646565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008b6e57600080fd5b5060008160008151811062008b875762008b8762009e56565b016020015160f81c90506001811462008ba95760009550505050505062008bb3565b6001955050505050505b95945050505050565b60008061200361dead60405162008bd390620093bf565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c16573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008c4a9291906200a67e565b6000604051808303818588803b15801562008c6457600080fd5b505af115801562008c79573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b600062005044836001600160a01b03841662009161565b600054610100900460ff1662008d415760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001133565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008d7b603f8262007d41565b62008d995760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008dfd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e23919062009d80565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008e6b91815260200190565b60405180910390a350505050565b60008160405160200162008e8e91906200a42d565b604051602081830303815290604052805190602001208360405160200162008eb791906200a42d565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008f7582620091b3565b62008f7f57600080fd5b600062008f908360200151620091e6565b836020015162008fa1919062009d6a565b6040805180820190915293845260208401525090919050565b8051805160208201516000929162008fd29162009d6a565b836020015110915050919050565b604080518082019091526000808252602082015262008fff8262008fba565b6200900957600080fd5b602082015160006200901b8262009275565b905062009029818362009d6a565b60209485015260408051808201909152908152928301525090565b80516000906015146200905657600080fd5b62005047825b8051600090158015906200907257508151602110155b6200907c57600080fd5b60006200908d8360200151620091e6565b90508083600001511015620090e55760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001133565b8251600090620090f790839062009e26565b90506000808386602001516200910e919062009d6a565b90508051915060208310156200912b57826020036101000a820491505b50949350505050565b60008260000182815481106200914e576200914e62009e56565b9060005260206000200154905092915050565b6000818152600183016020526040812054620091aa5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562005047565b50600062005047565b80516000908103620091c757506000919050565b6020820151805160001a9060c082101562008a82575060009392505050565b8051600090811a6080811015620092005750600092915050565b60b88110806200921d575060c081108015906200921d575060f881105b156200922c5750600192915050565b60c0811015620092675762009244600160b86200a6a4565b620092539060ff168262009e26565b6200926090600162009d6a565b9392505050565b62009244600160f86200a6a4565b80516000908190811a6080811015620092925760019150620093b8565b60b8811015620092be57620092a960808262009e26565b620092b690600162009d6a565b9150620093b8565b60c08110156200933757600060b78203600186019550806020036101000a865104915060018101820193505080831015620093305760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b50620093b8565b60f88110156200934e57620092a960c08262009e26565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620093b65760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b505b5092915050565b610e96806200a6c183390190565b6001600160a01b03811681146200174b57600080fd5b600060208284031215620093f657600080fd5b81356200926081620093cd565b60008083601f8401126200941657600080fd5b5081356001600160401b038111156200942e57600080fd5b60208301915083602082850101111562007de757600080fd5b600080602083850312156200945b57600080fd5b82356001600160401b038111156200947257600080fd5b620094808582860162009403565b90969095509350505050565b600080600060408486031215620094a257600080fd5b833560ff81168114620094b457600080fd5b925060208401356001600160401b03811115620094d057600080fd5b620094de8682870162009403565b9497909650939450505050565b60005b8381101562009508578181015183820152602001620094ee565b50506000910152565b600081518084526200952b816020860160208601620094eb565b601f01601f19169290920160200192915050565b60208152600062005044602083018462009511565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200958f576200958f62009554565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620095c057620095c062009554565b604052919050565b60006001600160401b03821115620095e457620095e462009554565b50601f01601f191660200190565b6000620096096200960384620095c8565b62009595565b90508281528383830111156200961e57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156200964857600080fd5b81356001600160401b038111156200965f57600080fd5b8201601f810184136200967157600080fd5b6200968284823560208401620095f2565b949350505050565b600080604083850312156200969e57600080fd5b8235620096ab81620093cd565b946020939093013593505050565b80151581146200174b57600080fd5b60008060008060808587031215620096df57600080fd5b8435620096ec81620093cd565b93506020850135620096fe81620093cd565b92506040850135915060608501356200971781620096b9565b939692955090935050565b6001600160401b03811681146200174b57600080fd5b6000602082840312156200974b57600080fd5b8135620092608162009722565b600080604083850312156200976c57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620097b65781516001600160a01b0316875295820195908201906001016200978f565b509495945050505050565b608081526000620097d660808301876200977b565b82810360208481019190915286518083528782019282019060005b818110156200980f57845183529383019391830191600101620097f1565b5050848103604086015286518082528282019350600581901b8201830183890160005b838110156200986457601f198584030187526200985183835162009511565b9686019692509085019060010162009832565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e08112156200989a57600080fd5b8835620098a781620093cd565b975060208901356001600160401b0380821115620098c457600080fd5b620098d28c838d0162009403565b909950975060408b0135915080821115620098ec57600080fd5b620098fa8c838d0162009403565b90975095508591506060605f19840112156200991557600080fd5b60608b01945060c08b01359250808311156200993057600080fd5b505088016080818b0312156200994557600080fd5b8091505092959891949750929550565b600080604083850312156200996957600080fd5b82356200997681620093cd565b915060208301356200998881620096b9565b809150509250929050565b602081526000825160806020840152620099b160a084018262009511565b90506020840151601f1980858403016040860152620099d1838362009511565b92506040860151915080858403016060860152620099f0838362009511565b925060608601519150808584030160808601525062008bb3828262009511565b6000806000806040858703121562009a2757600080fd5b84356001600160401b038082111562009a3f57600080fd5b62009a4d8883890162009403565b9096509450602087013591508082111562009a6757600080fd5b5062009a768782880162009403565b95989497509550505050565b60008083601f84011262009a9557600080fd5b5081356001600160401b0381111562009aad57600080fd5b6020830191508360208260051b850101111562007de757600080fd5b60008060006040848603121562009adf57600080fd5b83356001600160401b0381111562009af657600080fd5b62009b048682870162009a82565b909450925050602084013562009b1a81620093cd565b809150509250925092565b60608152600062009b3a60608301866200977b565b828103602084015262009b4e81866200977b565b915050826040830152949350505050565b600082601f83011262009b7157600080fd5b6200504483833560208501620095f2565b60006020828403121562009b9557600080fd5b81356001600160401b038082111562009bad57600080fd5b908301906080828603121562009bc257600080fd5b62009bcc6200956a565b82358281111562009bdc57600080fd5b62009bea8782860162009b5f565b82525060208301358281111562009c0057600080fd5b62009c0e8782860162009b5f565b60208301525060408301358281111562009c2757600080fd5b62009c358782860162009b5f565b60408301525060608301358281111562009c4e57600080fd5b62009c5c8782860162009b5f565b60608301525095945050505050565b6000806000806040858703121562009c8257600080fd5b84356001600160401b038082111562009c9a57600080fd5b62009ca88883890162009a82565b9096509450602087013591508082111562009cc257600080fd5b5062009a768782880162009a82565b600181811c9082168062009ce657607f821691505b6020821081036200458a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009d6557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562005047576200504762009d31565b60006020828403121562009d9357600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009dd15762009dd162009d9a565b826040830152949350505050565b60006020828403121562009df257600080fd5b81516200926081620096b9565b828152604081016004831062009e195762009e1962009d9a565b8260208301529392505050565b8181038181111562005047576200504762009d31565b808202811582820484141762005047576200504762009d31565b634e487b7160e01b600052603260045260246000fd5b60408152600062009e8160408301856200977b565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620093b857620093b862009d31565b60006001820162009ed05762009ed062009d31565b5060010190565b6000808335601e1984360301811262009eef57600080fd5b8301803591506001600160401b0382111562009f0a57600080fd5b60200191503681900382131562007de757600080fd5b601f82111562007fb057600081815260208120601f850160051c8101602086101562009f495750805b601f850160051c820191505b81811015620088c95782815560010162009f55565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009f995762009f9962009554565b62009fb18362009faa835462009cd1565b8362009f20565b6000601f84116001811462009fe4576000851562009fcf5750838201355b62009fdb868262009f6a565b8455506200765e565b600083815260209020601f19861690835b828110156200a017578685013582556020948501946001909201910162009ff5565b50868210156200a0355760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a053828362009ed7565b6001600160401b038111156200a06d576200a06d62009554565b6200a085816200a07e855462009cd1565b8562009f20565b6000601f8211600181146200a0b857600083156200a0a35750838201355b6200a0af848262009f6a565b8655506200a115565b600085815260209020601f19841690835b828110156200a0eb57868501358255602094850194600190920191016200a0c9565b50848210156200a1095760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a128602083018362009ed7565b6200a13881836001860162009f7f565b50506200a149604083018362009ed7565b6200a15981836002860162009f7f565b50506200a16a606083018362009ed7565b6200a17a81836003860162009f7f565b50505050565b81356200a18d8162009722565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a1ba8162009722565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a1fa8162009722565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096826020830184866200a227565b60006001600160401b038211156200a282576200a28262009554565b5060051b60200190565b600060208083850312156200a2a057600080fd5b82516001600160401b038111156200a2b757600080fd5b8301601f810185136200a2c957600080fd5b80516200a2da62009603826200a266565b81815260059190911b820183019083810190878311156200a2fa57600080fd5b928401925b828410156200a3255783516200a31581620093cd565b825292840192908401906200a2ff565b979650505050505050565b600060208083850312156200a34457600080fd5b82516001600160401b03808211156200a35c57600080fd5b818501915085601f8301126200a37157600080fd5b81516200a38262009603826200a266565b81815260059190911b830184019084810190888311156200a3a257600080fd5b8585015b838110156200a420578051858111156200a3c05760008081fd5b8601603f81018b136200a3d35760008081fd5b8781015160406200a3e86200960383620095c8565b8281528d828486010111156200a3fe5760008081fd5b6200a40f838c8301848701620094eb565b86525050509186019186016200a3a6565b5098975050505050505050565b600082516200a441818460208701620094eb565b9190910192915050565b60ff8416815260406020820152600062008bb36040830184866200a227565b6040815260006200a4806040830186886200a227565b82810360208401526200a3258185876200a227565b81516001600160401b038111156200a4b1576200a4b162009554565b6200a4c9816200a4c2845462009cd1565b8462009f20565b602080601f8311600181146200a4fd57600084156200a4e85750858301515b6200a4f4858262009f6a565b865550620088c9565b600085815260208120601f198616915b828110156200a52e578886015182559484019460019091019084016200a50d565b50858210156200a54d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a56d8162009cd1565b600182811680156200a58857600181146200a59e576200a5cf565b60ff19841687528215158302870194506200a5cf565b8760005260208060002060005b858110156200a5c65781548a8201529084019082016200a5ab565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a605576200a60562009d9a565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a65a818460208b01620094eb565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096829083018462009511565b60ff828116828216039081111562005047576200504762009d3156fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000001284214b9b9c85549ab3d2b972df0deef66ac2c9000000000000000000000000a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0000000000000000000000000980a75ecd1309ea12fa2ed87a8744fbfc9b863d5000000000000000000000000b71b214cb885500844365e95cd9942c7276e7fd800000000000000000000000035552c16704d214347f29fa77f77da6d75d7c752000000000000000000000000f474cf03cceff28abc65c9cbae594f725c80e12d00000000000000000000000096c5d20b2a975c050e4220be276ace4892f4b41a00000000000000000000000047788386d0ed6c748e03a53160b4b30ed3748cc5000000000000000000000000bdfbc016c1bd481f5d8ca6f754f4b200a7ed66ce000000000000000000000000372e4887005ec21a5aff9ff62eda9e7713e3643700000000000000000000000055c968cf3430f3ba0534ef49ff4b3fbc9086c7ce000000000000000000000000136bd6343049c9690569db79dcd9208a57d342ad000000000000000000000000977ecef7de795cd248d77fd0d080ce3a35dec013000000000000000000000000b334ced91dff560bc9b5b3c30ae613bf335f181324d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000308e82934ca974fdcd97f3309de967d3c9c43fa711a8d673af5d75465844bf8969c8d1948d903748ac7b8b1720fa64e50c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b973c2d38487e58fd6e145491b110080fb14ac915a0411fc78f19e09a399ddee0d20c63a75d8f930f1694544ad2dc01b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003089037a9ace3b590165ea1c0c5ac72bf600b7c88c1e435f41932c1132aae1bfa0bb68e46b96ccb12c3415e4d82af717d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2750ec6dded3dcdc2f351782310b0eadc077db59abca0f0cd26776e2e7acb9f3bce40b1fa5221fd1561226c6263cc5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b742ad4855bae330426b823e742da31f816cc83bc16d69a9134be0cfb4a1d17ec34f1b5b32d5c20440b8536b1e88f0f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096c9b86c3400e529bfe184056e257c07940bb664636f689e8d2027c834681f8f878b73445261034e946bb2d901b4b87800000000000000000000000000000000a164736f6c6343000811000a", + Code: feynman.ChapelStakeHubContract, }, { ContractAddr: common.HexToAddress(StakeCreditContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a", + Code: feynman.MainnetStakeCreditContract, }, { ContractAddr: common.HexToAddress(GovernorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c8a565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca3565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615de9565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c8a565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615edf565b3480156105b157600080fd5b506105e36105c0366004615c8a565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f07565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160de565b611267565b34801561066b57600080fd5b5061052061067a36600461616d565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160de565b611378565b3480156106c157600080fd5b506105206106d0366004615c8a565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c8a565b61146b565b6040516104d59493929190616253565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa3660046162a0565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c8a565b611773565b6040516104d59190616304565b3480156107e857600080fd5b5061045c6107f7366004615c8a565b61177e565b34801561080857600080fd5b5061045c61081736600461616d565b6117a9565b34801561082857600080fd5b506104fe61083736600461632c565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160de565b61182a565b34801561089357600080fd5b506104fe6108a236600461616d565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616d565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616d565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b5061052061098936600461635c565b611960565b34801561099a57600080fd5b506105206109a9366004616388565b611989565b3480156109ba57600080fd5b506105206109c9366004615c8a565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c8a565b611a88565b3480156109fa57600080fd5b50610520610a0936600461640b565b611b10565b348015610a1a57600080fd5b50610520610a29366004616464565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eae565b348015610a6457600080fd5b50610a6d611f44565b6040516104d59796959493929190616504565b348015610a8c57600080fd5b50610a95611fe2565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616566565b612056565b348015610aec57600080fd5b5061052061206d565b348015610b0157600080fd5b5061045c610b1036600461616d565b61209a565b348015610b2157600080fd5b50610520610b30366004615c8a565b612122565b348015610b4157600080fd5b5061045c610b503660046165be565b6121be565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612903565b348015610b9457600080fd5b50610626610ba336600461661d565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c8a565b61290f565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166b0565b61291a565b348015610c0e57600080fd5b50610520610c1d3660046160de565b612a2a565b348015610c2e57600080fd5b5061045c610c3d3660046166f3565b612a64565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c36600461671c565b612aec565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c8a565b612b73565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d3636600461632c565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c8a565b612b96565b348015610e1257600080fd5b50610520610e213660046167bd565b612c1e565b348015610e3257600080fd5b5061045c610e41366004615c8a565b612c3f565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167e9565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c8a565b612cc7565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c8a565b612d56565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a612122565b60008c815261016360205260409020549098506001600160401b03169650610f308b61290f565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162ee565b1493506007816007811115610f9e57610f9e6162ee565b14925050509193959799509193959799565b6000610fbb82612d79565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd929190616851565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9e565b868686612dcb565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612de9915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b815260040161045390616861565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa929190616851565b604051809103902090505b806111c1610164612e52565b036111b557505b6111d181612ed1565b50565b606061016280546111e490616898565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616898565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168d2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168fe565b9150506112c6565b5061134985858585613042565b95945050505050565b6000610ef06001611361611fe2565b61136b9190616917565b65ffffffffffff16612cc7565b60008061138786868686612a2a565b9050600061139482611773565b905060048160078111156113aa576113aa6162ee565b14806113c7575060058160078111156113c5576113c56162ee565b145b6113e35760405162461bcd60e51b81526004016104539061693d565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613247565b61145482888888886132e8565b61146182888888886133ca565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616898565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616898565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616898565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616898565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613405565b979650505050505050565b6000610fbb82613428565b60008060008061178d85613575565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613806565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697e565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613405565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612de9915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169eb565b81548110611a0c57611a0c6168d2565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138d1565b61025e9061393a565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b815260040161045390616861565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae9929190616851565b604051809103902090505b80611b00610164612e52565b03611af457505b6111d1816139ed565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340592505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a30565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162ee565b1480611c1b57506000816007811115611c1957611c196162ee565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a2a565b3360009081526102c3602052604090208190559050611c7188888888613adb565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b43565b611dd4611db760036000616a14565b611dc5600362015180616a14565b68056bc75e2d63100000613b9a565b611ddc613bd1565b611de7612005613bf8565b611df2612006613c28565b611dfc600a613c58565b611e11611e0c6003610e10616a14565b613c88565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e667330151da466ec8ab345bef3d6983023e050fb0673613cb8565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611ee0576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0a57604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f645750609954155b611fa85760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fb0613d0b565b611fb8613d1a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa925050508015612049575060408051601f3d908101601f1916820190925261204691810190616a36565b60015b61195b57610ef043613d29565b6000612063848484613d90565b90505b9392505050565b61025e54600090156120925761208461025e613e07565b6001600160e01b0316905090565b5061025d5490565b6120a2610edb565b6001600160a01b0316336001600160a01b0316146120d25760405162461bcd60e51b815260040161045390616861565b306120db610edb565b6001600160a01b03161461211957600080366040516120fb929190616851565b604051809103902090505b80612112610164612e52565b0361210657505b6111d181613e37565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015612181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a59190616a5e565b9050806001146121b55780612066565b60009392505050565b33611007146121e457604051630f22c43960e41b81526110076004820152602401610453565b61224a6040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b156122ff57602081146122785783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916122b9918585808385018382808284376000920191909152509293925050613efb9050565b90508015806122ca57506201518081115b156122f05784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f9816139ed565b506128c0565b6123666040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561241557602081146123945783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916123d5918585808385018382808284376000920191909152509293925050613efb9050565b90508015806123e6575062278d0081115b1561240c5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613f00565b612481604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561253757602081146124af5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f84018190048102820181019092528281526000916124f0918585808385018382808284376000920191909152509293925050613efb9050565b9050801580612508575069021e19e0c9bab240000081115b1561252e5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613fa3565b6125a16040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561265057602081146125cf5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b604080516020601f8401819004810282018101909252828152600091612610918585808385018382808284376000920191909152509293925050613efb9050565b905060058110806126215750601481115b156126475784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981612ed1565b6126bf604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561278557600881146126ed5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b6000612733600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efb9050565b90506001600160401b038116158061275657506202a300816001600160401b0316115b1561277c5784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981613fe6565b6127f16040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ea29050565b1561289f576014811461281f5783838383604051630a5a604160e01b81526004016104539493929190616aa0565b6000612865601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613efb9050565b90506001600160a01b0381166128965784848484604051630a5a604160e01b81526004016104539493929190616aa0565b6122f981614052565b838383836040516325ee20d560e21b81526004016104539493929190616aa0565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f59493929190616aa0565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140be565b612922610edb565b6001600160a01b0316336001600160a01b0316146129525760405162461bcd60e51b815260040161045390616861565b3061295b610edb565b6001600160a01b031614612999576000803660405161297b929190616851565b604051809103902090505b80612992610164612e52565b0361298657505b600080856001600160a01b03168585856040516129b7929190616851565b60006040518083038185875af1925050503d80600081146129f4576040519150601f19603f3d011682016040523d82523d6000602084013e6129f9565b606091505b5091509150612a218282604051806060016040528060288152602001616efd602891396140fc565b50505050505050565b600084848484604051602001612a439493929190616ac7565b60408051601f19818403018152919052805160209091012095945050505050565b612a6c610edb565b6001600160a01b0316336001600160a01b031614612a9c5760405162461bcd60e51b815260040161045390616861565b30612aa5610edb565b6001600160a01b031614612ae35760008036604051612ac5929190616851565b604051809103902090505b80612adc610164612e52565b03612ad057505b6111d181613fe6565b60008251845114612b505760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5e338787878787614115565b611b588686612b6d87876141d3565b85611b62565b600080600080612b8285613575565b93509350935093506117a184848484611267565b612b9e610edb565b6001600160a01b0316336001600160a01b031614612bce5760405162461bcd60e51b815260040161045390616861565b30612bd7610edb565b6001600160a01b031614612c155760008036604051612bf7929190616851565b604051809103902090505b80612c0e610164612e52565b03612c0257505b6111d181613f00565b60006120668383612c3a60408051602081019091526000815290565b613d90565b612c47610edb565b6001600160a01b0316336001600160a01b031614612c775760405162461bcd60e51b815260040161045390616861565b30612c80610edb565b6001600160a01b031614612cbe5760008036604051612ca0929190616851565b604051809103902090505b80612cb7610164612e52565b03612cab57505b6111d181613fa3565b60006064612cd4836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d429190616a5e565b612d4c9190616b12565b610fbb9190616a14565b600080600080612d6585613575565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614305565b6000610fbb612dab6143a1565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612ddc878787876143ab565b915091506114618161446f565b6000805462010000900460ff1615612e1457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e455760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145b9565b6000612e6d8254600f81810b600160801b909204900b131590565b15612e8b57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f545760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5e61206d565b90508015801590612f70575061025e54155b15612fd557604080518082019091526000815261025e9060208101612f94846146bc565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613003612ff0612fe3611fe2565b65ffffffffffff166138d1565b612ff9846146bc565b61025e9190614725565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061305186868686612a2a565b9050600461305e82611773565b600781111561306f5761306f6162ee565b1461308c5760405162461bcd60e51b81526004016104539061693d565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fb9190616a5e565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613136908a908a908a906000908b90600401616b29565b602060405180830381865afa158015613153573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131779190616a5e565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c4918b918b918b91908b908990600401616b77565b600060405180830381600087803b1580156131de57600080fd5b505af11580156131f2573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132249190616bcf565b604080519283526020830191909152015b60405180910390a15095945050505050565b30613250610edb565b6001600160a01b0316146132e15760005b84518110156117a157306001600160a01b0316858281518110613286576132866168d2565b60200260200101516001600160a01b0316036132d1576132d18382815181106132b1576132b16168d2565b60200260200101518051906020012061016461474090919063ffffffff16565b6132da816168fe565b9050613261565b5050505050565b60005462010000900460ff161561331257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133435760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133bc576102c16000868381518110613366576133666168d2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133aa57604051630b094f2760e31b815260040160405180910390fd5b806133b4816168fe565b915050613346565b506132e1858585858561477c565b306133d3610edb565b6001600160a01b0316146132e15761016454600f81810b600160801b909204900b13156132e1576000610164556132e1565b60006113498585858561342360408051602081019091526000815290565b612de9565b600080613434836147f1565b9050600481600781111561344a5761344a6162ee565b146134555792915050565b600083815261022c602052604090205480613471575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134df9190616be2565b156134ee575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355c9190616be2565b1561356b575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374783600301805480602002602001604051908101604052809291908181526020016000905b8282101561366e5783829060005260206000200180546135e190616898565b80601f016020809104026020016040519081016040528092919081815260200182805461360d90616898565b801561365a5780601f1061362f5761010080835404028352916020019161365a565b820191906000526020600020905b81548152906001019060200180831161363d57829003601f168201915b5050505050815260200190600101906135c2565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373e5783829060005260206000200180546136b190616898565b80601f01602080910402602001604051908101604052809291908181526020018280546136dd90616898565b801561372a5780601f106136ff5761010080835404028352916020019161372a565b820191906000526020600020905b81548152906001019060200180831161370d57829003601f168201915b505050505081526020019060010190613692565b505050506141d3565b600984015483546040805160208084028201810190925282815291869183018282801561379d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161377f575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137ef57602002820191906000526020600020905b8154815260200190600101908083116137db575b505050505092509450945094509450509193509193565b60008061381586868686612a2a565b60008181526101c660205260409020549091506001600160a01b0316338114806138695750613842612903565b613867826001613850611fe2565b61385a9190616917565b65ffffffffffff16612c1e565b105b6138c55760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b61176887878787614929565b600063ffffffff8211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399757600061395584614937565b61395f90856169eb565b60008881526020902090915081015463ffffffff908116908716101561398757809150613995565b613992816001616bcf565b92505b505b60006139a587878585614a1f565b905080156139e0576139ca876139bc6001846169eb565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ad9576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aab9190616a5e565b1015613aca576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3733868686516001600160401b03811115613afc57613afc615d26565b604051908082528060200260200182016040528015613b2f57816020015b6060815260200190600190039081613b1a5790505b508787614115565b61134985858585614a75565b600054610100900460ff16613b6a5760405162461bcd60e51b815260040161045390616c04565b613b9181613b8c6040805180820190915260018152603160f81b602082015290565b614e54565b6111d181614ea3565b600054610100900460ff16613bc15760405162461bcd60e51b815260040161045390616c04565b613bcc838383614edb565b505050565b600054610100900460ff16613ad95760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff16613c1f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f1d565b600054610100900460ff16613c4f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f67565b600054610100900460ff16613c7f5760405162461bcd60e51b815260040161045390616c04565b6111d181614f8e565b600054610100900460ff16613caf5760405162461bcd60e51b815260040161045390616c04565b6111d181614fb5565b600054610100900460ff16613cdf5760405162461bcd60e51b815260040161045390616c04565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616898565b6060609b80546111e490616898565b600065ffffffffffff8211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120639190616a5e565b805460009080156121b557613e21836139bc6001846169eb565b54600160201b90046001600160e01b0316612066565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb59190616c4f565b6040516020818303038152906040528051906020012083604051602001613edc9190616c4f565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f605760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fdc565b6060831561410b575081612066565b6120668383614ff2565b805160208201206000614133878761412d88886141d3565b85612a2a565b60008181526101c6602052604090206009810154919250906141c85780546001600160a01b0319166001600160a01b038a16178155875161417d90600183019060208b0190615ac1565b50865161419390600283019060208a0190615b22565b5085516141a99060038301906020890190615b5d565b5084516141bf9060048301906020880190615baf565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141f0576141f0615d26565b60405190808252806020026020018201604052801561422357816020015b606081526020019060019003908161420e5790505b50905060005b81518110156142fd57848181518110614244576142446168d2565b6020026020010151516000146142b457848181518110614266576142666168d2565b602002602001015180519060200120848281518110614287576142876168d2565b60200260200101516040516020016142a0929190616c6b565b6040516020818303038152906040526142cf565b8381815181106142c6576142c66168d2565b60200260200101515b8282815181106142e1576142e16168d2565b6020026020010181905250806142f6906168fe565b9050614229565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434b57506001600160e01b0319868116908216145b8061436257506001600160e01b0319868116908516145b8061437d57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef061501c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143e25750600090506003614466565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614436573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661445f57600060019250925050614466565b9150600090505b94509492505050565b6000816004811115614483576144836162ee565b0361448b5750565b600181600481111561449f5761449f6162ee565b036144ec5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b6002816004811115614500576145006162ee565b0361454d5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b6003816004811115614561576145616162ee565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145c98787878787615090565b600088815261029060205260409020549091506001600160401b03161580156145f657506145f6876151e6565b15611b5857600061461061028f546001600160401b031690565b614618611fe2565b65ffffffffffff1661462a9190616c9c565b90506146358861290f565b816001600160401b03161115614684576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139365760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614733858585615226565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b8908890889088906000908990600401616b29565b6000604051808303818588803b1580156147d157600080fd5b505af11580156147e5573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148165750600792915050565b6002810154610100900460ff16156148315750600292915050565b600083815261016360205260408120546001600160401b03169081900361489a5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a4611fe2565b65ffffffffffff1690508082106148c057506000949350505050565b60006148cb8661290f565b90508181106148e05750600195945050505050565b6148e9866151e6565b801561490c575060008681526101c6602052604090206006810154600590910154115b1561491d5750600495945050505050565b50600395945050505050565b6000611349858585856153c5565b60008160000361494957506000919050565b600060016149568461547b565b901c6001901b9050600181848161496f5761496f6169fe565b048201901c90506001818481614987576149876169fe565b048201901c9050600181848161499f5761499f6169fe565b048201901c905060018184816149b7576149b76169fe565b048201901c905060018184816149cf576149cf6169fe565b048201901c905060018184816149e7576149e76169fe565b048201901c905060018184816149ff576149ff6169fe565b048201901c905061206681828581614a1957614a196169fe565b0461550f565b60005b818310156142fd576000614a36848461551e565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a6157809250614a6f565b614a6c816001616bcf565b93505b50614a22565b600033614a828184615539565b614ace5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad8611fe2565b65ffffffffffff169050614aea612903565b614af983610e216001856169eb565b1015614b615760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b768888888880519060200120612a2a565b90508651885114614b995760405162461bcd60e51b815260040161045390616cbc565b8551885114614bba5760405162461bcd60e51b815260040161045390616cbc565b6000885111614c0b5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c7b5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c876101945490565b614c919084616bcf565b90506000614c9f6101955490565b614ca99083616bcf565b90506040518060e00160405280614cbf8461562a565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614cec8361562a565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614df157614df1615d26565b604051908082528060200260200182016040528015614e2457816020015b6060815260200190600190039081614e0f5790505b508d88888f604051614e3e99989796959493929190616cfd565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e7b5760405162461bcd60e51b815260040161045390616c04565b609a614e878382616ddb565b50609b614e948282616ddb565b50506000609881905560995550565b600054610100900460ff16614eca5760405162461bcd60e51b815260040161045390616c04565b610162614ed78282616ddb565b5050565b600054610100900460ff16614f025760405162461bcd60e51b815260040161045390616c04565b614f0b836139ed565b614f1482613f00565b613bcc81613fa3565b600054610100900460ff16614f445760405162461bcd60e51b815260040161045390616c04565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166121195760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c04565b600054610100900460ff16612ae35760405162461bcd60e51b815260040161045390616c04565b6000818311614feb5781612066565b5090919050565b8151156150025781518083602001fd5b8060405162461bcd60e51b81526004016104539190615edf565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f615047615692565b61504f6156eb565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150aa88611773565b60078111156150bb576150bb6162ee565b146151145760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512e9088906001600160401b031686613d90565b905061513d888888848861571c565b835160000361519257866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151859493929190616e9a565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d3959493929190616ec2565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521d610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b82546000908190801561536c576000615244876139bc6001856169eb565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c55760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530d57846152e6886139bc6001866169eb565b80546001600160e01b0392909216600160201b0263ffffffff90921691909117905561535c565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147389050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614738565b6000806153d4868686866158ba565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916154309160040190815260200190565b600060405180830381600087803b15801561544a57600080fd5b505af115801561545e573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561549057608092831c92015b604083901c156154a257604092831c92015b602083901c156154b457602092831c92015b601083901c156154c657601092831c92015b600883901c156154d857600892831c92015b600483901c156154ea57600492831c92015b600283901c156154fc57600292831c92015b600183901c15610fbb5760010192915050565b6000818310614feb5781612066565b600061552d6002848418616a14565b61206690848416616bcf565b80516000906034811015615551576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558457600192505050610fbb565b6000806155926028856169eb565b90505b83811015615609576000806155c98884815181106155b5576155b56168d2565b01602001516001600160f81b0319166159c7565b91509150816155e15760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b179350505080615602906168fe565b9050615595565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569d613d0b565b8051909150156156b4578051602090910120919050565b60985480156156c35792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f6613d1a565b80519091501561570d578051602090910120919050565b60995480156156c35792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157ac5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157cc84615a59565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff851661581c57838260060160008282546158119190616bcf565b90915550612a219050565b60001960ff86160161583c57838260050160008282546158119190616bcf565b60011960ff86160161585c57838260070160008282546158119190616bcf565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158c986868686612a2a565b905060006158d682611773565b905060028160078111156158ec576158ec6162ee565b1415801561590c57506006816007811115615909576159096162ee565b14155b801561592a57506007816007811115615927576159276162ee565b14155b6159765760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132359084815260200190565b60008060f883901c602f811180156159e25750603a8160ff16105b156159f757600194602f199091019350915050565b8060ff166040108015615a0d575060478160ff16105b15615a22576001946036199091019350915050565b8060ff166060108015615a38575060678160ff16105b15615a4d576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139365760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b16579160200282015b82811115615b1657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ae1565b50613936929150615c01565b828054828255906000526020600020908101928215615b16579160200282015b82811115615b16578251825591602001919060010190615b42565b828054828255906000526020600020908101928215615ba3579160200282015b82811115615ba35782518290615b939082616ddb565b5091602001919060010190615b7d565b50613936929150615c16565b828054828255906000526020600020908101928215615bf5579160200282015b82811115615bf55782518290615be59082616ddb565b5091602001919060010190615bcf565b50613936929150615c33565b5b808211156139365760008155600101615c02565b80821115613936576000615c2a8282615c50565b50600101615c16565b80821115613936576000615c478282615c50565b50600101615c33565b508054615c5c90616898565b6000825580601f10615c6c575050565b601f0160209004906000526020600020908101906111d19190615c01565b600060208284031215615c9c57600080fd5b5035919050565b600060208284031215615cb557600080fd5b81356001600160e01b03198116811461206657600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615cf057600080fd5b5081356001600160401b03811115615d0757600080fd5b602083019150836020828501011115615d1f57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6457615d64615d26565b604052919050565b60006001600160401b03821115615d8557615d85615d26565b50601f01601f191660200190565b600082601f830112615da457600080fd5b8135615db7615db282615d6c565b615d3c565b818152846020838601011115615dcc57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0557600080fd5b88359750615e1560208a01615ccd565b965060408901356001600160401b0380821115615e3157600080fd5b615e3d8c838d01615cde565b909850965060608b0135915080821115615e5657600080fd5b50615e638b828c01615d93565b945050615e7260808a01615ccd565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615eaa578181015183820152602001615e92565b50506000910152565b60008151808452615ecb816020860160208601615e8f565b601f01601f19169290920160200192915050565b6020815260006120666020830184615eb3565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1d57600080fd5b8435615f2881615ef2565b93506020850135615f3881615ef2565b92506040850135915060608501356001600160401b03811115615f5a57600080fd5b615f6687828801615d93565b91505092959194509250565b60006001600160401b03821115615f8b57615f8b615d26565b5060051b60200190565b600082601f830112615fa657600080fd5b81356020615fb6615db283615f72565b82815260059290921b84018101918181019086841115615fd557600080fd5b8286015b84811015615ff9578035615fec81615ef2565b8352918301918301615fd9565b509695505050505050565b600082601f83011261601557600080fd5b81356020616025615db283615f72565b82815260059290921b8401810191818101908684111561604457600080fd5b8286015b84811015615ff95780358352918301918301616048565b600082601f83011261607057600080fd5b81356020616080615db283615f72565b82815260059290921b8401810191818101908684111561609f57600080fd5b8286015b84811015615ff95780356001600160401b038111156160c25760008081fd5b6160d08986838b0101615d93565b8452509183019183016160a3565b600080600080608085870312156160f457600080fd5b84356001600160401b038082111561610b57600080fd5b61611788838901615f95565b9550602087013591508082111561612d57600080fd5b61613988838901616004565b9450604087013591508082111561614f57600080fd5b5061615c8782880161605f565b949793965093946060013593505050565b60006020828403121561617f57600080fd5b813561206681615ef2565b600081518084526020808501945080840160005b838110156161c35781516001600160a01b03168752958201959082019060010161619e565b509495945050505050565b600081518084526020808501945080840160005b838110156161c3578151875295820195908201906001016161e2565b600081518084526020808501808196508360051b8101915082860160005b85811015616246578284038952616234848351615eb3565b9885019893509084019060010161621c565b5091979650505050505050565b608081526000616266608083018761618a565b828103602084015261627881876161ce565b9050828103604084015261628c81866161fe565b9050828103606084015261176881856161fe565b600080600080600060a086880312156162b857600080fd5b853594506162c860208701615ccd565b93506162d660408701615ccd565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632657634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561633f57600080fd5b82359150602083013561635181615ef2565b809150509250929050565b6000806040838503121561636f57600080fd5b8235915061637f60208401615ccd565b90509250929050565b6000806000806000608086880312156163a057600080fd5b853594506163b060208701615ccd565b935060408601356001600160401b03808211156163cc57600080fd5b6163d889838a01615cde565b909550935060608801359150808211156163f157600080fd5b506163fe88828901615d93565b9150509295509295909350565b6000806000806060858703121561642157600080fd5b8435935061643160208601615ccd565b925060408501356001600160401b0381111561644c57600080fd5b61645887828801615cde565b95989497509550505050565b6000806000806080858703121561647a57600080fd5b84356001600160401b038082111561649157600080fd5b61649d88838901615f95565b955060208701359150808211156164b357600080fd5b6164bf88838901616004565b945060408701359150808211156164d557600080fd5b6164e18883890161605f565b935060608701359150808211156164f757600080fd5b50615f6687828801615d93565b60ff60f81b8816815260e06020820152600061652360e0830189615eb3565b82810360408401526165358189615eb3565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161ce565b60008060006060848603121561657b57600080fd5b833561658681615ef2565b92506020840135915060408401356001600160401b038111156165a857600080fd5b6165b486828701615d93565b9150509250925092565b600080600080604085870312156165d457600080fd5b84356001600160401b03808211156165eb57600080fd5b6165f788838901615cde565b9096509450602087013591508082111561661057600080fd5b5061645887828801615cde565b600080600080600060a0868803121561663557600080fd5b853561664081615ef2565b9450602086013561665081615ef2565b935060408601356001600160401b038082111561666c57600080fd5b61667889838a01616004565b9450606088013591508082111561668e57600080fd5b61669a89838a01616004565b935060808801359150808211156163f157600080fd5b600080600080606085870312156166c657600080fd5b84356166d181615ef2565b93506020850135925060408501356001600160401b0381111561644c57600080fd5b60006020828403121561670557600080fd5b81356001600160401b038116811461206657600080fd5b600080600080600060a0868803121561673457600080fd5b85356001600160401b038082111561674b57600080fd5b61675789838a01615f95565b9650602088013591508082111561676d57600080fd5b61677989838a01616004565b9550604088013591508082111561678f57600080fd5b61679b89838a0161605f565b945060608801359150808211156167b157600080fd5b61669a89838a0161605f565b600080604083850312156167d057600080fd5b82356167db81615ef2565b946020939093013593505050565b600080600080600060a0868803121561680157600080fd5b853561680c81615ef2565b9450602086013561681c81615ef2565b9350604086013592506060860135915060808601356001600160401b0381111561684557600080fd5b6163fe88828901615d93565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168ac57607f821691505b6020821081036168cc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201616910576169106168e8565b5060010190565b65ffffffffffff828116828216039080821115616936576169366168e8565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561699057600080fd5b81516001600160401b038111156169a657600080fd5b8201601f810184136169b757600080fd5b80516169c5615db282615d6c565b8181528560208385010111156169da57600080fd5b611349826020830160208601615e8f565b81810381811115610fbb57610fbb6168e8565b634e487b7160e01b600052601260045260246000fd5b600082616a3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4857600080fd5b815165ffffffffffff8116811461206657600080fd5b600060208284031215616a7057600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab4604083018688616a77565b8281036020840152611768818587616a77565b608081526000616ada608083018761618a565b8281036020840152616aec81876161ce565b90508281036040840152616b0081866161fe565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e8565b60a081526000616b3c60a083018861618a565b8281036020840152616b4e81886161ce565b90508281036040840152616b6281876161fe565b60608401959095525050608001529392505050565b60c081526000616b8a60c083018961618a565b8281036020840152616b9c81896161ce565b90508281036040840152616bb081886161fe565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e8565b600060208284031215616bf457600080fd5b8151801515811461206657600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c61818460208701615e8f565b9190910192915050565b6001600160e01b0319831681528151600090616c8e816004850160208701615e8f565b919091016004019392505050565b6001600160401b03818116838216019080821115616936576169366168e8565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d288382018b61618a565b90508281036060840152616d3c818a6161ce565b90508281036080840152616d5081896161fe565b905082810360a0840152616d6481886161fe565b90508560c08401528460e0840152828103610100840152616d858185615eb3565b9c9b505050505050505050505050565b601f821115613bcc57600081815260208120601f850160051c81016020861015616dbc5750805b601f850160051c820191505b818110156117a157828155600101616dc8565b81516001600160401b03811115616df457616df4615d26565b616e0881616e028454616898565b84616d95565b602080601f831160018114616e3d5760008415616e255750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6c57888601518255948401946001909101908401616e4d565b5085821015616e8a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb3565b85815260ff8516602082015283604082015260a060608201526000616eea60a0830185615eb3565b8281036080840152611c718185615eb356fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a", + Code: feynman.ChapelGovernorContract, }, { ContractAddr: common.HexToAddress(GovTokenContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a", + Code: feynman.MainnetGovTokenContract, }, { ContractAddr: common.HexToAddress(TimelockContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa5565b61064a565b005b34801561022157600080fd5b50610235610230366004611b19565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258983398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254983398151915281565b6102136102aa366004611b43565b610739565b3480156102bb57600080fd5b506102356102ca366004611bae565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7c565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611bae565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611bae565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce3565b610802565b34801561039f57600080fd5b506102356103ae366004611bae565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce3565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611bae565b6108c8565b34801561042657600080fd5b50610213610435366004611bae565b6108df565b34801561044657600080fd5b5061026c610455366004611b43565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d53565b610b73565b34801561049b57600080fd5b5061026c60008051602061256983398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce3565b610cf4565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e04565b610d1f565b34801561051257600080fd5b5061026c6000805160206125a983398151915281565b34801561053457600080fd5b5061026c610543366004611e6f565b610f09565b34801561055457600080fd5b506102fa610563366004611f96565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611bae565b610f4e565b3480156105a057600080fd5b5061026c6105af366004611bae565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce3565b611011565b6102136105ef366004611e6f565b611036565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa61062436600461203f565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b600080516020612569833981519152610662816111ae565b6000610672898989898989610983565b905061067e81846111b8565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cc565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a7565b92915050565b600080516020612589833981519152610753816000610cf4565b6107615761076181336112dc565b6000610771888888888888610983565b905061077d8185611335565b610789888888886113d0565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c19493929190612109565b60405180910390a36107d2816114a3565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111ae565b61082783836114dc565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611562565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cc565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213b565b60200260200101906001600160a01b031690816001600160a01b031681525050610b2961546082836120046115c9565b508015610b70576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b600080516020612569833981519152610b8b816111ae565b888714610baa5760405162461bcd60e51b81526004016108b190612151565b888514610bc95760405162461bcd60e51b81526004016108b190612151565b6000610bdb8b8b8b8b8b8b8b8b610f09565b9050610be781846111b8565b60005b8a811015610ca55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2757610c2761213b565b9050602002016020810190610c3c9190612194565b8d8d86818110610c4e57610c4e61213b565b905060200201358c8c87818110610c6757610c6761213b565b9050602002810190610c7991906121af565b8c8b604051610c8d969594939291906120cc565b60405180910390a3610c9e8161220b565b9050610bea565b508315610ce757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cde91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4557604051630f22c43960e41b815261100760048201526024016108b1565b610da8604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116029050565b15610ea55760208114610dd65783838383604051630a5a604160e01b81526004016108b19493929190612224565b604080516020601f8401819004810282018101909252828152600091610e1791858580838501838280828437600092019190915250929392505061165b9050565b9050801580610e2857506212750081115b15610e4e5784848484604051630a5a604160e01b81526004016108b19493929190612224565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8757600080fd5b505af1158015610e9b573d6000803e3d6000fd5b5050505050610ec6565b838383836040516325ee20d560e21b81526004016108b19493929190612224565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efb9493929190612224565b60405180910390a150505050565b60008888888888888888604051602001610f2a9897969594939291906122d9565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125a9833981519152610f66816111ae565b610f6f826108c8565b610fd55760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102c816111ae565b6108278383611562565b600080516020612589833981519152611050816000610cf4565b61105e5761105e81336112dc565b87861461107d5760405162461bcd60e51b81526004016108b190612151565b87841461109c5760405162461bcd60e51b81526004016108b190612151565b60006110ae8a8a8a8a8a8a8a8a610f09565b90506110ba8185611335565b60005b898110156111985760008b8b838181106110d9576110d961213b565b90506020020160208101906110ee9190612194565b905060008a8a848181106111045761110461213b565b9050602002013590503660008a8a868181106111225761112261213b565b905060200281019061113491906121af565b91509150611144848484846113d0565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117b9493929190612109565b60405180910390a350505050806111919061220b565b90506110bd565b506111a2816114a3565b50505050505050505050565b610b7081336112dc565b6111c18261082c565b156112265760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112875760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b611291814261237a565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e68282610cf4565b6108c4576112f381611660565b6112fe836020611672565b60405160200161130f9291906123b1565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612426565b61133e826107dc565b61135a5760405162461bcd60e51b81526004016108b190612459565b80158061137557506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ed9291906124a3565b60006040518083038185875af1925050503d806000811461142a576040519150601f19603f3d011682016040523d82523d6000602084013e61142f565b606091505b505090508061149c5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ac816107dc565b6114c85760405162461bcd60e51b81526004016108b190612459565b600090815260976020526040902060019055565b6114e68282610cf4565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156c8282610cf4565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115f05760405162461bcd60e51b81526004016108b1906124b3565b6115fc8484848461180d565b50505050565b60008160405160200161161591906124fe565b604051602081830303815290604052805190602001208360405160200161163c91906124fe565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b6060600061168183600261251a565b61168c90600261237a565b6001600160401b038111156116a3576116a3611bc7565b6040519080825280601f01601f1916602001820160405280156116cd576020820181803683370190505b509050600360fc1b816000815181106116e8576116e861213b565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117175761171761213b565b60200101906001600160f81b031916908160001a905350600061173b84600261251a565b61174690600161237a565b90505b60018111156117be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177a5761177a61213b565b1a60f81b8282815181106117905761179061213b565b60200101906001600160f81b031916908160001a90535060049490941c936117b781612531565b9050611749565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118345760405162461bcd60e51b81526004016108b1906124b3565b61184c600080516020612549833981519152806119ec565b6118726000805160206125698339815191526000805160206125498339815191526119ec565b6118986000805160206125898339815191526000805160206125498339815191526119ec565b6118be6000805160206125a98339815191526000805160206125498339815191526119ec565b6118d660008051602061254983398151915230611a37565b6001600160a01b038116156118fd576118fd60008051602061254983398151915282611a37565b60005b835181101561196e5761193a60008051602061256983398151915285838151811061192d5761192d61213b565b6020026020010151611a37565b61195e6000805160206125a983398151915285838151811061192d5761192d61213b565b6119678161220b565b9050611900565b5060005b82518110156119af5761199f60008051602061258983398151915284838151811061192d5761192d61213b565b6119a88161220b565b9050611972565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efb565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114dc565b80356001600160a01b0381168114611a5857600080fd5b919050565b60008083601f840112611a6f57600080fd5b5081356001600160401b03811115611a8657600080fd5b602083019150836020828501011115611a9e57600080fd5b9250929050565b600080600080600080600060c0888a031215611ac057600080fd5b611ac988611a41565b96506020880135955060408801356001600160401b03811115611aeb57600080fd5b611af78a828b01611a5d565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2b57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5c57600080fd5b611b6587611a41565b95506020870135945060408701356001600160401b03811115611b8757600080fd5b611b9389828a01611a5d565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bc057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0557611c05611bc7565b604052919050565b600082601f830112611c1e57600080fd5b81356001600160401b03811115611c3757611c37611bc7565b611c4a601f8201601f1916602001611bdd565b818152846020838601011115611c5f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9257600080fd5b611c9b85611a41565b9350611ca960208601611a41565b92506040850135915060608501356001600160401b03811115611ccb57600080fd5b611cd787828801611c0d565b91505092959194509250565b60008060408385031215611cf657600080fd5b82359150611d0660208401611a41565b90509250929050565b60008083601f840112611d2157600080fd5b5081356001600160401b03811115611d3857600080fd5b6020830191508360208260051b8501011115611a9e57600080fd5b600080600080600080600080600060c08a8c031215611d7157600080fd5b89356001600160401b0380821115611d8857600080fd5b611d948d838e01611d0f565b909b50995060208c0135915080821115611dad57600080fd5b611db98d838e01611d0f565b909950975060408c0135915080821115611dd257600080fd5b50611ddf8c828d01611d0f565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1a57600080fd5b84356001600160401b0380821115611e3157600080fd5b611e3d88838901611a5d565b90965094506020870135915080821115611e5657600080fd5b50611e6387828801611a5d565b95989497509550505050565b60008060008060008060008060a0898b031215611e8b57600080fd5b88356001600160401b0380821115611ea257600080fd5b611eae8c838d01611d0f565b909a50985060208b0135915080821115611ec757600080fd5b611ed38c838d01611d0f565b909850965060408b0135915080821115611eec57600080fd5b50611ef98b828c01611d0f565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2857600080fd5b813560206001600160401b03821115611f4357611f43611bc7565b8160051b611f52828201611bdd565b9283528481018201928281019087851115611f6c57600080fd5b83870192505b84831015611f8b57823582529183019190830190611f72565b979650505050505050565b600080600080600060a08688031215611fae57600080fd5b611fb786611a41565b9450611fc560208701611a41565b935060408601356001600160401b0380821115611fe157600080fd5b611fed89838a01611f17565b9450606088013591508082111561200357600080fd5b61200f89838a01611f17565b9350608088013591508082111561202557600080fd5b5061203288828901611c0d565b9150509295509295909350565b600080600080600060a0868803121561205757600080fd5b61206086611a41565b945061206e60208701611a41565b9350604086013592506060860135915060808601356001600160401b0381111561209757600080fd5b61203288828901611c0d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f460a0830186886120a3565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121316060830184866120a3565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a657600080fd5b6107fb82611a41565b6000808335601e198436030181126121c657600080fd5b8301803591506001600160401b038211156121e057600080fd5b602001915036819003821315611a9e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221d5761221d6121f5565b5060010190565b6040815260006122386040830186886120a3565b8281036020840152611f8b8185876120a3565b818352600060208085019450848460051b86018460005b878110156122cc5783830389528135601e1988360301811261228357600080fd5b870185810190356001600160401b0381111561229e57600080fd5b8036038213156122ad57600080fd5b6122b88582846120a3565b9a87019a9450505090840190600101612262565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561231a576001600160a01b0361230584611a41565b168252602092830192909101906001016122ec565b5083810360208501528881526001600160fb1b0389111561233a57600080fd5b8860051b9150818a60208301370182810360209081016040850152612362908201878961224b565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f5565b60005b838110156123a8578181015183820152602001612390565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e981601785016020880161238d565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241a81602884016020880161238d565b01602801949350505050565b602081526000825180602084015261244581604085016020870161238d565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161251081846020870161238d565b9190910192915050565b8082028115828204841417610733576107336121f5565b600081612540576125406121f5565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a", + Code: feynman.ChapelTimelockContract, }, { ContractAddr: common.HexToAddress(TokenRecoverPortalContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/9d09d0a3d6332460a810188261ec8195e05aa218", - Code: "608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b6101186101443660046116a8565b610328565b61016c6101573660046116a8565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a3660046116a8565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116c3565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b81525081565b60405161012d919061173f565b6101186104b3565b610118610625565b60695461016c9060ff1681565b61011861022736600461179b565b6106b1565b60335460ff1661016c565b61011861024536600461184c565b610ad0565b61016c610258366004611926565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e30565b6105dc7330151da466ec8ab345bef3d6983023e050fb0673610e5d565b8015610622576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610655576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561067957604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106d757604051630f22c43960e41b8152611007600482015260240161054c565b6107416040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b1561080b576014811461076f5783838383604051630a5a604160e01b815260040161054c9493929190611968565b60006107b5601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b0381166107e65784848484604051630a5a604160e01b815260040161054c9493929190611968565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a8d565b6108706040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b156109405760695460ff1615610899576040516379b3306f60e11b815260040160405180910390fd5b602081146108c25783838383604051630a5a604160e01b815260040161054c9493929190611968565b604080516020601f8401819004810282018101909252828152600091610903918585808385018382808284376000920191909152509293925050610f069050565b90508061092b5784848484604051630a5a604160e01b815260040161054c9493929190611968565b6068556069805460ff19166001179055610a8d565b6109b86040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610eac9050565b15610a6c57601481146109e65783838383604051630a5a604160e01b815260040161054c9493929190611968565b6000610a2c601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610f069050565b90506001600160a01b038116610a5d5784848484604051630a5a604160e01b815260040161054c9493929190611968565b610a6681610f0b565b50610a8d565b838383836040516325ee20d560e21b815260040161054c9493929190611968565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ac29493929190611968565b60405180910390a150505050565b60695460ff16610af35760405163678f619760e11b815260040160405180910390fd5b606854610b135760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b3c57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b6057604051631785c68160e01b815260040160405180910390fd5b610b68610f72565b6000610bf689898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bf18e8e33610fcb565b6110ec565b90506000818c8c604051602001610c0f9392919061199a565b604051602081830303815290604052805190602001209050610c40816000908152606a602052604090205460ff1690565b15610c5d57604051623e493160e81b815260040160405180910390fd5b610d053389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111c492505050565b610d468484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112cf565b610d63576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610dc457600080fd5b505af1158015610dd8573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610e1194939291906119c1565b60405180910390a15050610e2460018055565b50505050505050505050565b600054610100900460ff16610e575760405162461bcd60e51b815260040161054c906119f9565b60018055565b600054610100900460ff16610e845760405162461bcd60e51b815260040161054c906119f9565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ebf9190611a44565b6040516020818303038152906040528051906020012083604051602001610ee69190611a44565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fc45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152506110288560405160200161101291815260200190565b60405160208183030381529060405260006112e5565b6040516bffffffffffffffffffffffff19606087901b1660208201526110619060340160405160208183030381529060405260016112e5565b6110778860405160200161101291815260200190565b60405160200161108a9493929190611a60565b60408051601f19818403018152908290526110a491611a44565b602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110e49190611b8f565b949350505050565b6060835160211461111057604051638152ea1b60e01b815260040160405180910390fd5b825160401461113257604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161117093929190611bbe565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111b957600080fd5b509695505050505050565b606060005b825181101561122257818382815181106111e5576111e5611c01565b60200260200101516040516020016111fe929190611c17565b6040516020818303038152906040529150808061121a90611c4f565b9150506111c9565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152508787866068548660405160200161126e96959493929190611c68565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661129f86836114b7565b6001600160a01b0316146112c6576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112dc8584611551565b14949350505050565b60606000835160026112f79190611cd9565b67ffffffffffffffff81111561130f5761130f611ba8565b6040519080825280601f01601f191660200182016040528015611339576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561147f5781825187838151811061138557611385611c01565b0160200151611397919060f81c611d06565b815181106113a7576113a7611c01565b01602001516001600160f81b031916836113c2836002611cd9565b815181106113d2576113d2611c01565b60200101906001600160f81b031916908160001a9053508182518783815181106113fe576113fe611c01565b0160200151611410919060f81c611d1a565b8151811061142057611420611c01565b01602001516001600160f81b0319168361143b836002611cd9565b611446906001611d2e565b8151811061145657611456611c01565b60200101906001600160f81b031916908160001a9053508061147781611c4f565b915050611367565b5083156114af57816040516020016114979190611d41565b60405160208183030381529060405292505050610f00565b509392505050565b600082516041146114db576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b81101561150457611501601b82611d6b565b90505b601b8160ff1610806115195750601c8160ff16115b15611537576040516356b00a4f60e11b815260040160405180910390fd5b600061154586838686611596565b50979650505050505050565b600081815b84518110156114af576115828286838151811061157557611575611c01565b602002602001015161165a565b91508061158e81611c4f565b915050611556565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115cd5750600090506003611651565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611621573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661164a57600060019250925050611651565b9150600090505b94509492505050565b6000818310611676576000828152602084905260409020611685565b60008381526020839052604090205b9392505050565b80356001600160a01b03811681146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b6116858261168c565b600080604083850312156116d657600080fd5b823591506116e66020840161168c565b90509250929050565b60005b8381101561170a5781810151838201526020016116f2565b50506000910152565b6000815180845261172b8160208601602086016116ef565b601f01601f19169290920160200192915050565b6020815260006116856020830184611713565b60008083601f84011261176457600080fd5b50813567ffffffffffffffff81111561177c57600080fd5b60208301915083602082850101111561179457600080fd5b9250929050565b600080600080604085870312156117b157600080fd5b843567ffffffffffffffff808211156117c957600080fd5b6117d588838901611752565b909650945060208701359150808211156117ee57600080fd5b506117fb87828801611752565b95989497509550505050565b60008083601f84011261181957600080fd5b50813567ffffffffffffffff81111561183157600080fd5b6020830191508360208260051b850101111561179457600080fd5b60008060008060008060008060008060c08b8d03121561186b57600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561189157600080fd5b61189d8e838f01611752565b909a50985060608d01359150808211156118b657600080fd5b6118c28e838f01611752565b909850965060808d01359150808211156118db57600080fd5b6118e78e838f01611752565b909650945060a08d013591508082111561190057600080fd5b5061190d8d828e01611807565b915080935050809150509295989b9194979a5092959850565b60006020828403121561193857600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061197c60408301868861193f565b828103602084015261198f81858761193f565b979650505050505050565b600084516119ac8184602089016116ef565b91909101928352506020820152604001919050565b6080815260006119d46080830187611713565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a568184602087016116ef565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611aa3816022850160208a016116ef565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611af481604d840160208a016116ef565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b2481605c8401602089016116ef565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b5781606e8401602088016116ef565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611ba157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bd08184602089016116ef565b845190830190611be48183602089016116ef565b8451910190611bf78183602088016116ef565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c298184602088016116ef565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c6157611c61611c39565b5060010190565b60008751611c7a818460208c016116ef565b606088901b6bffffffffffffffffffffffff19169083019081528651611ca7816014840160208b016116ef565b0160148101869052603481018590528351611cc98160548401602088016116ef565b0160540198975050505050505050565b8082028115828204841417610f0057610f00611c39565b634e487b7160e01b600052601260045260246000fd5b600082611d1557611d15611cf0565b500490565b600082611d2957611d29611cf0565b500690565b80820180821115610f0057610f00611c39565b61060f60f31b815260008251611d5e8160028501602087016116ef565b9190910160020192915050565b60ff8181168382160190811115610f0057610f00611c3956fea164736f6c6343000811000a", + Code: feynman.ChapelTokenRecoverPortalContract, }, }, } @@ -672,62 +686,62 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618f97565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618fc1565b34801561057757600080fd5b50610580610e42565b60405161054091906182aa565b34801561059957600080fd5b506105ad6105a8366004618190565b610e48565b604051610540919061843d565b3480156105c657600080fd5b506105cf611144565b6040516105409190618432565b3480156105e857600080fd5b5061051c6105f7366004617f9e565b61114d565b34801561060857600080fd5b50610533611823565b34801561061d57600080fd5b5061055e611829565b34801561063257600080fd5b5061058061182e565b34801561064757600080fd5b5061051c610656366004617efe565b611834565b34801561066757600080fd5b5061051c610676366004617f36565b6118e1565b34801561068757600080fd5b506105cf61069636600461813d565b611c2a565b3480156106a757600080fd5b506105cf6106b636600461813d565b611cf9565b3480156106c757600080fd5b5061051c6106d6366004617efe565b611daa565b3480156106e757600080fd5b506106f0611f0f565b604051610540929190618348565b34801561070a57600080fd5b506107136121eb565b6040516105409190618fd2565b34801561072c57600080fd5b506105806121f0565b34801561074157600080fd5b506105336121f6565b34801561075657600080fd5b5061075f6121fc565b6040516105409190618f88565b34801561077857600080fd5b50610713612202565b34801561078d57600080fd5b506106f0612207565b3480156107a257600080fd5b50610533612393565b3480156107b757600080fd5b50610580612399565b3480156107cc57600080fd5b5061058061239f565b3480156107e157600080fd5b506105cf6107f0366004617efe565b6123a5565b34801561080157600080fd5b50610533610810366004617efe565b6123da565b34801561082157600080fd5b5061071361242b565b34801561083657600080fd5b5061055e612430565b34801561084b57600080fd5b50610533612435565b34801561086057600080fd5b506105ad61086f36600461813d565b61243b565b34801561088057600080fd5b506105336124e1565b34801561089557600080fd5b506108a96108a436600461813d565b6124e7565b604051610540969594939291906182d7565b3480156108c757600080fd5b5061058061254b565b3480156108dc57600080fd5b50610713612551565b3480156108f157600080fd5b50610713612556565b34801561090657600080fd5b5061058061255b565b34801561091b57600080fd5b50610533612561565b34801561093057600080fd5b50610713612567565b34801561094557600080fd5b5061053361256c565b34801561095a57600080fd5b50610580612572565b34801561096f57600080fd5b5061055e612578565b34801561098457600080fd5b5061053361257d565b34801561099957600080fd5b5061051c6109a8366004618190565b612583565b3480156109b957600080fd5b506105336125e4565b3480156109ce57600080fd5b506105336125ea565b3480156109e357600080fd5b506105cf6125f0565b3480156109f857600080fd5b506105336125f9565b348015610a0d57600080fd5b50610533610a1c366004617efe565b6125ff565b348015610a2d57600080fd5b5061051c61263f565b348015610a4257600080fd5b50610713612753565b348015610a5757600080fd5b50610580612758565b348015610a6c57600080fd5b5061053361275e565b348015610a8157600080fd5b50610533612763565b348015610a9657600080fd5b50610580612768565b348015610aab57600080fd5b506105ad61276e565b348015610ac057600080fd5b506105cf61278a565b348015610ad557600080fd5b50610580612793565b348015610aea57600080fd5b50610580612799565b348015610aff57600080fd5b5061053361279f565b348015610b1457600080fd5b5061055e61242b565b348015610b2957600080fd5b5061051c610b383660046180e1565b6127a8565b348015610b4957600080fd5b50610533610b58366004617efe565b613061565b348015610b6957600080fd5b50610533613073565b348015610b7e57600080fd5b50610b87613080565b6040516105409190618335565b348015610ba057600080fd5b5061053361316c565b348015610bb557600080fd5b50610533613171565b348015610bca57600080fd5b50610533612551565b348015610bdf57600080fd5b50610580613177565b348015610bf457600080fd5b506105ad610c0336600461813d565b61317d565b348015610c1457600080fd5b5061053361318a565b348015610c2957600080fd5b506105336131c9565b348015610c3e57600080fd5b506105336131d5565b348015610c5357600080fd5b506105806131db565b348015610c6857600080fd5b506105806131e1565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c6131e7565b348015610ca757600080fd5b50610533613478565b348015610cbc57600080fd5b506105cf610ccb3660046180a2565b61347e565b348015610cdc57600080fd5b5061051c610ceb366004617efe565b613604565b348015610cfc57600080fd5b5061055e613708565b348015610d1157600080fd5b5061071361370d565b61051c610d28366004617efe565b613712565b348015610d3957600080fd5b50610533613a91565b348015610d4e57600080fd5b50610580613a97565b348015610d6357600080fd5b5061071361275e565b348015610d7857600080fd5b50610580613a9d565b348015610d8d57600080fd5b50610da1610d9c36600461813d565b613aa3565b60405161054093929190618fa0565b348015610dbc57600080fd5b50610580613b65565b6000610dd0336125ff565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ba3565b60405180910390fd5b6000610e2561318a565b9050610e32338383613b6b565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e1290618664565b600b54610f2b57610e7c617aaa565b60015460005b81811015610f2757600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff1916911515919091179055604086015180518794610f03936000805160206190c4833981519152909101920190617ad9565b506060820151610f199060038301906013617b53565b505050806001019050610e82565b5050505b610f33617b80565b6000610f7485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613e3092505050565b9150915080610f9057610f876064613fec565b9250505061113d565b815160009060ff16610fb557610fae8360200151846040015161404d565b9050611109565b825160ff166001141561110557826020015151600114610ffa57600080516020619084833981519152604051610fea90618a5c565b60405180910390a1506067611100565b6000836020015160008151811061100d57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061106e575060018082038154811061104e57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110ac576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a26110f9565b60006110bb836001840361520f565b9050806110f7576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b611109565b5060655b63ffffffff811661112e575050604080516000815260208101909152915061113d9050565b61113781613fec565b93505050505b9392505050565b60075460ff1681565b33411461116c5760405162461bcd60e51b8152600401610e1290618df3565b3a1561118a5760405162461bcd60e51b8152600401610e1290618ae2565b82516040805182815260208084028201019091526060908280156111c857816020015b6111b5617ba4565b8152602001906001900390816111ad5790505b50905060005b82811015611272576040518060c001604052808783815181106111ed57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061122f57fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061125f57fe5b60209081029190910101526001016111ce565b5060405163d31f968d60e01b81526120009063d31f968d9061129d9061100090600890600401618319565b60206040518083038186803b1580156112b557600080fd5b505afa1580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190618082565b156116105780516015548181111561138f57815b8181101561138d57601580548061131457fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061136757fe5b6001900381819060005260206000200160006113839190617bd9565b9055600101611301565b505b60005b828110156115cf578181106114b75760158482815181106113af57fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a00151600390910155855160169087908390811061147f57fe5b602090810291909101810151825460018101845560009384529282902081516114b19491909101929190910190617ad9565b506115c7565b8381815181106114c357fe5b6020026020010151601582815481106114d857fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a090910151600390910155855186908290811061159357fe5b6020026020010151601682815481106115a857fe5b9060005260206000200190805190602001906115c5929190617ad9565b505b600101611392565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516115ff9190618f97565b60405180910390a150505050610e32565b60608061161d83866155d2565b9150915060005b6001548110156117135760006001828154811061163d57fe5b90600052602060002090600402016003015490508060001461170a5760006001838154811061166857fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab826001858154811061169c57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116d7926001600160a01b0390921691016182aa565b6000604051808303818588803b1580156116f057600080fd5b505af1158015611704573d6000803e3d6000fd5b50505050505b50600101611624565b504715611781577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516117499190618f97565b60405180910390a1604051611002904780156108fc02916000818181858888f1935050505015801561177f573d6000803e3d6000fd5b505b6000600381905560055581511561179c5761179c8282615ab9565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117d957600080fd5b505af11580156117ed573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118555760405162461bcd60e51b8152600401610e1290618f51565b60005b6015548110156118dd57816001600160a01b03166015828154811061187957fe5b60009182526020909120600490910201546001600160a01b031614156118d5576001601582815481106118a857fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118dd565b600101611858565b5050565b3341146119005760405162461bcd60e51b8152600401610e1290618df3565b60105443116119215760405162461bcd60e51b8152600401610e12906187f7565b3a1561193f5760405162461bcd60e51b8152600401610e1290618ae2565b60005460ff166119615760405162461bcd60e51b8152600401610e1290618664565b60006110023168056bc75e2d63100000811115611998576119918168056bc75e2d6310000063ffffffff6162a816565b915061199f565b5050611c20565b6040516309a99b4f60e41b815261100290639a99b4f0906119c690309086906004016182be565b602060405180830381600087803b1580156119e057600080fd5b505af11580156119f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a189190618155565b915081611a26575050611c20565b6000805b84811015611a5457858582818110611a3e57fe5b9050602002013582019150806001019050611a2a565b5080611a6257505050611c20565b6000806000805b89811015611c185784898983818110611a7e57fe5b90506020020135880281611a8e57fe5b0493508a8a82818110611a9d57fe5b9050602002016020810190611ab29190617efe565b6001600160a01b03811660009081526004602052604090205490935091508115611bce576000600180840381548110611ae757fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b5457836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b479190618f97565b60405180910390a2611bc8565b600354611b67908663ffffffff6162ea16565b6003908155810154611b7f908663ffffffff6162ea16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611bbf908890618f97565b60405180910390a25b50611c10565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c079190618f97565b60405180910390a25b600101611a69565b505050505050505b5050436010555050565b6001546000908210611c3e57506000611cf4565b60006001600160a01b031660018381548110611c5657fe5b60009182526020909120600490910201546001600160a01b03161480611c8657506008541580611c865750600a54155b80611c95575060085460095410155b80611ca65750611ca482611cf9565b155b80611ccf57506000600b8381548110611cbb57fe5b906000526020600020906016020160000154115b80611ce357506001611cdf613080565b5111155b15611cf057506000611cf4565b5060015b919050565b6001546000908210611d0d57506000611cf4565b600b548210611d4a5760018281548110611d2357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611cf4565b60018281548110611d5757fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611da45750600b8281548110611d8b57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e6857611db9617aaa565b60015460005b81811015611e6457600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff1916911515919091179055604086015180518794611e40936000805160206190c4833981519152909101920190617ad9565b506060820151611e569060038301906013617b53565b505050806001019050611dbf565b5050505b336110011480611e79575033612002145b611e955760405162461bcd60e51b8152600401610e129061869b565b6001600160a01b03811660009081526004602052604090205480611eb95750611f0c565b6001810390506000600b8281548110611ece57fe5b600091825260209091206001601690920201015460ff169050611ef1838361520f565b8015611efa5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f625760018181548110611f3057fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f5a576001909101905b600101611f1b565b50606081604051908082528060200260200182016040528015611f8f578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fc857816020015b6060815260200190600190039081611fb35790505b50600b54600094509091508414156121435760005b8481101561213d5760018181548110611ff257fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612135576001818154811061202257fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061204d57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061207a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121125780601f106120e757610100808354040283529160200191612112565b820191906000526020600020905b8154815290600101906020018083116120f557829003601f168201915b505050505082858151811061212357fe5b60209081029190910101526001909301925b600101611fdd565b506121df565b60005b848110156121dd576001818154811061215b57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121d5576001818154811061218b57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121b657fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612146565b505b909450925050505b9091565b600181565b61100181565b60085481565b6102ca81565b600881565b6060806000600e549050600080600c5411612223576015612227565b600c545b90506060612233613080565b905060606122408261630f565b9050828251116122575790945092506121e7915050565b83838351031015612269578282510393505b831561229f576014430461228583838388880360008a8a61647d565b61229d8383838888038989038a8b8b8b51030161647d565b505b6060836040519080825280602002602001820160405280156122cb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561230457816020015b60608152602001906001900390816122ef5790505b50905060005b858110156123855784818151811061231e57fe5b602002602001015183828151811061233257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061235e57fe5b602002602001015182828151811061237257fe5b602090810291909101015260010161230a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123cd576000915050611cf4565b6000190161113d81611cf9565b6001600160a01b03811660009081526004602052604081205480612402576000915050611cf4565b60018082038154811061241157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061244857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124d95780601f106124ae576101008083540402835291602001916124d9565b820191906000526020600020905b8154815290600101906020018083116124bc57829003601f168201915b505050505081565b60105481565b600181815481106124f457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125a45760405162461bcd60e51b8152600401610e1290618da4565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125d793929190618fe0565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126355760405162461bcd60e51b8152600401610e1290618d2c565b6000190192915050565b600b546126fd5761264e617aaa565b60015460005b818110156126f957600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff19169115159190911790556040860151805187946126d5936000805160206190c4833981519152909101920190617ad9565b5060608201516126eb9060038301906013617b53565b505050806001019050612654565b5050505b60085461270a5760036008555b600a54612717576002600a555b6000612722336125ff565b905061272d81611c2a565b6127495760405162461bcd60e51b8152600401610e1290618a19565b611f0c33826165d4565b600981565b61100781565b600381565b601481565b61100681565b6040518060a00160405280607881526020016191046078913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ca5760405162461bcd60e51b8152600401610e1290618664565b33611007146127eb5760405162461bcd60e51b8152600401610e1290618b10565b61285584848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b6020820152915061666c9050565b156128f2576020811461287a5760405162461bcd60e51b8152600401610e1290618ce6565b604080516020601f84018190048102820181019092528281526000916128b8918585808385018382808284376000920191909152506166c592505050565b9050606481101580156128ce5750620186a08111155b6128ea5760405162461bcd60e51b8152600401610e1290618909565b60025561301e565b61295284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b6020820152915061666c9050565b156129f557602081146129775760405162461bcd60e51b8152600401610e1290618482565b604080516020601f84018190048102820181019092528281526000916129b5918585808385018382808284376000920191909152506166c592505050565b90506127106129cf600f54836162ea90919063ffffffff16565b11156129ed5760405162461bcd60e51b8152600401610e12906184b9565b60065561301e565b612a5f84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b6020820152915061666c9050565b15612af95760208114612a845760405162461bcd60e51b8152600401610e1290618521565b604080516020601f8401819004810282018101909252828152600091612ac2918585808385018382808284376000920191909152506166c592505050565b600c5490915080612ad1575060155b808210612af05760405162461bcd60e51b8152600401610e1290618861565b5060085561301e565b612b6284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b6020820152915061666c9050565b15612bfb5760208114612b875760405162461bcd60e51b8152600401610e12906185ea565b604080516020601f8401819004810282018101909252828152600091612bc5918585808385018382808284376000920191909152506166c592505050565b9050600081118015612bd75750600a81105b612bf35760405162461bcd60e51b8152600401610e1290618e84565b600a5561301e565b612c6f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e64696461746573000000000000006020820152915061666c9050565b15612cfe5760208114612c945760405162461bcd60e51b8152600401610e129061859e565b604080516020601f8401819004810282018101909252828152600091612cd2918585808385018382808284376000920191909152506166c592505050565b9050600d54811115612cf65760405162461bcd60e51b8152600401610e129061897f565b600e5561301e565b612d6784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b6020820152915061666c9050565b15612de95760208114612d8c5760405162461bcd60e51b8152600401610e1290618b5e565b604080516020601f8401819004810282018101909252828152600091612dca918585808385018382808284376000920191909152506166c592505050565b600d819055600e54909150811015612de357600d54600e555b5061301e565b612e4d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b6020820152915061666c9050565b15612efb5760208114612e725760405162461bcd60e51b8152600401610e129061862f565b604080516020601f8401819004810282018101909252828152600091612eb0918585808385018382808284376000920191909152506166c592505050565b905060008111612ed25760405162461bcd60e51b8152600401610e1290618709565b6064811115612ef35760405162461bcd60e51b8152600401610e1290618751565b600c5561301e565b612f6384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b6020820152915061666c9050565b156130065760208114612f885760405162461bcd60e51b8152600401610e1290618e40565b604080516020601f8401819004810282018101909252828152600091612fc6918585808385018382808284376000920191909152506166c592505050565b9050612710612fe0600654836162ea90919063ffffffff16565b1115612ffe5760405162461bcd60e51b8152600401610e1290618c47565b600f5561301e565b60405162461bcd60e51b8152600401610e1290618ee1565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130539493929190618450565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130af5761309b81611cf9565b156130a7578160010191505b60010161308a565b506060816040519080825280602002602001820160405280156130dc578160200160208202803683370190505b5090506000915060005b83811015613163576130f781611cf9565b1561315b576001818154811061310957fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061313457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b6001016130e6565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061244857fe5b6000613194613080565b519050600080600c54116131a95760156131ad565b600c545b9050808211156131bb578091505b816131c557600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561320a5760405162461bcd60e51b8152600401610e1290618c10565b613212617b80565b60006132356040518060a001604052806078815260200161910460789139613e30565b91509150806132565760405162461bcd60e51b8152600401610e1290618d63565b61325e617aaa565b60005b83602001515181101561345f57600b805460018101825560009190915282516000805160206190a483398151915260169092029182019081556020808501516000805160206190e48339815191528401805460ff19169115159190911790556040850151805186946132e7936000805160206190c4833981519152909101920190617ad9565b5060608201516132fd9060038301906013617b53565b5050508360400151818151811061331057fe5b6020026020010151600b828154811061332557fe5b90600052602060002090601602016002019080519060200190613349929190617ad9565b5060018460200151828151811061335c57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591870151805191850193918590811061343257fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101613261565b50506103e860025550506000805460ff19166001179055565b600d5481565b601354600090815b818110156135875761356f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506013805490925085915081106134d757fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156135655780601f1061353a57610100808354040283529160200191613565565b820191906000526020600020905b81548152906001019060200180831161354857829003601f168201915b50505050506166ca565b1561357f57600192505050611da4565b600101613486565b5060125460005b818110156135f8576135df86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506012805490925085915081106134d757fe5b156135f05760019350505050611da4565b60010161358e565b50600095945050505050565b33611001146136255760405162461bcd60e51b8152600401610e1290618f08565b600b546136e357613634617aaa565b60015460005b818110156136df57600b805460018101825560009190915283516000805160206190a483398151915260169092029182019081556020808601516000805160206190e48339815191528401805460ff19169115159190911790556040860151805187946136bb936000805160206190c4833981519152909101920190617ad9565b5060608201516136d19060038301906013617b53565b50505080600101905061363a565b5050505b60006136ee8261672e565b90506136f981611c2a565b156118dd576118dd82826165d4565b606581565b601181565b3341146137315760405162461bcd60e51b8152600401610e1290618df3565b60005460ff166137535760405162461bcd60e51b8152600401610e1290618664565b600034116137735760405162461bcd60e51b8152600401610e1290618950565b3a156137915760405162461bcd60e51b8152600401610e1290618ae2565b6001600160a01b03811660009081526004602052604090205460145434919060ff166137d157610271600f556103e86006556014805460ff191660011790555b6000821180156137e357506000600f54115b15613895576000613811612710613805600f54346168b190919063ffffffff16565b9063ffffffff6168eb16565b90508015613893576040516110029082156108fc029083906000818181858888f19350505050158015613848573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516138789190618f97565b60405180910390a1613890838263ffffffff6162a816565b92505b505b6000821180156138a757506000600654115b1561394d5760006138c9612710613805600654346168b190919063ffffffff16565b9050801561394b5760405161dead9082156108fc029083906000818181858888f19350505050158015613900573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516139309190618f97565b60405180910390a1613948838263ffffffff6162a816565b92505b505b8015613a4b57600060018083038154811061396457fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff16156139d157836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139c49190618f97565b60405180910390a2613a45565b6003546139e4908463ffffffff6162ea16565b60039081558101546139fc908463ffffffff6162ea16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc05590613a3c908690618f97565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b483604051613a849190618f97565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b8181548110613ab057fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613b5b5780601f10613b3057610100808354040283529160200191613b5b565b820191906000526020600020905b815481529060010190602001808311613b3e57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613b7c575081155b80613b875750600954155b15613b945750600061113d565b6000613bce600a5461380585613805600b8981548110613bb057fe5b6000918252602090912060169091020154439063ffffffff6162a816565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613c0d57600080fd5b505afa158015613c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c45919061816d565b9150915060009350808310613da457613c5e878761520f565b5060405163436aa28360e11b8152600090612002906386d5450690613c87908b906004016182aa565b60206040518083038186803b158015613c9f57600080fd5b505afa158015613cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cd79190617f1a565b6001600160a01b031614613d43576040516313d13bdb60e31b815261100190639e89ded890613d0c908a9087906004016182be565b600060405180830381600087803b158015613d2657600080fd5b505af1158015613d3a573d6000803e3d6000fd5b50505050613d9b565b6040516305bfb49960e41b815261100190635bfb499090613d68908a906004016182aa565b600060405180830381600087803b158015613d8257600080fd5b505af1158015613d96573d6000803e3d6000fd5b505050505b60019350613db6565b818310613db657613db48761672e565b505b60098054600019019055600b80546000919088908110613dd257fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613e38617b80565b6000613e42617b80565b613e4a617c1d565b613e5b613e568661692d565b616952565b90506000805b613e6a8361699c565b15613fde5780613e8f57613e85613e80846169bd565b616a0b565b60ff168452613fd6565b8060011415613fd1576060613eab613ea6856169bd565b616a8b565b90508051604051908082528060200260200182016040528015613ee857816020015b613ed5617ba4565b815260200190600190039081613ecd5790505b5085602001819052508051604051908082528060200260200182016040528015613f2657816020015b6060815260200190600190039081613f115790505b50604086015260005b8151811015613fc657613f40617ba4565b60606000613f60858581518110613f5357fe5b6020026020010151616b5c565b92509250925080613f80578860009a509a50505050505050505050613fe7565b8289602001518581518110613f9157fe5b60200260200101819052508189604001518581518110613fad57fe5b6020026020010181905250505050806001019050613f2f565b506001925050613fd6565b613fde565b600101613e61565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b606081526020019060019003908161400657905050905061402c8363ffffffff16616c76565b8160008151811061403957fe5b602002602001018190525061113d81616c89565b600060648351111561408457600080516020619084833981519152604051614074906187ae565b60405180910390a1506066611da4565b60005b83518110156141225760005b81811015614119578481815181106140a757fe5b6020026020010151600001516001600160a01b03168583815181106140c857fe5b6020026020010151600001516001600160a01b03161415614111576000805160206190848339815191526040516140fe906188be565b60405180910390a1606692505050611da4565b600101614093565b50600101614087565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141d45760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161414a565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156142a95760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156142955780601f1061426a57610100808354040283529160200191614295565b820191906000526020600020905b81548152906001019060200180831161427857829003601f168201915b5050505050815260200190600101906141fe565b50505050905060005b8251811015614306578281815181106142c757fe5b6020026020010151606001516003028382815181106142e257fe5b60209081029190910101516001600160401b039091166060909101526001016142b2565b5060608061431689898686616d13565b9150915061432482826155d2565b60015460408051828152602080840282010190915292985090965060009550859450925060609150828015614363578160200160208202803683370190505b50905060005b828110156144f45760006001600160a01b03166120026001600160a01b03166386d545066001848154811061439a57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b1681526143d5926001600160a01b0390921691016182aa565b60206040518083038186803b1580156143ed57600080fd5b505afa158015614401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144259190617f1a565b6001600160a01b03161461448757600182828151811061444157fe5b602002602001019060ff16908160ff16815250506001818154811061446257fe5b906000526020600020906004020160030154600014614482578360010193505b6144ec565b67016345785d8a00006001828154811061449d57fe5b906000526020600020906004020160030154106144bf578460010194506144ec565b600181815481106144cc57fe5b9060005260206000209060040201600301546000146144ec578360010193505b600101614369565b50606084604051908082528060200260200182016040528015614521578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614550578160200160208202803683370190505b50905060608660405190808252806020026020018201604052801561457f578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156145ae578160200160208202803683370190505b50905060006060886040519080825280602002602001820160405280156145df578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561460e578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561465657600080fd5b505afa15801561466a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061468e9190618155565b905067016345785d8a00008111156146da576000805160206190848339815191526040516146bb90618bcf565b60405180910390a160689e505050505050505050505050505050611da4565b60005b8a811015614a6e578981815181106146f157fe5b602002602001015160ff16600114156147e7576001818154811061471157fe5b9060005260206000209060040201600301546000146147e2576001818154811061473757fe5b600091825260209091206004909102015484516001600160a01b039091169085908e90811061476257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061478f57fe5b906000526020600020906004020160030154838d815181106147ad57fe5b60200260200101818152505060018a8d815181106147c757fe5b602002602001019060ff16908160ff16815250508b6001019b505b614a66565b67016345785d8a0000600182815481106147fd57fe5b90600052602060002090600402016003015410614982576001818154811061482157fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061485257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be4006001838154811061488757fe5b906000526020600020906004020160030154816148a057fe5b06600183815481106148ae57fe5b9060005260206000209060040201600301540390506148d683826162a890919063ffffffff16565b898f815181106148e257fe5b602002602001018181525050600182815481106148fb57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061492c57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061495957fe5b6020908102919091010152614974868263ffffffff6162ea16565b95508d6001019d5050614a66565b6001818154811061498f57fe5b906000526020600020906004020160030154600014614a6657600181815481106149b557fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d815181106149e657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060018181548110614a1357fe5b906000526020600020906004020160030154838d81518110614a3157fe5b60200260200101818152505060008a8d81518110614a4b57fe5b602002602001019060ff16908160ff16815250508b6001019b505b6001016146dd565b5060008415614ce4576002546040516303702b2960e51b815261100491636e056520918891614aa8918e918e918d914201906004016183b8565b6020604051808303818588803b158015614ac157600080fd5b505af193505050508015614af2575060408051601f3d908101601f19168201909252614aef91810190618082565b60015b614c69576040516000815260443d1015614b0e57506000614ba9565b60046000803e60005160e01c6308c379a08114614b2f576000915050614ba9565b60043d036004833e81513d60248201116001600160401b0382111715614b5a57600092505050614ba9565b80830180516001600160401b03811115614b7b576000945050505050614ba9565b8060208301013d8601811115614b9957600095505050505050614ba9565b601f01601f191660405250925050505b80614bb45750614bf6565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614be8919061843d565b60405180910390a250614c64565b3d808015614c20576040519150601f19603f3d011682016040523d82523d6000602084013e614c25565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614c5a919061843d565b60405180910390a2505b614ce4565b8015614cab577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614c9e9190618f97565b60405180910390a1614ce2565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614cd990618567565b60405180910390a25b505b8015614e9a5760005b8751811015614e98576000888281518110614d0457fe5b60200260200101519050600060018281548110614d1d57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614d4e57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614e0a5760018281548110614d8f57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614dde57fe5b906000526020600020906004020160030154604051614dfd9190618f97565b60405180910390a2614e8e565b60018281548110614e1757fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614e6657fe5b906000526020600020906004020160030154604051614e859190618f97565b60405180910390a25b5050600101614ced565b505b8351156150905760005b845181101561508e578a8181518110614eb957fe5b602002602001015160ff1660011415614f58576120026001600160a01b031663092193ab858381518110614ee957fe5b6020026020010151878481518110614efd57fe5b60200260200101516040518363ffffffff1660e01b8152600401614f2191906182aa565b6000604051808303818588803b158015614f3a57600080fd5b505af1158015614f4e573d6000803e3d6000fd5b5050505050615086565b6000858281518110614f6657fe5b60200260200101516001600160a01b03166108fc868481518110614f8657fe5b60200260200101519081150290604051600060405180830381858888f193505050509050801561501c57858281518110614fbc57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614ffa57fe5b602002602001015160405161500f9190618f97565b60405180910390a2615084565b85828151811061502857fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d86848151811061506657fe5b602002602001015160405161507b9190618f97565b60405180910390a25b505b600101614ea4565b505b5050505050505050505050505060005b6001548110156150fd57600181815481106150b757fe5b9060005260206000209060040201600301546000146150f5576000600182815481106150df57fe5b9060005260206000209060040201600301819055505b6001016150a0565b50471561516b577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516151339190618f97565b60405180910390a1604051611002904780156108fc02916000818181858888f19350505050158015615169573d6000803e3d6000fd5b505b60006003819055600555815115615186576151868282615ab9565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156151c357600080fd5b505af11580156151d7573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061521f57fe5b90600052602060002090600402016003015490506000600180805490500390506001615249613080565b511161527e5760006001858154811061525e57fe5b906000526020600020906004020160030181905550600092505050611da4565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516152b79190618f97565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156154a457600181600101815481106152f857fe5b90600052602060002090600402016001828154811061531357fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b8054909183019081106153d457fe5b9060005260206000209060160201600b82815481106153ef57fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615446938386019390821615610100026000190190911604617c3d565b5061545960038281019084016013617cb2565b5090505080600101600460006001848154811061547257fe5b600091825260208083206004909202909101546001600160a01b031683528201929092526040019020556001016152da565b5060018054806154b057fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061550357fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906155356002830182617bd9565b615543600383016000617cdc565b50509055600081838161555257fe5b04905080156155c65760015460005b818110156155c35761559a836001838154811061557a57fe5b9060005260206000209060040201600301546162ea90919063ffffffff16565b600182815481106155a757fe5b6000918252602090912060036004909202010155600101615561565b50505b50600195945050505050565b6060806000808080806155e361318a565b6001549091505b801561581257600181039250600b838154811061560357fe5b600091825260209091206001601690920201015460ff1661562357615809565b6001838154811061563057fe5b60009182526020909120600490910201546001600160a01b03169450615657858484613b6b565b93508361566357615809565b60405163436aa28360e11b81526000908190612002906386d545069061568d908a906004016182aa565b60206040518083038186803b1580156156a557600080fd5b505afa1580156156b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156dd9190617f1a565b90506001600160a01b03811615615766576040516302ceee9160e11b81526120029063059ddd22906157139084906004016182aa565b60206040518083038186803b15801561572b57600080fd5b505afa15801561573f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906157639190617f1a565b91505b60005b8c5181101561580557876001600160a01b03168d828151811061578857fe5b6020026020010151600001516001600160a01b031614806157d15750826001600160a01b03168d82815181106157ba57fe5b6020026020010151600001516001600160a01b0316145b156157fd5760018d82815181106157e457fe5b6020908102919091010151901515608090910152615805565b600101615769565b5050505b600019016155ea565b5060005b895181101561587f5789818151811061582b57fe5b6020026020010151608001518061586b575060006001600160a01b03168a828151811061585457fe5b6020026020010151600001516001600160a01b0316145b15615877578560010195505b600101615816565b50885185106159675760408051600180825281830190925290816020015b6158a5617ba4565b81526020019060019003908161589d575050604080516001808252818301909252919850602082015b60608152602001906001900390816158ce579050509550886000815181106158f257fe5b60200260200101518760008151811061590757fe5b60200260200101819052508760008151811061591f57fe5b60200260200101518660008151811061593457fe5b602002602001018190525060008760008151811061594e57fe5b6020908102919091010151901515608090910152615aac565b848951036040519080825280602002602001820160405280156159a457816020015b615991617ba4565b8152602001906001900390816159895790505b509650848951036040519080825280602002602001820160405280156159de57816020015b60608152602001906001900390816159c95790505b5095506000915060005b8951811015615aaa578981815181106159fd57fe5b602002602001015160800151158015615a40575060006001600160a01b03168a8281518110615a2857fe5b6020026020010151600001516001600160a01b031614155b15615aa257898181518110615a5157fe5b6020026020010151888481518110615a6557fe5b6020026020010181905250888181518110615a7c57fe5b6020026020010151878481518110615a9057fe5b60200260200101819052508260010192505b6001016159e8565b505b50505050505b9250929050565b600154825160005b82811015615bd6576001615ad3617ba4565b60018381548110615ae057fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615baa57878181518110615b7057fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ba25760009250615baa565b600101615b5c565b508115615bcc5780516001600160a01b03166000908152600460205260408120555b5050600101615ac1565b5080821115615c9557805b82811015615c93576001805480615bf457fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615c4757fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615c796002830182617bd9565b615c87600383016000617cdc565b50509055600101615be1565b505b6000818310615ca45781615ca6565b825b905060005b8181101561604a57615d58868281518110615cc257fe5b602002602001015160018381548110615cd757fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a08201526170df565b615f0c578060010160046000888481518110615d7057fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615dac57fe5b602002602001015160018281548110615dc157fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615e7c57fe5b6020026020010151600b8281548110615e9157fe5b90600052602060002090601602016002019080519060200190615eb5929190617ad9565b506000600b8281548110615ec557fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615ef657fe5b6000918252602090912060169091020155616042565b858181518110615f1857fe5b60200260200101516060015160018281548110615f3157fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615ff7858281518110615f7557fe5b6020026020010151600b8381548110615f8a57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156135655780601f1061353a57610100808354040283529160200191613565565b6160425784818151811061600757fe5b6020026020010151600b828154811061601c57fe5b90600052602060002090601602016002019080519060200190616040929190617ad9565b505b600101615cab565b50828211156162225761605b617aaa565b835b8381101561621f5785818151811061607157fe5b60200260200101518260400181905250600187828151811061608f57fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206190a48339815191528101918255858301516000805160206190e48339815191528201805491151560ff19909216919091179055928501518051869492936161c5936000805160206190c483398151915201920190617ad9565b5060608201516161db9060038301906013617b53565b50505080600101600460008984815181106161f257fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161605d565b50505b61622a61713b565b616232617323565b6000600981905560015493505b838110156162a0576000600b828154811061625657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b80548390811061628757fe5b600091825260209091206016909102015560010161623f565b505050505050565b600061113d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617511565b60008282018381101561113d5760405162461bcd60e51b8152600401610e12906186d2565b60015481516040805182815260208084028201019091526060929190839082801561634e57816020015b60608152602001906001900390816163395790505b50600b549091508314616365579250611cf4915050565b60005b8281101561647457600b60016004600089858151811061638457fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106163b857fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156164505780601f1061642557610100808354040283529160200191616450565b820191906000526020600020905b81548152906001019060200180831161643357829003601f168201915b505050505082828151811061646157fe5b6020908102919091010152600101616368565b50949350505050565b60005b828110156165ca57600082878388016040516020016164a092919061829c565b6040516020818303038152906040528051906020012060001c816164c057fe5b069050808501828701146165c157600089838801815181106164de57fe5b60200260200101519050606089848901815181106164f857fe5b602002602001015190508a8388018151811061651057fe5b60200260200101518b858a018151811061652657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061655557fe5b60200260200101906001600160a01b031690816001600160a01b031681525050898388018151811061658357fe5b60200260200101518a858a018151811061659957fe5b6020026020010181905250808a848901815181106165b357fe5b602002602001018190525050505b50600101616480565b5050505050505050565b600980546001908101909155600b8054839081106165ee57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061662457fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b60008160405160200161667f9190618280565b60405160208183030381529060405280519060200120836040516020016166a69190618280565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166e65760009250616724565b600160208701838101602088015b60028483851001141561671f5780518351146167135760009650600093505b602092830192016166f4565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061675757506000199050611cf4565b60018103905060006001828154811061676c57fe5b906000526020600020906004020160030154905060006001838154811061678f57fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d906167e8908590618f97565b60405180910390a28061680057829350505050611cf4565b600081838161680b57fe5b04905080156168a75760005b8481101561685957616830826001838154811061557a57fe5b6001828154811061683d57fe5b6000918252602090912060036004909202010155600101616817565b50600180549085015b818110156168a45761687b836001838154811061557a57fe5b6001828154811061688857fe5b6000918252602090912060036004909202010155600101616862565b50505b5091949350505050565b6000826168c057506000611da4565b828202828482816168cd57fe5b041461113d5760405162461bcd60e51b8152600401610e1290618aa1565b600061113d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061753d565b616935617ceb565b506040805180820190915281518152602082810190820152919050565b61695a617c1d565b61696382617574565b61696c57600080fd5b600061697b83602001516175ae565b60208085015160408051808201909152868152920190820152915050919050565b60006169a6617ceb565b505080518051602091820151919092015191011190565b6169c5617ceb565b6169ce8261699c565b6169d757600080fd5b602082015160006169e782617611565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590616a2057508151602110155b616a2957600080fd5b6000616a3883602001516175ae565b90508083600001511015616a5e5760405162461bcd60e51b8152600401610e1290618caf565b82516020808501518301805192849003929183101561647457506020919091036101000a90049392505050565b6060616a9682617574565b616a9f57600080fd5b6000616aaa836176f2565b9050606081604051908082528060200260200182016040528015616ae857816020015b616ad5617ceb565b815260200190600190039081616acd5790505b5090506000616afa85602001516175ae565b60208601510190506000805b84811015616b5157616b1783617611565b9150604051806040016040528083815260200184815250848281518110616b3a57fe5b602090810291909101015291810191600101616b06565b509195945050505050565b616b64617ba4565b60606000616b70617ba4565b6060616b7a617c1d565b616b8387616952565b90506000805b616b928361699c565b15616c675780616bbd57616bad616ba8846169bd565b61774e565b6001600160a01b03168552616c5f565b8060011415616be557616bd2616ba8846169bd565b6001600160a01b03166020860152616c5f565b8060021415616c0d57616bfa616ba8846169bd565b6001600160a01b03166040860152616c5f565b8060031415616c3957616c22613e80846169bd565b6001600160401b0316606086015260019150616c5f565b8060041415616c5a57616c53616c4e846169bd565b617768565b9350616c5f565b616c67565b600101616b89565b50929791965091945092505050565b6060611da4616c84836177d8565b6178be565b6060815160001415616caa5750604080516000815260208101909152611cf4565b606082600081518110616cb957fe5b602002602001015190506000600190505b8351811015616cfa57616cf082858381518110616ce357fe5b6020026020010151617910565b9150600101616cca565b5061113d616d0d825160c060ff1661798d565b82617910565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616d5357600080fd5b505afa158015616d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616d8b9190618155565b90508085518851011015616da0575083518651015b606081604051908082528060200260200182016040528015616ddc57816020015b616dc9617ba4565b815260200190600190039081616dc15790505b509050606082604051908082528060200260200182016040528015616e1557816020015b6060815260200190600190039081616e005790505b50905060008060005b8b51831080616e2d5750895182105b8015616e3857508581105b156170cd578b51831415616ea857898281518110616e5257fe5b6020026020010151858281518110616e6657fe5b6020026020010181905250888281518110616e7d57fe5b6020026020010151848281518110616e9157fe5b602090810291909101015260019182019101616e1e565b8951821415616f13578b8381518110616ebd57fe5b6020026020010151858281518110616ed157fe5b60200260200101819052508a8381518110616ee857fe5b6020026020010151848281518110616efc57fe5b602090810291909101015260019283019201616e1e565b898281518110616f1f57fe5b6020026020010151606001516001600160401b03168c8481518110616f4057fe5b6020026020010151606001516001600160401b03161115616fbc578b8381518110616f6757fe5b6020026020010151858281518110616f7b57fe5b60200260200101819052508a8381518110616f9257fe5b6020026020010151848281518110616fa657fe5b60200260200101819052508260010192506170c5565b898281518110616fc857fe5b6020026020010151606001516001600160401b03168c8481518110616fe957fe5b6020026020010151606001516001600160401b031610156170655789828151811061701057fe5b602002602001015185828151811061702457fe5b602002602001018190525088828151811061703b57fe5b602002602001015184828151811061704f57fe5b60200260200101819052508160010191506170c5565b89828151811061707157fe5b6020026020010151600001516001600160a01b03168c848151811061709257fe5b6020026020010151600001516001600160a01b031610156170b9578b8381518110616f6757fe5b898281518110616e5257fe5b600101616e1e565b50929a91995090975050505050505050565b805182516000916001600160a01b039182169116148015617119575081602001516001600160a01b031683602001516001600160a01b0316145b801561113d5750506040908101519101516001600160a01b0390811691161490565b6012546013548082111561718657805b8281101561718457601280548061715e57fe5b60019003818190600052602060002001600061717a9190617bd9565b905560010161714b565b505b60008183106171955781617197565b825b905060005b818110156172af57617254601282815481106171b457fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156172425780601f1061721757610100808354040283529160200191617242565b820191906000526020600020905b81548152906001019060200180831161722557829003601f168201915b5050505050601383815481106134d757fe5b6172a7576013818154811061726557fe5b906000526020600020016012828154811061727c57fe5b9060005260206000200190805460018160011615610100020316600290046172a5929190617c3d565b505b60010161719c565b5082821115610e3257825b8281101561731d576012601382815481106172d157fe5b6000918252602080832084546001818101875595855291909320929091018054617314949390920192909160026101009282161592909202600019011604617c3d565b506001016172ba565b50505050565b601354600b548082111561736e57805b8281101561736c57601380548061734657fe5b6001900381819060005260206000200160006173629190617bd9565b9055600101617333565b505b600081831061737d578161737f565b825b905060005b8181101561749e5761743c6013828154811061739c57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561742a5780601f106173ff5761010080835404028352916020019161742a565b820191906000526020600020905b81548152906001019060200180831161740d57829003601f168201915b5050505050600b8381548110615f8a57fe5b61749657600b818154811061744d57fe5b90600052602060002090601602016002016013828154811061746b57fe5b906000526020600020019080546001816001161561010002031660029004617494929190617c3d565b505b600101617384565b5082821115610e3257825b8281101561731d576013600b82815481106174c057fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461750895939094019390926000199082161561010002011604617c3d565b506001016174a9565b600081848411156175355760405162461bcd60e51b8152600401610e12919061843d565b505050900390565b6000818361755e5760405162461bcd60e51b8152600401610e12919061843d565b50600083858161756a57fe5b0495945050505050565b805160009061758557506000611cf4565b6020820151805160001a9060c08210156175a457600092505050611cf4565b5060019392505050565b8051600090811a60808110156175c8576000915050611cf4565b60b88110806175e3575060c081108015906175e3575060f881105b156175f2576001915050611cf4565b60c08110156176065760b519019050611cf4565b60f519019050611cf4565b80516000908190811a608081101561762c57600191506176eb565b60b881101561764157607e19810191506176eb565b60c081101561769257600060b78203600186019550806020036101000a86510491506001810182019350508083101561768c5760405162461bcd60e51b8152600401610e12906189ee565b506176eb565b60f88110156176a75760be19810191506176eb565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156176e95760405162461bcd60e51b8152600401610e12906189ee565b505b5092915050565b805160009061770357506000611cf4565b6000809050600061771784602001516175ae565b602085015185519181019250015b808210156177455761773682617611565b82019150826001019250617725565b50909392505050565b805160009060151461775f57600080fd5b611da482616a0b565b805160609061777657600080fd5b600061778583602001516175ae565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156177bc576020820181803683370190505b5090506000816020019050616474848760200151018285617a5f565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661781c57506018617840565b6fffffffffffffffffffffffffffffffff19841661783c57506010617840565b5060005b60208110156178765781818151811061785557fe5b01602001516001600160f81b0319161561786e57617876565b600101617840565b60008160200390506060816040519080825280601f01601f1916602001820160405280156178ab576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178f05750607f60f81b826000815181106178de57fe5b01602001516001600160f81b03191611155b156178fc575080611cf4565b611da461790e8351608060ff1661798d565b835b6060806040519050835180825260208201818101602087015b81831015617941578051835260209283019201617929565b50855184518101855292509050808201602086015b8183101561796e578051835260209283019201617956565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106179b75760405162461bcd60e51b8152600401610e1290618839565b60408051600180825281830190925260609160208201818036833701905050905060378411617a115782840160f81b816000815181106179f357fe5b60200101906001600160f81b031916908160001a9053509050611da4565b6060617a1c856177d8565b90508381510160370160f81b82600081518110617a3557fe5b60200101906001600160f81b031916908160001a905350617a568282617910565b95945050505050565b80617a6957610e32565b5b60208110617a89578251825260209283019290910190601f1901617a6a565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617ad4617d05565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617b1a57805160ff1916838001178555617b47565b82800160010185558215617b47579182015b82811115617b47578251825591602001919060010190617b2c565b506131c5929150617d24565b8260138101928215617b475791602002820182811115617b47578251825591602001919060010190617b2c565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617bff5750611f0c565b601f016020900490600052602060002090810190611f0c9190617d24565b6040518060400160405280617c30617ceb565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617c765780548555617b47565b82800160010185558215617b4757600052602060002091601f016020900482015b82811115617b47578254825591600101919060010190617c97565b8260138101928215617b475791820182811115617b47578254825591600101919060010190617c97565b50611f0c906013810190617d24565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61316991905b808211156131c55760008155600101617d2a565b8035611da48161906e565b60008083601f840112617d5a578182fd5b5081356001600160401b03811115617d70578182fd5b6020830191508360208083028501011115615ab257600080fd5b6000601f8381840112617d9b578182fd5b8235617dae617da982619023565b618ffd565b818152925060208084019085810160005b84811015617e40578135880189603f820112617dda57600080fd5b838101356001600160401b03811115617df257600080fd5b617e03818901601f19168601618ffd565b81815260408c81848601011115617e1957600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617dbf565b50505050505092915050565b600082601f830112617e5c578081fd5b8135617e6a617da982619023565b818152915060208083019084810181840286018201871015617e8b57600080fd5b6000805b85811015617e405782356001600160401b0381168114617ead578283fd5b85529383019391830191600101617e8f565b60008083601f840112617ed0578182fd5b5081356001600160401b03811115617ee6578182fd5b602083019150836020828501011115615ab257600080fd5b600060208284031215617f0f578081fd5b813561113d8161906e565b600060208284031215617f2b578081fd5b815161113d8161906e565b60008060008060408587031215617f4b578283fd5b84356001600160401b0380821115617f61578485fd5b617f6d88838901617d49565b90965094506020870135915080821115617f85578384fd5b50617f9287828801617d49565b95989497509550505050565b600080600060608486031215617fb2578283fd5b83356001600160401b0380821115617fc8578485fd5b81860187601f820112617fd9578586fd5b80359250617fe9617da984619023565b80848252602080830192508084018b82838902870101111561800957898afd5b8994505b868510156180335761801f8c82617d3e565b84526001949094019392810192810161800d565b50909750880135935050508082111561804a578384fd5b61805687838801617e4c565b9350604086013591508082111561806b578283fd5b5061807886828701617d8a565b9150509250925092565b600060208284031215618093578081fd5b8151801515811461113d578182fd5b600080602083850312156180b4578182fd5b82356001600160401b038111156180c9578283fd5b6180d585828601617ebf565b90969095509350505050565b600080600080604085870312156180f6578384fd5b84356001600160401b038082111561810c578586fd5b61811888838901617ebf565b90965094506020870135915080821115618130578384fd5b50617f9287828801617ebf565b60006020828403121561814e578081fd5b5035919050565b600060208284031215618166578081fd5b5051919050565b6000806040838503121561817f578182fd5b505080516020909101519092909150565b6000806000604084860312156181a4578081fd5b833560ff811681146181b4578182fd5b925060208401356001600160401b038111156181ce578182fd5b6181da86828701617ebf565b9497909650939450505050565b6000815180845260208085019450808401835b8381101561821f5781516001600160a01b0316875295820195908201906001016181fa565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b6000815180845261826c816020860160208601619042565b601f01601f19169290920160200192915050565b60008251618292818460208701619042565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261113d60208301846181e7565b60006040825261835b60408301856181e7565b602083820381850152818551808452828401915082838202850101838801865b838110156183a957601f19878403018552618397838351618254565b9486019492509085019060010161837b565b50909998505050505050505050565b6000608082526183cb60808301876181e7565b828103602084810191909152865180835287820192820190845b81811015618401578451835293830193918301916001016183e5565b5050848103604086015261841581886181e7565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261113d6020830184618254565b60006040825261846460408301868861822a565b828103602084015261847781858761822a565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b6000848252831515602083015260606040830152617a566060830184618254565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260406020830152617a5660408301848661822a565b6040518181016001600160401b038111828210171561901b57600080fd5b604052919050565b60006001600160401b03821115619038578081fd5b5060209081020190565b60005b8381101561905d578181015183820152602001619045565b8381111561731d5750506000910152565b6001600160a01b0381168114611f0c57600080fdfe70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaf87680f873f871949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d791949fb29aac15b9a4b7f17c3385939b007540f4d79164b085e6972fc98cd3c81d64d40e325acfed44365b97a7567a27939c14dbc7512ddcf54cb1284eb637cfa308ae4e00cb5588a164736f6c6343000604000a", + Code: feynman.RialtoValidatorContract, }, { ContractAddr: common.HexToAddress(SlashContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b506004361061035d5760003560e01c80637e434d54116101d3578063c80d4b8f11610104578063df8079e9116100a2578063f9a2bbc71161007c578063f9a2bbc714610601578063fc3e590814610609578063fc4333cd14610611578063fd6a6879146106195761035d565b8063df8079e9146105e9578063e1c7392a146105f1578063f1fad104146105f95761035d565b8063c96be4cb116100de578063c96be4cb146105b3578063cc844b73146105c6578063dc927faf146105d9578063dcc6f156146105e15761035d565b8063c80d4b8f14610590578063c81b166214610598578063c8509d81146105a05761035d565b8063a1a11bf511610171578063aad560631161014b578063aad5606314610565578063ab51bb961461056d578063ac0af62914610575578063ac4317511461057d5761035d565b8063a1a11bf51461054d578063a78abc1614610555578063aa82dce11461055d5761035d565b806396713da9116101ad57806396713da9146105225780639dc092621461052a5780639e89ded8146105325780639f804f5f146105455761035d565b80637e434d54146104ff5780638256ace614610507578063831d65d11461050f5761035d565b8063493279b1116102ad57806362b72cf51161024b578063718a8aa811610225578063718a8aa8146104df57806375d47a0a146104e75780637912a65d146104ef5780637942fd05146104f75761035d565b806362b72cf5146104c75780636e47b482146104cf57806370fd5bad146104d75761035d565b806351b4dce31161028757806351b4dce31461049c57806351e80672146104a4578063567a372d146104ac5780635bfb4990146104b45761035d565b8063493279b1146104775780634bf6c8821461048c57806350055f90146104945761035d565b8063280870281161031a57806337c8dab9116102f457806337c8dab914610431578063389f4f71146104525780633dffc3871461045a57806343756e5c1461046f5761035d565b806328087028146104015780633306ccca1461040957806335aa2e441461041e5761035d565b80630bee7a67146103625780630e2374a5146103805780631182b8751461039557806322d1e80b146103b557806323bac5a2146103ca57806327962118146103ec575b600080fd5b61036a610621565b6040516103779190613d67565b60405180910390f35b610388610626565b6040516103779190613545565b6103a86103a336600461347b565b61062c565b604051610377919061357d565b6103bd610692565b6040516103779190613572565b6103dd6103d8366004613192565b61069b565b60405161037793929190613d4f565b6103ff6103fa3660046132d8565b6106be565b005b610388610a13565b610411610a19565b6040516103779190613d38565b61038861042c36600461344b565b610a1e565b61044461043f366004613192565b610a45565b604051610377929190613d41565b610411610a9c565b610462610aa2565b6040516103779190613d78565b610388610aa7565b61047f610aad565b6040516103779190613d29565b610462610ab3565b610411610ab8565b610388610abe565b610388610ac4565b610411610aca565b6103ff6104c2366004613192565b610ad0565b610411610bdc565b610388610be2565b610462610be8565b610462610bed565b610388610bf2565b610411610bf8565b610462610bfd565b610388610c02565b610444610c08565b6103ff61051d36600461347b565b610c12565b610462610d26565b610388610d2b565b6103ff6105403660046131ca565b610d31565b610411610d60565b610388610d66565b6103bd610d6c565b610388610d75565b610388610d7b565b61036a610d81565b610411610d86565b6103ff61058b36600461332f565b610d8b565b610411611327565b61038861132c565b6103ff6105ae36600461347b565b611332565b6103ff6105c1366004613192565b6113a3565b6103ff6105d4366004613398565b611812565b610388611df0565b610411611df6565b610388611dfb565b6103ff611e01565b610462611e4e565b610388611e53565b610462611e59565b6103ff611e5e565b6103886122a7565b606481565b61200181565b606033612000146106585760405162461bcd60e51b815260040161064f90613bcc565b60405180910390fd5b60005460ff1661067a5760405162461bcd60e51b815260040161064f90613672565b60405162461bcd60e51b815260040161064f90613cbd565b60075460ff1681565b600260208190526000918252604090912080546001820154919092015460ff1683565b60005460ff166106e05760405162461bcd60e51b815260040161064f90613672565b6006546106ed5760146006555b6008546106fa57603c6008555b81511580159061070a5750805115155b6107265760405162461bcd60e51b815260040161064f90613b2a565b60408051600380825260808201909252606091816020015b606081526020019060019003908161073e5790505090506107606102ca6122ad565b8160008151811061076d57fe5b6020026020010181905250610781836122c8565b8160018151811061078e57fe5b60200260200101819052506107a2826122c8565b816002815181106107af57fe5b602002602001018190525060606107c58261231e565b60408051603480825260608281019093529293509091602082018180368337019050509050815160346020830182602086016068600019fa61080657600080fd5b506014810151603482015160405163436aa28360e11b8152600090612002906386d5450690610839908690600401613545565b60206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088991906131ae565b6001600160a01b031614156108b05760405162461bcd60e51b815260040161064f90613642565b43600854820110156108d45760405162461bcd60e51b815260040161064f906135e3565b604051631871f7d960e31b81526120029063c38fbec8906108f9908590600401613545565b600060405180830381600087803b15801561091357600080fd5b505af1158015610927573d6000803e3d6000fd5b50506040516335409f7f60e01b815261100092506335409f7f9150610950908590600401613545565b600060405180830381600087803b15801561096a57600080fd5b505af115801561097e573d6000803e3d6000fd5b50506006546040516309a99b4f60e41b815260646110028031909302049350909150639a99b4f0906109b69033908590600401613559565b602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190613463565b505050505050505050565b61200581565b603c81565b60018181548110610a2b57fe5b6000918252602090912001546001600160a01b0316905081565b600080610a50612f79565b5050506001600160a01b0316600090815260026020818152604092839020835160608101855281548082526001830154938201849052919093015460ff16151592909301919091529091565b60055481565b600181565b61100181565b6102ca81565b600881565b60065481565b61200681565b61200081565b60045481565b3361100014610af15760405162461bcd60e51b815260040161064f906138b5565b60005460ff16610b135760405162461bcd60e51b815260040161064f90613672565b61200063f7a251d7600b610b26846123af565b60006040518463ffffffff1660e01b8152600401610b4693929190613d86565b600060405180830381600087803b158015610b6057600080fd5b505af1925050508015610b71575060015b610bd9573d808015610b9f576040519150601f19603f3d011682016040523d82523d6000602084013e610ba4565b606091505b50816001600160a01b0316600080516020613e63833981519152600083604051610bcf929190613590565b60405180910390a2505b50565b60035481565b61100581565b600281565b601081565b61100881565b600581565b600b81565b61200381565b6004546005549091565b3361200014610c335760405162461bcd60e51b815260040161064f90613bcc565b60005460ff16610c555760405162461bcd60e51b815260040161064f90613672565b610c5d612f9c565b6000610c9e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061247992505050565b915091508015610ce55781516040517f7f0956d47419b9525356e7111652b653b530ec6f5096dccc04589bc38e62996791610cd891613d67565b60405180910390a1610d1e565b81516040517f7d45f62d17443dd4547bca8a8112c60e2385669318dc300ec61a5d2492f262e791610d1591613d67565b60405180910390a15b50505b505050565b600981565b61100781565b3361100014610d525760405162461bcd60e51b815260040161064f906138b5565b610d5c82826124f9565b5050565b60085481565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b600481565b60005460ff16610dad5760405162461bcd60e51b815260040161064f90613672565b3361100714610dce5760405162461bcd60e51b815260040161064f90613a19565b610e3984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260148152731b5a5cd9195b59585b9bdc951a1c995cda1bdb1960621b602082015291506126ac9050565b15610ed45760208114610e5e5760405162461bcd60e51b815260040161064f90613841565b604080516020601f8401819004810282018101909252828152600091610e9c9185858083850183828082843760009201919091525061270692505050565b905060018110158015610eb0575060055481105b610ecc5760405162461bcd60e51b815260040161064f90613b87565b6004556112e4565b610f3a84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600f81526e19995b1bdb9e551a1c995cda1bdb19608a1b602082015291506126ac9050565b15610fd65760208114610f5f5760405162461bcd60e51b815260040161064f90613a67565b604080516020601f8401819004810282018101909252828152600091610f9d9185858083850183828082843760009201919091525061270692505050565b90506103e88111158015610fb2575060045481115b610fce5760405162461bcd60e51b815260040161064f9061372b565b6005556112e4565b61104384848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601681527566656c6f6e79536c617368526577617264526174696f60501b602082015291506126ac9050565b156110dd57602081146110685760405162461bcd60e51b815260040161064f906139a1565b604080516020601f84018190048102820181019092528281526000916110a69185858083850183828082843760009201919091525061270692505050565b9050600a81101580156110b95750606481105b6110d55760405162461bcd60e51b815260040161064f90613aa9565b6006556112e4565b61115184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601881527f656e61626c654d616c6963696f7573566f7465536c6173680000000000000000602082015291506126ac9050565b156111c857602081146111765760405162461bcd60e51b815260040161064f90613760565b604080516020601f84018190048102820181019092528281526111b2919084848083850183828082843760009201919091525061270b92505050565b6007805460ff19169115159190911790556112e4565b61122f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601081526f66656c6f6e79536c61736853636f706560801b602082015291506126ac9050565b156112cc57602081146112545760405162461bcd60e51b815260040161064f90613930565b604080516020601f84018190048102820181019092528281526000916112929185858083850183828082843760009201919091525061270692505050565b905061708081101580156112a85750620d2f0081105b6112c45760405162461bcd60e51b815260040161064f906136a9565b6008556112e4565b60405162461bcd60e51b815260040161064f90613c68565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a8484848460405161131994939291906135b1565b60405180910390a150505050565b600a81565b61100281565b33612000146113535760405162461bcd60e51b815260040161064f90613bcc565b60005460ff166113755760405162461bcd60e51b815260040161064f90613672565b6040517f07db600eebe2ac176be8dcebad61858c245a4961bb32ca2aa3d159b09aa0810e90600090a1505050565b3341146113c25760405162461bcd60e51b815260040161064f90613c1b565b60005460ff166113e45760405162461bcd60e51b815260040161064f90613672565b60035443116114055760405162461bcd60e51b815260040161064f90613cf4565b3a156114235760405162461bcd60e51b815260040161064f90613973565b60405163155853f360e21b8152611000906355614fcc90611448908490600401613545565b60206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149891906132b8565b6114a15761180b565b6114a9612f79565b506001600160a01b0381166000908152600260208181526040928390208351606081018552815481526001820154928101929092529091015460ff16158015928201929092529061150457602081018051600101905261155d565b60016040820181905260208201819052805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0384161790555b43815260055460208201518161156f57fe5b0661173957600060208201526040516335409f7f60e01b8152611000906335409f7f906115a0908590600401613545565b600060405180830381600087803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505060405163436aa28360e11b81526000925061200291506386d54506906115fa908690600401613545565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a91906131ae565b6001600160a01b03161461166b576116668282602001516124f9565b611734565b61200063f7a251d7600b61167e856123af565b60006040518463ffffffff1660e01b815260040161169e93929190613d86565b600060405180830381600087803b1580156116b857600080fd5b505af19250505080156116c9575060015b611734573d8080156116f7576040519150601f19603f3d011682016040523d82523d6000602084013e6116fc565b606091505b50826001600160a01b0316600080516020613e6383398151915283602001518360405161172a929190613590565b60405180910390a2505b6117a5565b60045481602001518161174857fe5b066117a5576040516375abf10160e11b81526110009063eb57e20290611772908590600401613545565b600060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050505b6001600160a01b0382166000818152600260208181526040808420865181559186015160018301558581015191909201805460ff1916911515919091179055517fddb6012116e51abf5436d956a4f0ebd927e92c576ff96d7918290c8782291e3e9190a2505b5043600355565b60005460ff166118345760405162461bcd60e51b815260040161064f90613672565b60075460ff166118565760405162461bcd60e51b815260040161064f9061360d565b6006546118635760146006555b60085461187057603c6008555b60085481516040015143910111801561189457504360085482602001516040015101115b6118b05760405162461bcd60e51b815260040161064f90613c8f565b8060200151602001518160000151602001511480156118de5750806020015160600151816000015160600151145b156118fb5760405162461bcd60e51b815260040161064f90613888565b80516040810151905110801561191a5750602081015160408101519051105b6119365760405162461bcd60e51b815260040161064f9061380a565b60208101515181515110801561195b5750806000015160400151816020015160400151105b8061198657508051516020820151511080156119865750806020015160400151816000015160400151105b806119a05750806020015160400151816000015160400151145b6119bc5760405162461bcd60e51b815260040161064f906136f4565b604080820151905163ea321e4960e01b81526110009163ea321e49916119e5919060040161357d565b60206040518083038186803b1580156119fd57600080fd5b505afa158015611a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3591906132b8565b611a515760405162461bcd60e51b815260040161064f906139ea565b611a6381600001518260400151612733565b8015611a7c5750611a7c81602001518260400151612733565b611a985760405162461bcd60e51b815260040161064f906137ab565b6060806110006001600160a01b0316633b071dcc6040518163ffffffff1660e01b815260040160006040518083038186803b158015611ad657600080fd5b505afa158015611aea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b1291908101906131f5565b9150915060005b8151811015611c4f57611b43828281518110611b3157fe5b6020026020010151856040015161290b565b15611c47576006546040516309a99b4f60e41b815260646110028031909302049190639a99b4f090611b7b9033908590600401613559565b602060405180830381600087803b158015611b9557600080fd5b505af1158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190613463565b506110006001600160a01b03166335409f7f858481518110611beb57fe5b60200260200101516040518263ffffffff1660e01b8152600401611c0f9190613545565b600060405180830381600087803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b5050505050611c4f565b600101611b19565b5060408084015190516317b4f35360e01b8152600091612002916317b4f35391611c7b9160040161357d565b60206040518083038186803b158015611c9357600080fd5b505afa158015611ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccb91906131ae565b6001600160a01b031614611d39576040808401519051630e9fbf5160e01b815261200291630e9fbf5191611d02919060040161357d565b600060405180830381600087803b158015611d1c57600080fd5b505af1158015611d30573d6000803e3d6000fd5b50505050610d21565b6120006001600160a01b031663f7a251d7600b611d59866040015161296f565b60006040518463ffffffff1660e01b8152600401611d7993929190613d86565b600060405180830381600087803b158015611d9357600080fd5b505af1158015611da7573d6000803e3d6000fd5b505050506000611dbc846040015160006129aa565b60405190915081907f7b78aadacff901d8b63d0dba4f86283d4db8aef27f9ed70413dd860f1c9532b690600090a250505050565b61100381565b601481565b61200481565b60005460ff1615611e245760405162461bcd60e51b815260040161064f90613af3565b60056004819055600a905560078054600160ff199182168117909255600080549091169091179055565b601181565b61100081565b600381565b3361100014611e7f5760405162461bcd60e51b815260040161064f906138b5565b60005460ff16611ea15760405162461bcd60e51b815260040161064f90613672565b600154611ead576122a5565b600154600090600019015b808211612279576000805b82841015611fdc57611ed3612f79565b6002600060018781548110611ee457fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff161515908201526005549091506004900481602001511115611fc657600460055481611f5157fe5b04816020015103816020018181525050806002600060018881548110611f7357fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208351815591830151600183015591909101516002909101805460ff1916911515919091179055611fd0565b6001925050611fdc565b50836001019350611ec3565b82841161217357611feb612f79565b6002600060018681548110611ffc57fe5b60009182526020808320909101546001600160a01b0316835282810193909352604091820190208151606081018352815481526001820154938101939093526002015460ff1615159082015260055490915060049004816020015111156120e45760046005548161206957fe5b0481602001510381602001818152505080600260006001878154811061208b57fe5b6000918252602080832091909101546001600160a01b03168352828101939093526040918201902083518155918301516001808401919091559201516002909101805460ff191691151591909117905591506121739050565b60026000600186815481106120f557fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff1916905580548061213957fe5b600082815260209020810160001990810180546001600160a01b0319169055019055836121665750612173565b5060001990920191611fdc565b81801561217d5750805b1561225c57600260006001868154811061219357fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120818155600181810192909255600201805460ff191690558054849081106121da57fe5b600091825260209091200154600180546001600160a01b03909216918690811061220057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180548061223957fe5b600082815260209020810160001990810180546001600160a01b03191690550190555b82612268575050612279565b505060019091019060001901611eb8565b6040517fcfdb3b6ccaeccbdc68be3c59c840e3b3c90f0a7c491f5fff1cf56cfda200dd9c90600090a150505b565b61100481565b60606122c06122bb836129c6565b6122c8565b90505b919050565b6060815160011480156122fa5750607f60f81b826000815181106122e857fe5b01602001516001600160f81b03191611155b156123065750806122c3565b6122c06123188351608060ff16612aac565b83612b7e565b606081516000141561233f57506040805160008152602081019091526122c3565b60608260008151811061234e57fe5b602002602001015190506000600190505b835181101561238f576123858285838151811061237857fe5b6020026020010151612b7e565b915060010161235f565b506123a86123a2825160c060ff16612aac565b82612b7e565b9392505050565b60408051600480825260a08201909252606091829190816020015b60608152602001906001900390816123ca5790505090506123f3836001600160a01b0316612bfb565b8160008151811061240057fe5b6020026020010181905250612414436122ad565b8160018151811061242157fe5b60209081029190910101526124376102ca6122ad565b8160028151811061244457fe5b6020026020010181905250612458426122ad565b8160038151811061246557fe5b60200260200101819052506123a88161231e565b612481612f9c565b600061248b612f9c565b612493612fae565b6124a461249f86612c1e565b612c43565b90506000805b6124b383612c8d565b156124ec57806124df576124ce6124c984612cae565b612cfc565b63ffffffff168452600191506124e4565b6124ec565b6001016124aa565b5091935090915050915091565b6040516375cc7d8960e01b8152612002906375cc7d899061251e908590600401613545565b600060405180830381600087803b15801561253857600080fd5b505af1925050508015612549575060015b610d5c576040516000815260443d101561256557506000612602565b60046000803e60005160e01c6308c379a08114612586576000915050612602565b60043d036004833e81513d602482011167ffffffffffffffff821117156125b257600092505050612602565b808301805167ffffffffffffffff8111156125d4576000945050505050612602565b8060208301013d86018111156125f257600095505050505050612602565b601f01601f191660405250925050505b8061260d5750612644565b826001600160a01b0316600080516020613e638339815191528383604051612636929190613590565b60405180910390a2506126a7565b3d80801561266e576040519150601f19603f3d011682016040523d82523d6000602084013e612673565b606091505b50826001600160a01b0316600080516020613e63833981519152838360405161269d929190613590565b60405180910390a2505b610d5c565b6000816040516020016126bf9190613529565b60405160208183030381529060405280519060200120836040516020016126e69190613529565b604051602081830303815290604052805190602001201490505b92915050565b015190565b8082015160009060ff81161561272557600191508161272b565b60009150815b505092915050565b60408051600480825260a0820190925260009160609190816020015b606081526020019060019003908161274f57505060408051602080825281830190925291925060609190808201818036833701905050905061279485600001516122ad565b826000815181106127a157fe5b60200260200101819052506127bc6020866020015183612d7e565b6127c5816122c8565b826001815181106127d257fe5b60200260200101819052506127ea85604001516122ad565b826002815181106127f757fe5b60200260200101819052506128126020866060015183612d7e565b61281b816122c8565b8260038151811061282857fe5b602002602001018190525061284e60206128418461231e565b8051906020012083612d7e565b6040805160b080825260e0820190925260609160208201818036833701905050905061287e818360006020612d8e565b61289081876080015160206060612d8e565b61289e818660806030612d8e565b604080516001808252818301909252606091602082018180368337019050509050815160016020830182602086016066600019fa6128db57600080fd5b5060016128e9826000612de1565b60ff16146128fe576000945050505050612700565b5060019695505050505050565b8151815160009160019181148083146129275760009250612965565b600160208701838101602088015b6002848385100114156129605780518351146129545760009650600093505b60209283019201612935565b505050505b5090949350505050565b60408051600480825260a08201909252606091829190816020015b606081526020019060019003908161298a5790505090506123f3836122c8565b600081602001835110156129bd57600080fd5b50016020015190565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416612a0a57506018612a2e565b6fffffffffffffffffffffffffffffffff198416612a2a57506010612a2e565b5060005b6020811015612a6457818181518110612a4357fe5b01602001516001600160f81b03191615612a5c57612a64565b600101612a2e565b60008160200390506060816040519080825280601f01601f191660200182016040528015612a99576020820181803683370190505b5080830196909652508452509192915050565b6060680100000000000000008310612ad65760405162461bcd60e51b815260040161064f906137e2565b60408051600180825281830190925260609160208201818036833701905050905060378411612b305782840160f81b81600081518110612b1257fe5b60200101906001600160f81b031916908160001a9053509050612700565b6060612b3b856129c6565b90508381510160370160f81b82600081518110612b5457fe5b60200101906001600160f81b031916908160001a905350612b758282612b7e565b95945050505050565b6060806040519050835180825260208201818101602087015b81831015612baf578051835260209283019201612b97565b50855184518101855292509050808201602086015b81831015612bdc578051835260209283019201612bc4565b508651929092011591909101601f01601f191660405250905092915050565b60408051600560a21b83186014820152603481019091526060906123a8816122c8565b612c26612fce565b506040805180820190915281518152602082810190820152919050565b612c4b612fae565b612c5482612dfd565b612c5d57600080fd5b6000612c6c8360200151612e37565b60208085015160408051808201909152868152920190820152915050919050565b6000612c97612fce565b505080518051602091820151919092015191011190565b612cb6612fce565b612cbf82612c8d565b612cc857600080fd5b60208201516000612cd882612e9a565b80830160209586015260408051808201909152908152938401919091525090919050565b805160009015801590612d1157508151602110155b612d1a57600080fd5b6000612d298360200151612e37565b90508083600001511015612d4f5760405162461bcd60e51b815260040161064f90613b50565b825160208085015183018051928490039291831015612d7557826020036101000a820491505b50949350505050565b9091018181526020918201910152565b60005b81811015610d1e57838181518110612da557fe5b602001015160f81c60f81b858480600101955081518110612dc257fe5b60200101906001600160f81b031916908160001a905350600101612d91565b60008160010183511015612df457600080fd5b50016001015190565b8051600090612e0e575060006122c3565b6020820151805160001a9060c0821015612e2d576000925050506122c3565b5060019392505050565b8051600090811a6080811015612e515760009150506122c3565b60b8811080612e6c575060c08110801590612e6c575060f881105b15612e7b5760019150506122c3565b60c0811015612e8f5760b5190190506122c3565b60f5190190506122c3565b80516000908190811a6080811015612eb55760019150612f72565b60b8811015612eca57607e1981019150612f72565b60c0811015612f1b57600060b78203600186019550806020036101000a865104915060018101820193505080831015612f155760405162461bcd60e51b815260040161064f90613905565b50612f72565b60f8811015612f305760be1981019150612f72565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561272b5760405162461bcd60e51b815260040161064f90613905565b5092915050565b604051806060016040528060008152602001600081526020016000151581525090565b60408051602081019091526000815290565b6040518060400160405280612fc1612fce565b8152602001600081525090565b604051806040016040528060008152602001600081525090565b600082601f830112612ff8578081fd5b815161300b61300682613dd9565b613db2565b818152915060208083019084810160005b84811015613081578151870188603f82011261303757600080fd5b8381015161304761300682613df9565b81815260408b8184860101111561305d57600080fd5b61306c83888401838701613e1d565b5086525050928201929082019060010161301c565b505050505092915050565b60008083601f84011261309d578182fd5b50813567ffffffffffffffff8111156130b4578182fd5b6020830191508360208285010111156130cc57600080fd5b9250929050565b600082601f8301126130e3578081fd5b81356130f161300682613df9565b915080825283602082850101111561310857600080fd5b8060208401602084013760009082016020015292915050565b600060a08284031215613132578081fd5b61313c60a0613db2565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561317a57600080fd5b613186848285016130d3565b60808301525092915050565b6000602082840312156131a3578081fd5b81356123a881613e4d565b6000602082840312156131bf578081fd5b81516123a881613e4d565b600080604083850312156131dc578081fd5b82356131e781613e4d565b946020939093013593505050565b60008060408385031215613207578182fd5b825167ffffffffffffffff8082111561321e578384fd5b81850186601f82011261322f578485fd5b8051925061323f61300684613dd9565b80848252602080830192508084018a82838902870101111561325f578889fd5b8894505b8685101561328a57805161327681613e4d565b845260019490940193928101928101613263565b5088015190965093505050808211156132a1578283fd5b506132ae85828601612fe8565b9150509250929050565b6000602082840312156132c9578081fd5b815180151581146123a8578182fd5b600080604083850312156132ea578182fd5b823567ffffffffffffffff80821115613301578384fd5b61330d868387016130d3565b93506020850135915080821115613322578283fd5b506132ae858286016130d3565b60008060008060408587031215613344578182fd5b843567ffffffffffffffff8082111561335b578384fd5b6133678883890161308c565b9096509450602087013591508082111561337f578384fd5b5061338c8782880161308c565b95989497509550505050565b6000602082840312156133a9578081fd5b813567ffffffffffffffff808211156133c0578283fd5b818401606081870312156133d2578384fd5b6133dc6060613db2565b92508035828111156133ec578485fd5b6133f887828401613121565b84525060208101358281111561340c578485fd5b61341887828401613121565b60208501525060408101358281111561342f578485fd5b61343b878284016130d3565b6040850152509195945050505050565b60006020828403121561345c578081fd5b5035919050565b600060208284031215613474578081fd5b5051919050565b60008060006040848603121561348f578081fd5b833560ff8116811461349f578182fd5b9250602084013567ffffffffffffffff8111156134ba578182fd5b6134c68682870161308c565b9497909650939450505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452613515816020860160208601613e1d565b601f01601f19169290920160200192915050565b6000825161353b818460208701613e1d565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602082526123a860208301846134fd565b6000838252604060208301526135a960408301846134fd565b949350505050565b6000604082526135c56040830186886134d3565b82810360208401526135d88185876134d3565b979650505050505050565b60208082526010908201526f195d9a59195b98d9481d1bdbc81bdb1960821b604082015260600190565b6020808252818101527f6d616c6963696f757320766f746520736c617368206e6f7420656e61626c6564604082015260600190565b6020808252601690820152751d985b1a59185d1bdc881b9bdd081b5a59dc985d195960521b604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252602b908201527f746865206d616c6963696f757320766f746520736c6173682073636f7065206f60408201526a7574206f662072616e676560a81b606082015260800190565b6020808252601a908201527f6e6f2076696f6c6174696f6e206f6620766f74652072756c6573000000000000604082015260600190565b6020808252818101527f7468652066656c6f6e795468726573686f6c64206f7574206f662072616e6765604082015260600190565b6020808252602b908201527f6c656e677468206f6620656e61626c654d616c6963696f7573566f7465536c6160408201526a0e6d040dad2e6dac2e8c6d60ab1b606082015260800190565b60208082526017908201527f766572696679207369676e6174757265206661696c6564000000000000000000604082015260600190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526019908201527f7372634e756d20626967676572207468616e207461724e756d00000000000000604082015260600190565b60208082526027908201527f6c656e677468206f66206d697364656d65616e6f725468726573686f6c64206d6040820152660d2e6dac2e8c6d60cb1b606082015260800190565b60208082526013908201527274776f206964656e746963616c20766f74657360681b604082015260600190565b60208082526030908201527f746865206d6573736167652073656e646572206d7573742062652076616c696460408201526f185d1bdc94d95d0818dbdb9d1c9858dd60821b606082015260800190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f6c656e677468206f662066656c6f6e79536c61736853636f7065206d69736d616040820152620e8c6d60eb1b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b60208082526029908201527f6c656e677468206f662066656c6f6e79536c617368526577617264526174696f604082015268040dad2e6dac2e8c6d60bb1b606082015260800190565b6020808252601590820152741d9bdd195059191c881a5cc81b9bdd08199bdd5b99605a1b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526022908201527f6c656e677468206f662066656c6f6e795468726573686f6c64206d69736d61746040820152610c6d60f31b606082015260800190565b6020808252602a908201527f7468652066656c6f6e7920736c6173682072657761726420726174696f206f7560408201526974206f662072616e676560b01b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b6020808252600c908201526b32b6b83a3c903432b0b232b960a11b604082015260600190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526025908201527f746865206d697364656d65616e6f725468726573686f6c64206f7574206f662060408201526472616e676560d81b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b6020808252601490820152731d185c99d95d08189b1bd8dac81d1bdbc81bdb1960621b604082015260600190565b6020808252601e908201527f7265636569766520756e65787065637465642073796e207061636b6167650000604082015260600190565b6020808252818101527f63616e206e6f7420736c61736820747769636520696e206f6e6520626c6f636b604082015260600190565b61ffff91909116815260200190565b90815260200190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff8516825260606020830152613da260608301856134fd565b9050826040830152949350505050565b60405181810167ffffffffffffffff81118282101715613dd157600080fd5b604052919050565b600067ffffffffffffffff821115613def578081fd5b5060209081020190565b600067ffffffffffffffff821115613e0f578081fd5b50601f01601f191660200190565b60005b83811015613e38578181015183820152602001613e20565b83811115613e47576000848401525b50505050565b6001600160a01b0381168114610bd957600080fdfed7bc86ff5d08c8ab043edec743302aba2520e6635172a428bc956721db9e2d1ca164736f6c6343000604000a", + Code: feynman.RialtoSlashContract, }, { ContractAddr: common.HexToAddress(TokenHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106104405760003560e01c80639509b98011610234578063c81b16621161012e578063ebf71d53116100b6578063fb063e8f1161007a578063fb063e8f146110d3578063fc1a598f146110e8578063fc3e590814610cca578063fd6a68791461111b578063ff9c0027146108a057610488565b8063ebf71d531461106a578063f01484721461107f578063f1fad10414611094578063f9a2bbc7146110a9578063fa9e9159146110be57610488565b8063dc927faf116100fd578063dc927faf14610fce578063df8079e914610fe3578063e04c83a714610ff8578063e1c7392a14611022578063e8f35cea1461103757610488565b8063c81b166214610ef9578063c8509d8114610f0e578063cf41984414610f93578063d9e6dae91461080d57610488565b8063aa7415f5116101bc578063b99328c511610180578063b99328c514610e30578063b9fd21e314610e69578063ba35ead614610e7e578063bbface1f14610e93578063bd46646114610ec657610488565b8063aa7415f514610cdf578063aa82dce114610d26578063aad5606314610d3b578063ab51bb9614610d50578063ac43175114610d6557610488565b80639dc09262116102035780639dc0926214610c76578063a1a11bf514610c8b578063a496fba214610ca0578063a78abc1614610cb5578063a7c9f02d14610cca57610488565b80639509b98014610bda57806396713da914610c135780639a854bbd14610c285780639a99b4f014610c3d57610488565b806359b9278911610345578063727be1f8116102cd578063831d65d111610291578063831d65d114610ac85780638525db0314610b4d5780638b87b21f146107625780638eff336c14610b8657806393ab703f14610bc557610488565b8063727be1f814610a2057806375d47a0a14610a4a5780637942fd0514610a5f578063799758b914610a745780637e434d5414610ab357610488565b80636e056520116103145780636e056520146108b55780636e47b482146109e157806370fd5bad146108a0578063718a8aa8146109f657806371d3086314610a0b57610488565b806359b92789146108615780635d499b1b1461088b578063613684751461080d57806366dea52a146108a057610488565b80633fd8b02f116103c85780634a3acdf4116103975780634a3acdf4146107f85780634bf6c8821461080d57806350432d321461082257806351b4dce31461083757806351e806721461084c57610488565b80633fd8b02f1461078d57806343756e5c146107a257806343a368b9146107b7578063493279b1146107cc57610488565b8063149d14d91161040f578063149d14d91461062157806328087028146106485780632ae454831461065d5780633d713223146106b15780633dffc3871461076257610488565b80630bee7a671461048d5780630e2374a5146104bb5780631182b875146104ec57806312234582146105e657610488565b36610488573415610486576040805133815234602082015281517f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db929181900390910190a15b005b600080fd5b34801561049957600080fd5b506104a2611130565b6040805163ffffffff9092168252519081900360200190f35b3480156104c757600080fd5b506104d0611135565b604080516001600160a01b039092168252519081900360200190f35b3480156104f857600080fd5b506105716004803603604081101561050f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561053357600080fd5b82018360208201111561054557600080fd5b803590602001918460018302840111600160201b8311171561056657600080fd5b50909250905061113b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105ab578181015183820152602001610593565b50505050905090810190601f1680156105d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105f257600080fd5b506104866004803603604081101561060957600080fd5b506001600160a01b0381358116916020013516611269565b34801561062d57600080fd5b50610636611363565b60408051918252519081900360200190f35b34801561065457600080fd5b506104d0611369565b34801561066957600080fd5b506106986004803603604081101561068057600080fd5b506001600160a01b038135811691602001351661136f565b6040805192835260208301919091528051918290030190f35b3480156106bd57600080fd5b506104d0600480360360208110156106d457600080fd5b810190602081018135600160201b8111156106ee57600080fd5b82018360208201111561070057600080fd5b803590602001918460018302840111600160201b8311171561072157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611393945050505050565b34801561076e57600080fd5b506107776113b7565b6040805160ff9092168252519081900360200190f35b34801561079957600080fd5b506106366113bc565b3480156107ae57600080fd5b506104d06113c2565b3480156107c357600080fd5b506106366113c8565b3480156107d857600080fd5b506107e16113d4565b6040805161ffff9092168252519081900360200190f35b34801561080457600080fd5b506106366113da565b34801561081957600080fd5b506107776113e0565b34801561082e57600080fd5b506106366113e5565b34801561084357600080fd5b506104d06113f0565b34801561085857600080fd5b506104d06113f6565b34801561086d57600080fd5b506104d06004803603602081101561088457600080fd5b50356113fc565b34801561089757600080fd5b50610636611417565b3480156108ac57600080fd5b50610777611420565b6109cd600480360360808110156108cb57600080fd5b810190602081018135600160201b8111156108e557600080fd5b8201836020820111156108f757600080fd5b803590602001918460208302840111600160201b8311171561091857600080fd5b919390929091602081019035600160201b81111561093557600080fd5b82018360208201111561094757600080fd5b803590602001918460208302840111600160201b8311171561096857600080fd5b919390929091602081019035600160201b81111561098557600080fd5b82018360208201111561099757600080fd5b803590602001918460208302840111600160201b831117156109b857600080fd5b91935091503567ffffffffffffffff16611425565b604080519115158252519081900360200190f35b3480156109ed57600080fd5b506104d06118fa565b348015610a0257600080fd5b50610777611900565b348015610a1757600080fd5b50610636611905565b348015610a2c57600080fd5b506109cd60048036036020811015610a4357600080fd5b503561190b565b348015610a5657600080fd5b506104d061198c565b348015610a6b57600080fd5b50610777611992565b348015610a8057600080fd5b5061048660048036036060811015610a9757600080fd5b508035906001600160a01b036020820135169060400135611997565b348015610abf57600080fd5b506104d0611c47565b348015610ad457600080fd5b5061048660048036036040811015610aeb57600080fd5b60ff8235169190810190604081016020820135600160201b811115610b0f57600080fd5b820183602082011115610b2157600080fd5b803590602001918460018302840111600160201b83111715610b4257600080fd5b509092509050611c4d565b348015610b5957600080fd5b5061048660048036036040811015610b7057600080fd5b50803590602001356001600160a01b0316611d95565b348015610b9257600080fd5b5061048660048036036060811015610ba957600080fd5b508035906001600160a01b036020820135169060400135611efe565b348015610bd157600080fd5b50610636611f84565b348015610be657600080fd5b5061048660048036036040811015610bfd57600080fd5b506001600160a01b038135169060200135611f89565b348015610c1f57600080fd5b50610777612146565b348015610c3457600080fd5b5061063661214b565b348015610c4957600080fd5b5061063660048036036040811015610c6057600080fd5b506001600160a01b038135169060200135612157565b348015610c8257600080fd5b506104d0612295565b348015610c9757600080fd5b506104d061229b565b348015610cac57600080fd5b506107776122a1565b348015610cc157600080fd5b506109cd6122a6565b348015610cd657600080fd5b506107776122af565b6109cd60048036036080811015610cf557600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060013567ffffffffffffffff166122b4565b348015610d3257600080fd5b506104d0612334565b348015610d4757600080fd5b506104d061233a565b348015610d5c57600080fd5b506104a26122a1565b348015610d7157600080fd5b5061048660048036036040811015610d8857600080fd5b810190602081018135600160201b811115610da257600080fd5b820183602082011115610db457600080fd5b803590602001918460018302840111600160201b83111715610dd557600080fd5b919390929091602081019035600160201b811115610df257600080fd5b820183602082011115610e0457600080fd5b803590602001918460018302840111600160201b83111715610e2557600080fd5b509092509050612340565b348015610e3c57600080fd5b5061048660048036036040811015610e5357600080fd5b50803590602001356001600160a01b03166127e8565b348015610e7557600080fd5b50610636612868565b348015610e8a57600080fd5b50610636612872565b348015610e9f57600080fd5b5061063660048036036020811015610eb657600080fd5b50356001600160a01b0316612878565b348015610ed257600080fd5b5061063660048036036020811015610ee957600080fd5b50356001600160a01b031661288a565b348015610f0557600080fd5b506104d06128a5565b348015610f1a57600080fd5b5061048660048036036040811015610f3157600080fd5b60ff8235169190810190604081016020820135600160201b811115610f5557600080fd5b820183602082011115610f6757600080fd5b803590602001918460018302840111600160201b83111715610f8857600080fd5b5090925090506128ab565b348015610f9f57600080fd5b5061048660048036036040811015610fb657600080fd5b506001600160a01b038135811691602001351661297b565b348015610fda57600080fd5b506104d0612c4f565b348015610fef57600080fd5b506104d0612c55565b34801561100457600080fd5b506109cd6004803603602081101561101b57600080fd5b5035612c5b565b34801561102e57600080fd5b50610486612cfb565b34801561104357600080fd5b506106366004803603602081101561105a57600080fd5b50356001600160a01b0316612d9b565b34801561107657600080fd5b50610777612dad565b34801561108b57600080fd5b50610777612db2565b3480156110a057600080fd5b50610777612db7565b3480156110b557600080fd5b506104d0612dbc565b3480156110ca57600080fd5b50610636612dc2565b3480156110df57600080fd5b50610636612dc8565b3480156110f457600080fd5b506105716004803603602081101561110b57600080fd5b50356001600160a01b0316612dd6565b34801561112757600080fd5b506104d0612efd565b606481565b61200181565b60005460609060ff16611183576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b33612000146111c35760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b60ff8416600214156112155761120e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f0392505050565b9050611262565b6040805162461bcd60e51b815260206004820152601860248201527f756e7265636f676e697a65642073796e207061636b6167650000000000000000604482015290519081900360640190fd5b9392505050565b33612000146112a95760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b6001600160a01b0380831660009081526007602090815260408083209385168352929052208054611314576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b0380861692908716917f152fb15aa5d80f843e1e4bd5f2fc9161714f169945024decec7e84fb910fdd519181900360200190a350505050565b60015490565b61200581565b60076020908152600092835260408084209091529082529020805460019091015482565b6020818101516000908152600490915260409020546001600160a01b03165b919050565b600181565b60055481565b61100181565b670de0b6b3a764000081565b6102ca81565b61a8c081565b600881565b66071afd498d000081565b61200681565b61200081565b6000908152600460205260409020546001600160a01b031690565b6402540be40081565b600281565b6000805460ff1661146b576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b8685146114a95760405162461bcd60e51b815260040180806020018281038252603b815260200180615354603b913960400191505060405180910390fd5b8683146114e75760405162461bcd60e51b815260040180806020018281038252603f815260200180615266603f913960400191505060405180910390fd5b426078018267ffffffffffffffff1610156115335760405162461bcd60e51b81526004018080602001828103825260248152602001806151e26024913960400191505060405180910390fd5b6402540be4003406156115775760405162461bcd60e51b81526004018080602001828103825260408152602001806154576040913960400191505060405180910390fd5b604080518681526020808802820101909152859060009081906060908480156115aa578160200160208202803683370190505b50905060005b84811015611685576402540be4008b8b838181106115ca57fe5b90506020020135816115d857fe5b06156116155760405162461bcd60e51b815260040180806020018281038252603c8152602001806152a5603c913960400191505060405180910390fd5b61163a8b8b8381811061162457fe5b905060200201358561302790919063ffffffff16565b93506116666402540be4008c8c8481811061165157fe5b9050602002013561308190919063ffffffff16565b82828151811061167257fe5b60209081029190910101526001016115b0565b506001546116aa9061169d908663ffffffff6130c316565b849063ffffffff61302716565b3410156116e85760405162461bcd60e51b81526004018080602001828103825260568152602001806154016056913960600191505060405180910390fd5b6116f8348463ffffffff61311c16565b9150611702615020565b6040518060c001604052806221272160e91b60001b815260200160006001600160a01b031681526020018381526020018e8e808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506040805160208c810282810182019093528c82529283019290918d918d91829185019084908082843760009201919091525050509082525067ffffffffffffffff8916602090910152905061200063f7a251d760036117c68461315e565b6117db876402540be40063ffffffff61308116565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b83811015611839578181015183820152602001611821565b50505050905090810190601f1680156118665780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188757600080fd5b505af115801561189b573d6000803e3d6000fd5b505060408051600081523360208201528082018890526060810187905290517f74eab09b0e53aefc23f2e1b16da593f95c2dd49c6f5a23720463d10d9c330b2a9350908190036080019150a15060019c9b505050505050505050505050565b61100581565b601081565b60015481565b6000336120011461194d5760405162461bcd60e51b815260040180806020018281038252603381526020018061513a6033913960400191505060405180910390fd5b8115611984576040516120019083156108fc029084906000818181858888f19350505050158015611982573d6000803e3d6000fd5b505b506001919050565b61100881565b600b81565b60005460ff166119dc576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b3361300014611a1c5760405162461bcd60e51b815260040180806020018281038252602b81526020018061523b602b913960400191505060405180910390fd5b677ce66c50e2840000811115611a635760405162461bcd60e51b81526004018080602001828103825260358152602001806152066035913960400191505060405180910390fd5b60006221272160e91b8414611bcd576000848152600460205260409020546001600160a01b031680611ad6576040805184815290516001600160a01b0386169187917fc16ee9013bf67c846d37735983debb0acc5b2d1419cb5931c9843ad4689505499181900360200190a35050611c42565b6001600160a01b038116600090815260026020526040902054611af98482613419565b604080516370a0823160e01b8152306004820152905191945084916001600160a01b038516916370a08231916024808301926020929190829003018186803b158015611b4457600080fd5b505afa158015611b58573d6000803e3d6000fd5b505050506040513d6020811015611b6e57600080fd5b50511015611bba576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b611bc686838588613459565b5050611c40565b611be2826402540be40063ffffffff6130c316565b905080471015611c30576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6000611c3e85828487613459565b505b505b505050565b61200381565b60005460ff16611c92576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b3361200014611cd25760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b60ff831660031415611d2257611d1d82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134f192505050565b611c42565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f38902101605838383604051808460ff1660ff168152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b3361300014611dd55760405162461bcd60e51b815260040180806020018281038252602b81526020018061523b602b913960400191505060405180910390fd5b60006221272160e91b8314611e4057506000828152600460205260409020546001600160a01b031680611e40576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081cde5b589bdb60921b604482015290519081900360640190fd5b6001600160a01b0380821660009081526007602090815260408083209386168352929052208054611eab576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8054600082556040805182815290516001600160a01b03808716929086169188917f8041a9a8704332594e2884f5e0f942281cdd7611854c365b4d0aa70b2295d6b6919081900360200190a45050505050565b3361100814611f3e5760405162461bcd60e51b81526004018080602001828103825260238152602001806153be6023913960400191505060405180910390fd5b600083815260046020908152604080832080546001600160a01b039096166001600160a01b03199096168617905593825260038152838220949094556002909352912055565b603c81565b81806001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015611fc357600080fd5b505afa158015611fd7573d6000803e3d6000fd5b505050506040513d6020811015611fed57600080fd5b50516001600160a01b0316331461204b576040805162461bcd60e51b815260206004820152601860248201527f6e6f74206f776e6572206f6620424550323020746f6b656e0000000000000000604482015290519081900360640190fd5b60008211612099576040805162461bcd60e51b81526020600482015260166024820152751e995c9bc81b1a5b5a5d081b9bdd08185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b0383166000908152600360205260409020546120ef576040805162461bcd60e51b81526020600482015260096024820152681b9bdd08189bdd5b9960ba1b604482015290519081900360640190fd5b6001600160a01b038316600081815260066020908152604091829020859055815185815291513393927f9df3a90730dbf23b5cc18dbbd5f4af3fa94a0dffb6ff6841f98a9a9a6ac626a892908290030190a3505050565b600981565b677ce66c50e284000081565b6000805460ff1661219d576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b33611005146121dd5760405162461bcd60e51b815260040180806020018281038252602f81526020018061516d602f913960400191505060405180910390fd5b60004783106121ec57476121ee565b825b9050670de0b6b3a764000081111561220a57600091505061228f565b801561228c576040516001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612246573d6000803e3d6000fd5b50604080516001600160a01b03861681526020810183905281517ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0929181900390910190a15b90505b92915050565b61100781565b61100681565b600081565b60005460ff1681565b600381565b6000805460ff166122fa576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b61200281565b61300081565b33611007146123805760405162461bcd60e51b815260040180806020018281038252602e815260200180615302602e913960400191505060405180910390fd5b602081146123d5576040805162461bcd60e51b815260206004820152601b60248201527f65787065637465642076616c7565206c656e6774682069732033320000000000604482015290519081900360640190fd5b606084848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8801819004810282018101909252868152939450606093925086915085908190840183828082843760009201919091525050505060208301519091506772656c617946656560c01b8114156124dd576020820151670de0b6b3a7640000811180159061248457506402540be4008106155b6124d5576040805162461bcd60e51b815260206004820152601960248201527f7468652072656c6179466565206f7574206f662072616e676500000000000000604482015290519081900360640190fd5b600155612753565b61255187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601781527f6c617267655472616e736665724c6f636b506572696f640000000000000000006020820152915061354d9050565b156125ed57604080516020601f87018190048102820181019092528581526000916125949188888083850183828082843760009201919091525061363492505050565b905062093a808111156125e5576040805162461bcd60e51b81526020600482015260146024820152736c6f636b20706572696f6420746f6f206c6f6e6760601b604482015290519081900360640190fd5b600555612753565b61265987878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526015815274189b9893185c99d9551c985b9cd9995c931a5b5a5d605a1b6020820152915061354d9050565b1561271657604080516020601f870181900481028201810190925285815260009161269c9188888083850183828082843760009201919091525061363492505050565b905068056bc75e2d631000008110156126e65760405162461bcd60e51b815260040180806020018281038252602281526020018061519c6022913960400191505060405180910390fd5b6000805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f855612753565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a878787876040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b33611008146128285760405162461bcd60e51b81526004018080602001828103825260238152602001806153be6023913960400191505060405180910390fd5b600091825260046020908152604080842080546001600160a01b03191690556001600160a01b039290921683526003815281832083905560029052812055565b6221272160e91b81565b61c35081565b60026020526000908152604090205481565b6001600160a01b031660009081526003602052604090205490565b61100281565b60005460ff166128f0576040805162461bcd60e51b815260206004820152601960248201526000805160206153e1833981519152604482015290519081900360640190fd5b33612000146129305760405162461bcd60e51b815260040180806020018281038252602f81526020018061538f602f913960400191505060405180910390fd5b60ff831660031415611d2257611d1d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061363992505050565b60085460ff16600214156129c7576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6008805460ff191660021790556001600160a01b0380831660009081526007602090815260408083209385168352929052208054612a3f576040805162461bcd60e51b815260206004820152601060248201526f1b9bc81b1bd8dad95908185b5bdd5b9d60821b604482015290519081900360640190fd5b8060010154421015612a98576040805162461bcd60e51b815260206004820152601760248201527f7374696c6c206f6e206c6f636b696e6720706572696f64000000000000000000604482015290519081900360640190fd5b805460008083556001600160a01b038516612b0b576040516001600160a01b038516906127109084906000818181858888f193505050503d8060008114612afb576040519150601f19603f3d011682016040523d82523d6000602084013e612b00565b606091505b505080915050612b9e565b846001600160a01b031663a9059cbb61c35086856040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015612b6e57600080fd5b5087f1158015612b82573d6000803e3d6000fd5b50505050506040513d6020811015612b9957600080fd5b505190505b80612bf0576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720756e6c6f636b656420746f6b656e206661696c65640000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167f832fc3e25f2b3e6fb0eb59419a73cba405f2a249fce75f7e31ea5a457a0323f1846040518082815260200191505060405180910390a350506008805460ff19166001179055505050565b61100381565b61200481565b60003361200214612cb3576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206d757374206265207374616b6548756200604482015290519081900360640190fd5b814710612cf3576040516120029083156108fc029084906000818181858888f19350505050158015612ce9573d6000803e3d6000fd5b50600190506113b2565b506000919050565b60005460ff1615612d53576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b66071afd498d000060019081556000808052600260205260127fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b55805460ff19169091179055565b60066020526000908152604090205481565b600481565b600581565b601181565b61100081565b61271081565b69021e19e0c9bab240000081565b6001600160a01b03811660009081526003602090815260409182902054825182815280840190935260609290918391906020820181803683375050506020810183905290506000805b60208160ff161015612e6657828160ff1681518110612e3a57fe5b01602001516001600160f81b03191615612e5957816001019150612e5e565b612e66565b600101612e1f565b5060608160ff166040519080825280601f01601f191660200182016040528015612e97576020820181803683370190505b50905060005b8260ff168160ff161015612ef357838160ff1681518110612eba57fe5b602001015160f81c60f81b828260ff1681518110612ed457fe5b60200101906001600160f81b031916908160001a905350600101612e9d565b5095945050505050565b61100481565b6060612f0d61506c565b6000612f1884613730565b9150915080612f6e576040805162461bcd60e51b815260206004820152601f60248201527f756e7265636f676e697a6564207472616e73666572496e207061636b61676500604482015290519081900360640190fd5b6000612f798361386f565b905063ffffffff81161561300d576040808401516020808601516001600160a01b03166000908152600290915291822054612fb49190613bd5565b9050612fbe6150a1565b60405180608001604052808660000151815260200183815260200186608001516001600160a01b031681526020018463ffffffff16815250905061300181613c0e565b955050505050506113b2565b505060408051600081526020810190915291506113b29050565b60008282018381101561228c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061228c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cea565b6000826130d25750600061228f565b828202828482816130df57fe5b041461228c5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e16021913960400191505060405180910390fd5b600061228c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613d8c565b60408051600680825260e08201909252606091829190816020015b6060815260200190600190039081613179575050835190915061319b90613de6565b816000815181106131a857fe5b60200260200101819052506131c983602001516001600160a01b0316613df9565b816001815181106131d657fe5b60200260200101819052506000836040015151905060608160405190808252806020026020018201604052801561322157816020015b606081526020019060019003908161320c5790505b50905060005b8281101561326e5761324f8660400151828151811061324257fe5b6020026020010151613de6565b82828151811061325b57fe5b6020908102919091010152600101613227565b5061327881613e1c565b8360028151811061328557fe5b60200260200101819052506060826040519080825280602002602001820160405280156132c657816020015b60608152602001906001900390816132b15790505b50905060005b8381101561331c576132fd876060015182815181106132e757fe5b60200260200101516001600160a01b0316613df9565b82828151811061330957fe5b60209081029190910101526001016132cc565b5061332681613e1c565b8460038151811061333357fe5b602002602001018190525060608360405190808252806020026020018201604052801561337457816020015b606081526020019060019003908161335f5790505b50905060005b848110156133b457613395886080015182815181106132e757fe5b8282815181106133a157fe5b602090810291909101015260010161337a565b506133be81613e1c565b856004815181106133cb57fe5b60200260200101819052506133ed8760a0015167ffffffffffffffff16613de6565b856005815181106133fa57fe5b602002602001018190525061340e85613e1c565b979650505050505050565b600060088211156134425761343b836007198401600a0a63ffffffff6130c316565b905061228f565b61228c836008849003600a0a63ffffffff61308116565b6001600160a01b0380841660009081526007602090815260408083209385168352929052208054613490908463ffffffff61302716565b815542603c016001820181905560408051858152602081019290925280516001600160a01b03808616939088169289927f446d1aa056e7b903901f49880e9f252762c1b81dc4301cf28db6dae526497eaa9281900390910190a45050505050565b6134f96150c8565b600061350483613ea6565b91509150806135445760405162461bcd60e51b81526004018080602001828103825260248152602001806153306024913960400191505060405180910390fd5b611c4282614071565b6000816040516020018082805190602001908083835b602083106135825780518252601f199092019160209182019101613563565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106135f05780518252601f1990920191602091820191016135d1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b613641615020565b600061364c836144f5565b915091508061368c5760405162461bcd60e51b81526004018080602001828103825260248152602001806151be6024913960400191505060405180910390fd5b6136946150c8565b602080840180516001600160a01b0390811684526040808701518585015291511660009081526002909252812054905b846040015151811015613715576136f2856040015182815181106136e457fe5b602002602001015183613419565b8560400151828151811061370257fe5b60209081029190910101526001016136c4565b506080840151604083015260056060830152611c3e82614071565b61373861506c565b600061374261506c565b61374a6150ff565b61375b61375686614759565b61477e565b90506000805b61376a836147c8565b15613862578061378c57613785613780846147e9565b614837565b845261385a565b80600114156137b9576137a66137a1846147e9565b6148ee565b6001600160a01b0316602085015261385a565b80600214156137d8576137ce613780846147e9565b604085015261385a565b8060031415613800576137ed6137a1846147e9565b6001600160a01b0316606085015261385a565b8060041415613828576138156137a1846147e9565b6001600160a01b0316608085015261385a565b80600514156138555761383d613780846147e9565b67ffffffffffffffff1660a08501526001915061385a565b613862565b600101613761565b5091935090915050915091565b60208101516000906001600160a01b03166139b3578160a0015167ffffffffffffffff164211156138a2575060016113b2565b81604001514710156138b6575060036113b2565b6138bf82614908565b61393457606082015160408084015190516000926001600160a01b0316916127109184818181858888f193505050503d806000811461391a576040519150601f19603f3d011682016040523d82523d6000602084013e61391f565b606091505b50509050806139325750600490506113b2565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5982602001518360600151846040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a15060006113b2565b8160a0015167ffffffffffffffff164211156139d1575060016113b2565b81516020808401516001600160a01b0316600090815260039091526040902054146139fe575060026113b2565b602080830151604080516370a0823160e01b815230600482015290516000936001600160a01b03909316926370a082319261c3509260248083019392829003018187803b158015613a4e57600080fd5b5086fa158015613a62573d6000803e3d6000fd5b50505050506040513d6020811015613a7957600080fd5b50516040840151909150811015613a945750600390506113b2565b613a9d83614908565b613b5457600083602001516001600160a01b031663a9059cbb61c350866060015187604001516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b158015613b1257600080fd5b5087f1158015613b26573d6000803e3d6000fd5b50505050506040513d6020811015613b3d57600080fd5b5051905080613b525750600591506113b29050565b505b7f471eb9cc1ffe55ffadf15b32595415eb9d80f22e761d24bd6dffc607e1284d5983602001518460600151856040015160405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a150600090506113b2565b60006008821115613bf75761343b836007198401600a0a63ffffffff61308116565b61228c836008849003600a0a63ffffffff6130c316565b60408051600480825260a08201909252606091829190816020015b6060815260200190600190039081613c295750508351909150613c4b90613de6565b81600081518110613c5857fe5b6020026020010181905250613c708360200151613de6565b81600181518110613c7d57fe5b6020026020010181905250613c9e83604001516001600160a01b0316613df9565b81600281518110613cab57fe5b6020026020010181905250613cc9836060015163ffffffff16613de6565b81600381518110613cd657fe5b602002602001018190525061126281613e1c565b60008183613d765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613d3b578181015183820152602001613d23565b50505050905090810190601f168015613d685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d8257fe5b0495945050505050565b60008184841115613dde5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613d3b578181015183820152602001613d23565b505050900390565b606061228f613df483614a76565b614b5c565b60408051600560a21b831860148201526034810190915260609061126281614b5c565b6060815160001415613e3d57506040805160008152602081019091526113b2565b606082600081518110613e4c57fe5b602002602001015190506000600190505b8351811015613e8d57613e8382858381518110613e7657fe5b6020026020010151614bae565b9150600101613e5d565b50611262613ea0825160c060ff16614c2b565b82614bae565b613eae6150c8565b6000613eb86150c8565b613ec06150ff565b613ecc61375686614759565b90506000805b613edb836147c8565b156138625780613f0157613ef16137a1846147e9565b6001600160a01b03168452614069565b8060011415613fa2576060613f1d613f18856147e9565b614d23565b90508051604051908082528060200260200182016040528015613f4a578160200160208202803683370190505b50602086015260005b8151811015613f9b57613f78828281518110613f6b57fe5b6020026020010151614837565b86602001518281518110613f8857fe5b6020908102919091010152600101613f53565b5050614069565b8060021415614044576060613fb9613f18856147e9565b90508051604051908082528060200260200182016040528015613fe6578160200160208202803683370190505b50604086015260005b8151811015613f9b5761401482828151811061400757fe5b60200260200101516148ee565b8660400151828151811061402457fe5b6001600160a01b0390921660209283029190910190910152600101613fef565b806003141561385557614059613780846147e9565b63ffffffff166060850152600191505b600101613ed2565b80516001600160a01b031661429b5760005b816020015151811015614295576000826040015182815181106140a257fe5b60200260200101516001600160a01b0316612710846020015184815181106140c657fe5b60209081029190910101516040516000818181858888f193505050503d806000811461410e576040519150601f19603f3d011682016040523d82523d6000602084013e614113565b606091505b50509050806141d6577f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061415257fe5b60200260200101518560200151858151811061416a57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a161428c565b7fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a83600001518460400151848151811061420c57fe5b60200260200101518560200151858151811061422457fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b50600101614083565b506144f2565b60005b8160200151518110156144f057600082600001516001600160a01b031663a9059cbb61c350856040015185815181106142d357fe5b6020026020010151866020015186815181106142eb57fe5b60200260200101516040518463ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600088803b15801561434257600080fd5b5087f1158015614356573d6000803e3d6000fd5b50505050506040513d602081101561436d57600080fd5b505190508015614431577fd468d4fa5e8fb4adc119b29a983fd0785e04af5cb8b7a3a69a47270c54b6901a8360000151846040015184815181106143ad57fe5b6020026020010151856020015185815181106143c557fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a16144e7565b7f203f9f67a785f4f81be4d48b109aa0c498d1bc8097ecc2627063f480cc5fe73e83600001518460400151848151811061446757fe5b60200260200101518560200151858151811061447f57fe5b6020026020010151866060015160405180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b031681526020018381526020018263ffffffff1663ffffffff16815260200194505050505060405180910390a15b5060010161429e565b505b50565b6144fd615020565b6000614507615020565b61450f6150ff565b61451b61375686614759565b90506000805b61452a836147c8565b15613862578061454757614540613780846147e9565b8452614751565b806001141561456f5761455c6137a1846147e9565b6001600160a01b03166020850152614751565b80600214156145fe576060614586613f18856147e9565b905080516040519080825280602002602001820160405280156145b3578160200160208202803683370190505b50604086015260005b81518110156145f7576145d4828281518110613f6b57fe5b866040015182815181106145e457fe5b60209081029190910101526001016145bc565b5050614751565b8060031415614693576060614615613f18856147e9565b90508051604051908082528060200260200182016040528015614642578160200160208202803683370190505b50606086015260005b81518110156145f75761466382828151811061400757fe5b8660600151828151811061467357fe5b6001600160a01b039092166020928302919091019091015260010161464b565b80600414156147285760606146aa613f18856147e9565b905080516040519080825280602002602001820160405280156146d7578160200160208202803683370190505b50608086015260005b81518110156145f7576146f882828151811061400757fe5b8660800151828151811061470857fe5b6001600160a01b03909216602092830291909101909101526001016146e0565b80600514156138555761473d613780846147e9565b67ffffffffffffffff1660a0850152600191505b600101614521565b61476161511f565b506040805180820190915281518152602082810190820152919050565b6147866150ff565b61478f82614df4565b61479857600080fd5b60006147a78360200151614e2e565b60208085015160408051808201909152868152920190820152915050919050565b60006147d261511f565b505080518051602091820151919092015191011190565b6147f161511f565b6147fa826147c8565b61480357600080fd5b6020820151600061481382614e91565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061484c57508151602110155b61485557600080fd5b60006148648360200151614e2e565b905080836000015110156148bf576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156148e557826020036101000a820491505b50949350505050565b80516000906015146148ff57600080fd5b61228f82614837565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8541580156149415750600554155b156149835760008052600660205269021e19e0c9bab24000007f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85561a8c06005555b6020808301516001600160a01b03166000908152600690915260409020548015806149b15750808360400151105b156149c05760009150506113b2565b6020808401516001600160a01b039081166000908152600783526040808220606088015190931682529190925290819020908401518154614a069163ffffffff61302716565b8155600554420160018201819055606085015160208087015160408089015181519081529283019490945283516001600160a01b039384169493909116927f3fb83143cd331170da18fb1e8564d97e8ec39264b6ecb1ba248ea7596ab07258928290030190a35060019392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416614aba57506018614ade565b6fffffffffffffffffffffffffffffffff198416614ada57506010614ade565b5060005b6020811015614b1457818181518110614af357fe5b01602001516001600160f81b03191615614b0c57614b14565b600101614ade565b60008160200390506060816040519080825280601f01601f191660200182016040528015614b49576020820181803683370190505b5080830196909652508452509192915050565b606081516001148015614b8e5750607f60f81b82600081518110614b7c57fe5b01602001516001600160f81b03191611155b15614b9a5750806113b2565b61228f614bac8351608060ff16614c2b565b835b6060806040519050835180825260208201818101602087015b81831015614bdf578051835260209283019201614bc7565b50855184518101855292509050808201602086015b81831015614c0c578051835260209283019201614bf4565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310614c7b576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b60408051600180825281830190925260609160208201818036833701905050905060378411614cd55782840160f81b81600081518110614cb757fe5b60200101906001600160f81b031916908160001a905350905061228f565b6060614ce085614a76565b90508381510160370160f81b82600081518110614cf957fe5b60200101906001600160f81b031916908160001a905350614d1a8282614bae565b95945050505050565b6060614d2e82614df4565b614d3757600080fd5b6000614d4283614fc4565b9050606081604051908082528060200260200182016040528015614d8057816020015b614d6d61511f565b815260200190600190039081614d655790505b5090506000614d928560200151614e2e565b60208601510190506000805b84811015614de957614daf83614e91565b9150604051806040016040528083815260200184815250848281518110614dd257fe5b602090810291909101015291810191600101614d9e565b509195945050505050565b8051600090614e05575060006113b2565b6020820151805160001a9060c0821015614e24576000925050506113b2565b5060019392505050565b8051600090811a6080811015614e485760009150506113b2565b60b8811080614e63575060c08110801590614e63575060f881105b15614e725760019150506113b2565b60c0811015614e865760b5190190506113b2565b60f5190190506113b2565b80516000908190811a6080811015614eac5760019150614fbd565b60b8811015614ec157607e1981019150614fbd565b60c0811015614f3b57600060b78203600186019550806020036101000a865104915060018101820193505080831015614f35576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50614fbd565b60f8811015614f505760be1981019150614fbd565b600060f78203600186019550806020036101000a865104915060018101820193505080831015614fbb576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b8051600090614fd5575060006113b2565b60008090506000614fe98460200151614e2e565b602085015185519181019250015b808210156150175761500882614e91565b82019150826001019250614ff7565b50909392505050565b6040518060c001604052806000801916815260200160006001600160a01b03168152602001606081526020016060815260200160608152602001600067ffffffffffffffff1681525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600063ffffffff1681525090565b604051806040016040528061511261511f565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe6f6e6c79207374616b696e672073797374656d20636f6e74726163742063616e2063616c6c20746869732066756e6374696f6e746865206d6573736167652073656e646572206d75737420626520696e63656e746976697a6520636f6e7472616374626e62206c61726765207472616e73666572206c696d697420746f6f20736d616c6c756e7265636f676e697a6564207472616e736665724f75742073796e207061636b61676565787069726554696d65206d7573742062652074776f206d696e75746573206c61746572616d6f756e7420697320746f6f206c617267652c20657863656564206d6178696d756d206265703220746f6b656e20616d6f756e74746865206d73672073656e646572206d75737420626520746f6b656e207265636f76657220706f7274616c4c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620726566756e644164647273696e76616c6964207472616e7366657220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374756e7265636f676e697a6564207472616e736665724f75742061636b207061636b6167654c656e677468206f6620726563697069656e74416464727320646f65736e277420657175616c20746f206c656e677468206f6620616d6f756e7473746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520746f6b656e4d616e6167657274686520636f6e7472616374206e6f7420696e69742079657400000000000000726563656976656420424e4220616d6f756e742073686f756c64206265206e6f206c657373207468616e207468652073756d206f66207472616e7366657220424e4220616d6f756e7420616e642072656c6179466565696e76616c696420726563656976656420424e4220616d6f756e743a20707265636973696f6e206c6f737320696e20616d6f756e7420636f6e76657273696f6ea164736f6c6343000604000a", + Code: feynman.RialtoTokenHubContract, }, { ContractAddr: common.HexToAddress(GovHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b506004361061021c5760003560e01c8063831d65d111610125578063ab51bb96116100ad578063df8079e91161007c578063df8079e914610615578063f1fad1041461061d578063f9a2bbc714610625578063fc3e59081461062d578063fd6a6879146106355761021c565b8063ab51bb9614610585578063c81b16621461058d578063c8509d8114610595578063dc927faf1461060d5761021c565b80639dc09262116100f45780639dc0926214610549578063a1a11bf514610551578063a78abc1614610559578063aa82dce114610575578063aad560631461057d5761021c565b8063831d65d1146103f857806388e4194e1461047257806396713da9146105395780639ab1a373146105415761021c565b80634bf6c882116101a857806370fd5bad1161017757806370fd5bad146103d0578063718a8aa8146103d857806375d47a0a146103e05780637942fd05146103e85780637e434d54146103f05761021c565b80634bf6c882146103b057806351b4dce3146103b857806351e80672146103c05780636e47b482146103c85761021c565b80633a21baae116101ef5780633a21baae1461035b5780633dffc3871461036357806343756e5c146103815780634900c4ea14610389578063493279b1146103915761021c565b80630bee7a67146102215780630e2374a5146102425780631182b875146102665780632808702814610353575b600080fd5b61022961063d565b6040805163ffffffff9092168252519081900360200190f35b61024a610642565b604080516001600160a01b039092168252519081900360200190f35b6102de6004803603604081101561027c57600080fd5b60ff8235169190810190604081016020820135600160201b8111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111600160201b831117156102d357600080fd5b509092509050610648565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024a6106f7565b6102296106fd565b61036b610702565b6040805160ff9092168252519081900360200190f35b61024a610707565b61036b61070d565b610399610712565b6040805161ffff9092168252519081900360200190f35b61036b610718565b61024a61071d565b61024a610723565b61024a610729565b61036b61072f565b61036b610734565b61024a610739565b61036b61073f565b61024a610744565b6104706004803603604081101561040e57600080fd5b60ff8235169190810190604081016020820135600160201b81111561043257600080fd5b82018360208201111561044457600080fd5b803590602001918460018302840111600160201b8311171561046557600080fd5b50909250905061074a565b005b6104706004803603606081101561048857600080fd5b810190602081018135600160201b8111156104a257600080fd5b8201836020820111156104b457600080fd5b803590602001918460018302840111600160201b831117156104d557600080fd5b919390929091602081019035600160201b8111156104f257600080fd5b82018360208201111561050457600080fd5b803590602001918460018302840111600160201b8311171561052557600080fd5b9193509150356001600160a01b03166107dc565b61036b6108c7565b6102296108cc565b61024a6108d1565b61024a6108d7565b6105616108dd565b604080519115158252519081900360200190f35b61024a6108e6565b61024a6108ec565b61022961070d565b61024a6108f2565b610470600480360360408110156105ab57600080fd5b60ff8235169190810190604081016020820135600160201b8111156105cf57600080fd5b8201836020820111156105e157600080fd5b803590602001918460018302840111600160201b8311171561060257600080fd5b5090925090506108f8565b61024a61096f565b61024a610975565b61036b61097b565b61024a610980565b61036b610986565b61024a61098b565b606481565b61200181565b60606106526115f9565b600061069385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061099192505050565b91509150806106af576106a66064610a57565b925050506106f0565b60006106ba83610ac1565b905063ffffffff81166106e157505060408051600081526020810190915291506106f09050565b6106ea81610a57565b93505050505b9392505050565b61200581565b606681565b600181565b61100181565b600081565b6102ca81565b600881565b61200681565b61200081565b61100581565b600281565b601081565b61100881565b600b81565b61200381565b336120001461078a5760405162461bcd60e51b815260040180806020018281038252602f81526020018061165e602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152601e60248201527f7265636569766520756e65787065637465642061636b207061636b6167650000604482015290519081900360640190fd5b505050565b336120061461081c5760405162461bcd60e51b815260040180806020018281038252603181526020018061168d6031913960400191505060405180910390fd5b6108246115f9565b604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920191909152505050908252506001600160a01b03841660209091015290506108be81610ac1565b50505050505050565b600981565b606581565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b61100281565b33612000146109385760405162461bcd60e51b815260040180806020018281038252602f81526020018061165e602f913960400191505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260238152602001806116be6023913960400191505060405180910390fd5b61100381565b61200481565b601181565b61100081565b600381565b61100481565b6109996115f9565b60006109a36115f9565b6109ab611623565b6109bc6109b786610e62565b610e87565b90506000805b6109cb83610ed1565b15610a4a57806109ed576109e66109e184610ef2565b610f40565b8452610a42565b8060011415610a0c57610a026109e184610ef2565b6020850152610a42565b8060021415610a3d57610a26610a2184610ef2565b610fb9565b6001600160a01b0316604085015260019150610a42565b610a4a565b6001016109c2565b5091935090915050915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081610a71579050509050610a978363ffffffff16610fd9565b81600081518110610aa457fe5b6020026020010181905250610ab881610fec565b9150505b919050565b6000610ad08260400151611076565b610b3c57604080516020808252601c908201527f74686520746172676574206973206e6f74206120636f6e7472616374000000008183015290517f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb29181900360600190a1506065610abc565b81604001516001600160a01b031663ac431751836000015184602001516040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610ba9578181015183820152602001610b91565b50505050905090810190601f168015610bd65780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610c09578181015183820152602001610bf1565b50505050905090810190601f168015610c365780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c5757600080fd5b505af1925050508015610c68575060015b610e5a576040516000815260443d1015610c8457506000610d21565b60046000803e60005160e01c6308c379a08114610ca5576000915050610d21565b60043d036004833e81513d602482011167ffffffffffffffff82111715610cd157600092505050610d21565b808301805167ffffffffffffffff811115610cf3576000945050505050610d21565b8060208301013d8601811115610d1157600095505050505050610d21565b601f01601f191660405250925050505b80610d2c5750610dcf565b7f70e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb2816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d8b578181015183820152602001610d73565b50505050905090810190601f168015610db85780820380516001836020036101000a031916815260200191505b509250505060405180910390a16066915050610abc565b3d808015610df9576040519150601f19603f3d011682016040523d82523d6000602084013e610dfe565b606091505b5060408051602080825283518183015283517f1279f84165b4fd69c35e1f338ff107231b036c655cd1688851e011ce617c4e8d938593928392918301919085019080838360008315610d8b578181015183820152602001610d73565b506000919050565b610e6a611643565b506040805180820190915281518152602082810190820152919050565b610e8f611623565b610e988261107c565b610ea157600080fd5b6000610eb083602001516110b6565b60208085015160408051808201909152868152920190820152915050919050565b6000610edb611643565b505080518051602091820151919092015191011190565b610efa611643565b610f0382610ed1565b610f0c57600080fd5b60208201516000610f1c82611119565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090610f4e57600080fd5b6000610f5d83602001516110b6565b83516040805191839003808352601f19601f8201168301602001909152919250606090828015610f94576020820181803683370190505b5090506000816020019050610fb084876020015101828561124c565b50949350505050565b8051600090601514610fca57600080fd5b610fd382611297565b92915050565b6060610fd3610fe78361134c565b611432565b606081516000141561100d5750604080516000815260208101909152610abc565b60608260008151811061101c57fe5b602002602001015190506000600190505b835181101561105d576110538285838151811061104657fe5b6020026020010151611484565b915060010161102d565b50610ab8611070825160c060ff16611501565b82611484565b3b151590565b805160009061108d57506000610abc565b6020820151805160001a9060c08210156110ac57600092505050610abc565b5060019392505050565b8051600090811a60808110156110d0576000915050610abc565b60b88110806110eb575060c081108015906110eb575060f881105b156110fa576001915050610abc565b60c081101561110e5760b519019050610abc565b60f519019050610abc565b80516000908190811a60808110156111345760019150611245565b60b881101561114957607e1981019150611245565b60c08110156111c357600060b78203600186019550806020036101000a8651049150600181018201935050808310156111bd576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b50611245565b60f88110156111d85760be1981019150611245565b600060f78203600186019550806020036101000a865104915060018101820193505080831015611243576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80611256576107d7565b5b60208110611276578251825260209283019290910190601f1901611257565b915181516020939093036101000a6000190180199091169216919091179052565b8051600090158015906112ac57508151602110155b6112b557600080fd5b60006112c483602001516110b6565b9050808360000151101561131f576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b825160208085015183018051928490039291831015610fb057506020919091036101000a90049392505050565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff198416611390575060186113b4565b6fffffffffffffffffffffffffffffffff1984166113b0575060106113b4565b5060005b60208110156113ea578181815181106113c957fe5b01602001516001600160f81b031916156113e2576113ea565b6001016113b4565b60008160200390506060816040519080825280601f01601f19166020018201604052801561141f576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156114645750607f60f81b8260008151811061145257fe5b01602001516001600160f81b03191611155b15611470575080610abc565b610fd36114828351608060ff16611501565b835b6060806040519050835180825260208201818101602087015b818310156114b557805183526020928301920161149d565b50855184518101855292509050808201602086015b818310156114e25780518352602092830192016114ca565b508651929092011591909101601f01601f191660405250905092915050565b6060680100000000000000008310611551576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b604080516001808252818301909252606091602082018180368337019050509050603784116115ab5782840160f81b8160008151811061158d57fe5b60200101906001600160f81b031916908160001a9053509050610fd3565b60606115b68561134c565b90508381510160370160f81b826000815181106115cf57fe5b60200101906001600160f81b031916908160001a9053506115f08282611484565b95945050505050565b6040518060600160405280606081526020016060815260200160006001600160a01b031681525090565b6040518060400160405280611636611643565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374746865206d73672073656e646572206d75737420626520676f7665726e6f722074696d656c6f636b20636f6e74726163747265636569766520756e6578706563746564206661696c2061636b207061636b616765a164736f6c6343000604000a", + Code: feynman.RialtoGovHubContract, }, { ContractAddr: common.HexToAddress(CrossChainContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b50600436106103e65760003560e01c806374f079b81161020a578063c27cdcfb11610125578063df8079e9116100b8578063f1fad10411610087578063f1fad10414610bac578063f7a251d714610bb4578063f9a2bbc714610c2c578063fc3e590814610c34578063fd6a687914610c3c576103e6565b8063df8079e914610b74578063e1c7392a14610b7c578063e3b0480514610b84578063e6400bbe14610ba4576103e6565b8063d31f968d116100f4578063d31f968d14610b2d578063d76a867514610b5c578063dc40433114610b64578063dc927faf14610b6c576103e6565b8063c27cdcfb14610af5578063c780e9de14610b15578063c81b166214610b1d578063ccc108d714610b25576103e6565b80639dc092621161019d578063aad560631161016c578063aad5606314610a27578063ab51bb9614610a2f578063ac43175114610a37578063b0355f5b146107d6576103e6565b80639dc0926214610a07578063a1a11bf514610a0f578063a78abc1614610a17578063aa82dce114610a1f576103e6565b806384013b6a116101d957806384013b6a1461091c578063863fe4ab146109f75780638cc8f561146108e457806396713da9146109ff576103e6565b806374f079b8146108fc57806375d47a0a146109045780637942fd051461090c5780637e434d5414610914576103e6565b806343756e5c116103055780636a3cb34d116102985780636e47a51a116102675780636e47a51a146108bc5780636e47b482146108dc57806370fd5bad146108e4578063718a8aa8146108ec578063719482d5146108f4576103e6565b80636a3cb34d146108645780636bacff2c1461086c5780636c46aa68146108645780636de380bd146108b4576103e6565b806351e80672116102d457806351e806721461081e5780635692ddd3146108265780635f8321771461082e57806363e1394e1461085c576103e6565b806343756e5c146107fe578063493279b1146108065780634bf6c8821461080e57806351b4dce314610816576103e6565b8063299b533d1161037d5780633a648b151161034c5780633a648b15146106725780633bdc47a6146106ae5780633dffc387146107d6578063422f9050146107de576103e6565b8063299b533d146105f85780632af6f3991461062c5780632ff32aea14610649578063308325f41461066a576103e6565b80631d130935116103b95780631d130935146104685780631e275ae11461048457806322556cdc146105e857806328087028146105f0576103e6565b806305e68258146103eb5780630bee7a67146104095780630e2374a51461042a57806314b3023b1461044e575b600080fd5b6103f3610c44565b6040805160ff9092168252519081900360200190f35b610411610c49565b6040805163ffffffff9092168252519081900360200190f35b610432610c4e565b604080516001600160a01b039092168252519081900360200190f35b610456610c54565b60408051918252519081900360200190f35b610470610c5a565b604080519115158252519081900360200190f35b6105e6600480360361010081101561049b57600080fd5b81018160a081016080820135600160201b8111156104b857600080fd5b8201836020820111156104ca57600080fd5b803590602001918460018302840111600160201b831117156104eb57600080fd5b919390929091602081019035600160201b81111561050857600080fd5b82018360208201111561051a57600080fd5b803590602001918460018302840111600160201b8311171561053b57600080fd5b919390929091602081019035600160201b81111561055857600080fd5b82018360208201111561056a57600080fd5b803590602001918460018302840111600160201b8311171561058b57600080fd5b919390929091602081019035600160201b8111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460018302840111600160201b831117156105db57600080fd5b509092509050610c63565b005b610456611347565b61043261134c565b6106156004803603602081101561060e57600080fd5b5035611352565b6040805161ffff9092168252519081900360200190f35b6104706004803603602081101561064257600080fd5b5035611368565b61065161137d565b60408051600792830b90920b8252519081900360200190f35b610456611386565b6106926004803603602081101561068857600080fd5b503560ff1661138c565b604080516001600160401b039092168252519081900360200190f35b610761600480360360608110156106c457600080fd5b60ff82351691602081013591810190606081016040820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460018302840111600160201b8311171561072057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506113a7945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561079b578181015183820152602001610783565b50505050905090810190601f1680156107c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f361141d565b610470600480360360208110156107f457600080fd5b503560ff16611422565b610432611437565b61061561143d565b6103f3611443565b610432611448565b61043261144e565b610456611454565b6105e66004803603604081101561084457600080fd5b506001600160a01b0381358116916020013516611484565b6104566116e4565b61061561170c565b6108896004803603602081101561088257600080fd5b5035611711565b6040805161ffff90941684526001600160801b03909216602084015282820152519081900360600190f35b610456611740565b610432600480360360208110156108d257600080fd5b503560ff16611767565b610432611782565b6103f361170c565b6103f3611788565b61061561141d565b61045661178d565b610432611793565b6103f3611799565b61043261179e565b6105e6600480360360a081101561093257600080fd5b810190602081018135600160201b81111561094c57600080fd5b82018360208201111561095e57600080fd5b803590602001918460018302840111600160201b8311171561097f57600080fd5b919390929091602081019035600160201b81111561099c57600080fd5b8201836020820111156109ae57600080fd5b803590602001918460018302840111600160201b831117156109cf57600080fd5b919350915080356001600160401b03908116916020810135909116906040013560ff166117a4565b610456612a5e565b6103f3612a66565b610432612a6b565b610432612a71565b610470612a77565b610432612a80565b610432612a86565b610411610c44565b6105e660048036036040811015610a4d57600080fd5b810190602081018135600160201b811115610a6757600080fd5b820183602082011115610a7957600080fd5b803590602001918460018302840111600160201b83111715610a9a57600080fd5b919390929091602081019035600160201b811115610ab757600080fd5b820183602082011115610ac957600080fd5b803590602001918460018302840111600160201b83111715610aea57600080fd5b509092509050612a8c565b61069260048036036020811015610b0b57600080fd5b503560ff16613550565b61045661356b565b61043261358f565b6105e6613595565b61047060048036036040811015610b4357600080fd5b5080356001600160a01b0316906020013560ff166137e9565b610761613809565b610456613828565b61043261382e565b610432613834565b6105e661383a565b61069260048036036020811015610b9a57600080fd5b503560ff16613bf1565b6105e6613c0c565b6103f3613e2b565b6105e660048036036060811015610bca57600080fd5b60ff8235169190810190604081016020820135600160201b811115610bee57600080fd5b820183602082011115610c0057600080fd5b803590602001918460018302840111600160201b83111715610c2157600080fd5b919350915035613e30565b610432613f73565b6103f3613f79565b610432613f7e565b600081565b606481565b61200181565b60015481565b600b5460ff1681565b60005460ff16610ca8576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b604080516337d7f9c160e21b81526001600160401b038b35166004820181905291516110039163df5fe704916024808301926020929190829003018186803b158015610cf357600080fd5b505afa158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b5051610d5a5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a826023913960400191505060405180910390fd5b604080516337d7f9c160e21b815260208c8101356001600160401b03166004830181905292516110039263df5fe704926024808301939192829003018186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b5051610e0d5760405162461bcd60e51b8152600401808060200182810382526023815260200180614a826023913960400191505060405180910390fd5b60608b013560ff81166000908152600560205260409020546001600160401b03909116906001600160a01b0316610e86576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b600b5460ff1615610eca576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b8888604051808383808284376040519201829003822094508f93508e9250819050838380828437808301925050509250505060405180910390201415610f46576040805162461bcd60e51b815260206004820152600c60248201526b1cd85b59481c185e5b1bd85960a21b604482015290519081900360640190fd5b60606001600160401b0360408e01358116908e83013516610f678282613f84565b80516020808301919091206000818152600e9092526040909120549194509060ff1615610fd0576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e4818da185b1b195b99d95960721b604482015290519081900360640190fd5b6000908152600e60205260408120805460ff191660011790558f8160200201356001600160401b0316905060608f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b505160408051808201909152600381526269626360e81b602082015290915061111d908290898686613fcc565b611166576040805162461bcd60e51b81526020600482015260156024820152740696e76616c6964206d65726b6c652070726f6f663605c1b604482015290519081900360640190fd5b5050505060008f60016004811061117957fe5b60200201356001600160401b0316905060608d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815293945060609392508d91508c908190840183828082843760009201829052506040805163cba510a960e01b81526001600160401b038a16600482015290519596509094611003945063cba510a9935060248083019350602092829003018186803b15801561124557600080fd5b505afa158015611259573d6000803e3d6000fd5b505050506040513d602081101561126f57600080fd5b505160408051808201909152600381526269626360e81b602082015290915061129c908290898686613fcc565b6112e5576040805162461bcd60e51b8152602060048201526015602482015274696e76616c6964206d65726b6c652070726f6f663160581b604482015290519081900360640190fd5b505050506112f16140c9565b604080516001600160401b038416815260ff83166020820152815133927f039eb91179ffd7d3b6e97f8ea106e748e827f910b872375dbc9c14a362319c3c928290030190a2505050505050505050505050505050565b603281565b61200581565b600d6020526000908152604090205461ffff1681565b600e6020526000908152604090205460ff1681565b60045460070b81565b60025481565b600a602052600090815260409020546001600160401b031681565b60606000825160210190506060816040519080825280601f01601f1916602001820160405280156113df576020820181803683370190505b506021810186905260018101879052828152905060418101600061140286614147565b50905061141181838851614151565b50909695505050505050565b600181565b60096020526000908152604090205460ff1681565b61100181565b6102ca81565b600881565b61200681565b61200081565b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b8152905190819003601801902081565b60005460ff166114c9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561150c57600080fd5b505afa158015611520573d6000803e3d6000fd5b505050506040513d602081101561153657600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561157757600080fd5b505afa15801561158b573d6000803e3d6000fd5b505050506040513d60208110156115a157600080fd5b50519050806115ae575060155b6000821180156115be5750808211155b6115fd576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b604080516001600160a01b038087166020808401919091529086168284015282518083038401815260608301808552815191909201207710d05390d15317d514905394d1915497d41493d413d4d05360421b909152915190819003607801902060009061166a9083614192565b905080156116dc5760408051630911a2c160e11b81526001600160a01b03888116600483015287166024820152905161100491631223458291604480830192600092919082900301818387803b1580156116c357600080fd5b505af11580156116d7573d6000803e3d6000fd5b505050505b505050505050565b604080516f14d554d411539117d41493d413d4d05360821b8152905190819003601001902081565b600281565b600c602052600090815260409020805460019091015461ffff8216916201000090046001600160801b03169083565b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f01902081565b6005602052600090815260409020546001600160a01b031681565b61100581565b601081565b60035481565b61100881565b600b81565b61200381565b60005460ff166117e9576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b60408051630a83aaa960e31b815233600482015290516110069163541d5548916024808301926020929190829003018186803b15801561182857600080fd5b505afa15801561183c573d6000803e3d6000fd5b505050506040513d602081101561185257600080fd5b50516118a5576040805162461bcd60e51b815260206004820152601f60248201527f746865206d73672073656e646572206973206e6f7420612072656c6179657200604482015290519081900360640190fd5b60ff8116600090815260086020526040902054829082906001600160401b039081169083168114611915576040805162461bcd60e51b815260206004820152601560248201527439b2b8bab2b731b2903737ba1034b71037b93232b960591b604482015290519081900360640190fd5b60ff8216600090815260086020908152604091829020805467ffffffffffffffff1916600185016001600160401b039081169190911790915582516337d7f9c160e21b81529089166004820152915188926110039263df5fe70492602480840193829003018186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d60208110156119b457600080fd5b50516119f15760405162461bcd60e51b8152600401808060200182810382526023815260200180614a826023913960400191505060405180910390fd5b60ff851660009081526005602052604090205485906001600160a01b0316611a5b576040805162461bcd60e51b815260206004820152601860248201527718da185b9b995b081a5cc81b9bdd081cdd5c1c1bdc9d195960421b604482015290519081900360640190fd5b60ff86166000908152600a6020526040902054889087906001600160401b039081169083161015611ac4576040805162461bcd60e51b815260206004820152600e60248201526d3a37b79037b632103432b0b232b960911b604482015290519081900360640190fd5b60ff81166000908152600a60205260409020546001600160401b03838116911614611b165760ff81166000908152600a60205260409020805467ffffffffffffffff19166001600160401b0384161790555b600b5460ff1615611b5a576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b60608e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905060608d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050611c9e6110036001600160a01b031663cba510a98e6040518263ffffffff1660e01b815260040180826001600160401b03166001600160401b0316815260200191505060206040518083038186803b158015611c4757600080fd5b505afa158015611c5b573d6000803e3d6000fd5b505050506040513d6020811015611c7157600080fd5b505160408051808201909152600381526269626360e81b6020820152611c978e8e613f84565b8585613fcc565b611ce6576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015290519081900360640190fd5b60408051631bb5062960e31b81526001600160401b038e16600482015290516000916110039163dda8314891602480820192602092909190829003018186803b158015611d3257600080fd5b505afa158015611d46573d6000803e3d6000fd5b505050506040513d6020811015611d5c57600080fd5b505190508b8b600080806060611d7189614477565b935093509350935083611e33578460ff16866001600160401b03167ff7b2e42d694eb1100184aae86d4245d9e46966100b1dc7e723275b98326854ac8b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015611deb578181015183820152602001611dd3565b50505050905090810190601f168015611e185780820380516001836020036101000a031916815260200191505b509250505060405180910390a3505050505050505050612a4e565b6040805160ff85811682529151918716916001600160401b038916917f36afdaf439a8f43fe72135135d804ae620b37a474f0943b5b85f6788312cad40919081900360200190a360ff83166123b85760ff85166000818152600560209081526040808320548151631182b87560e01b815260048101958652602481019283528651604482015286516001600160a01b03909216958695631182b875958d958a9593949093606490910192918601918190849084905b83811015611f00578181015183820152602001611ee8565b50505050905090810190601f168015611f2d5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015611f4d57600080fd5b505af192505050801561203157506040513d6000823e601f3d908101601f191682016040526020811015611f8057600080fd5b8101908080516040519392919084600160201b821115611f9f57600080fd5b908301906020820185811115611fb457600080fd5b8251600160201b811182820188101715611fcd57600080fd5b82525081516020918201929091019080838360005b83811015611ffa578181015183820152602001611fe2565b50505050905090810190601f1680156120275780820380516001836020036101000a031916815260200191505b5060405250505060015b612343576040516000815260443d101561204d575060006120e8565b60046000803e60005160e01c6308c379a0811461206e5760009150506120e8565b60043d036004833e81513d60248201116001600160401b0382111715612099576000925050506120e8565b80830180516001600160401b038111156120ba5760009450505050506120e8565b8060208301013d86018111156120d8576000955050505050506120e8565b601f01601f191660405250925050505b806120f35750612205565b60ff871660009081526007602052604081205461212a916001600160401b0390911690899061212590600290886113a7565b614527565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf948794849390840192918601918190849084905b838110156121c55781810151838201526020016121ad565b50505050905090810190601f1680156121f25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25061233e565b3d80801561222f576040519150601f19603f3d011682016040523d82523d6000602084013e612234565b606091505b5060ff8716600090815260076020526040812054612267916001600160401b0390911690899061212590600290886113a7565b60ff8716600090815260076020908152604080832080546001600160401b038082166001011667ffffffffffffffff19909116179055805182815284518184015284516001600160a01b038716947f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351948794849390840192918601918190849084905b838110156123025781810151838201526020016122ea565b50505050905090810190601f16801561232f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b6123b2565b8051156123b05760ff871660009081526007602052604081205461237c916001600160401b0390911690899061212590600190866113a7565b60ff8716600090815260076020526040902080546001600160401b038082166001011667ffffffffffffffff199091161790555b505b50612986565b60ff83166001141561265c5760ff8516600081815260056020908152604080832054815163831d65d160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563831d65d1958d958a9593949093606490910192918601918190849084905b8381101561244257818101518382015260200161242a565b50505050905090810190601f16801561246f5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561248f57600080fd5b505af19250505080156124a0575060015b6123b2576040516000815260443d10156124bc57506000612557565b60046000803e60005160e01c6308c379a081146124dd576000915050612557565b60043d036004833e81513d60248201116001600160401b038211171561250857600092505050612557565b80830180516001600160401b03811115612529576000945050505050612557565b8060208301013d860181111561254757600095505050505050612557565b601f01601f191660405250925050505b8061256257506125c7565b60408051602080825283518183015283516001600160a01b038616937ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf93869390928392830191850190808383600083156121c55781810151838201526020016121ad565b3d8080156125f1576040519150601f19603f3d011682016040523d82523d6000602084013e6125f6565b606091505b5060408051602080825283518183015283516001600160a01b038616937f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd297735193869390928392830191850190808383600083156123025781810151838201526020016122ea565b60ff8316600214156129865760ff8516600081815260056020908152604080832054815163c8509d8160e01b815260048101958652602481019283528651604482015286516001600160a01b0390921695869563c8509d81958d958a9593949093606490910192918601918190849084905b838110156126e65781810151838201526020016126ce565b50505050905090810190601f1680156127135780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561273357600080fd5b505af1925050508015612744575060015b612984576040516000815260443d1015612760575060006127fb565b60046000803e60005160e01c6308c379a081146127815760009150506127fb565b60043d036004833e81513d60248201116001600160401b03821117156127ac576000925050506127fb565b80830180516001600160401b038111156127cd5760009450505050506127fb565b8060208301013d86018111156127eb576000955050505050506127fb565b601f01601f191660405250925050505b8061280657506128af565b816001600160a01b03167ff91a8f63e5b3e0e89e5f93e1915a7805f3c52d9a73b3c09769785c2c7bf87acf826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561286f578181015183820152602001612857565b50505050905090810190601f16801561289c5780820380516001836020036101000a031916815260200191505b509250505060405180910390a250612984565b3d8080156128d9576040519150601f19603f3d011682016040523d82523d6000602084013e6128de565b606091505b50816001600160a01b03167f63ac299d6332d1cc4e61b81e59bc00c0ac7c798addadf33840f1307cd2977351826040518080602001828103825283818151815260200191508051906020019080838360005b83811015612948578181015183820152602001612930565b50505050905090810190601f1680156129755780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505b505b60ff80861660009081526009602052604090205461100591636f93d2e6918a913391879116806129b8575060ff881615155b604080516001600160e01b031960e088901b1681526001600160a01b039586166004820152939094166024840152604483019190915215156064820152905160848083019260209291908290030181600087803b158015612a1857600080fd5b505af1158015612a2c573d6000803e3d6000fd5b505050506040513d6020811015612a4257600080fd5b50505050505050505050505b5050505050505050505050505050565b630102ca0081565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b3361100714612acc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b8602e913960400191505060405180910390fd5b600b5460ff1615612b10576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b612b7984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526012815271626174636853697a65466f724f7261636c6560701b602082015291506146c29050565b15612c1457604080516020601f8401819004810282018101909252828152600091612bbc918585808385018382808284376000920191909152506147a992505050565b90506127108111158015612bd15750600a8110155b612c0c5760405162461bcd60e51b8152600401808060200182810382526032815260200180614a306032913960400191505060405180910390fd5b6001556134be565b612c7d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601281527118591913dc955c19185d1950da185b9b995b60721b602082015291506146c29050565b15612e0557606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060169091149050612d005760405162461bcd60e51b815260040180806020018281038252605a8152602001806148d1605a913960600191505060405180910390fd5b60018101516002820151601683015160ff82161590612d1e816147ae565b612d6f576040805162461bcd60e51b815260206004820152601960248201527f61646472657373206973206e6f74206120636f6e747261637400000000000000604482015290519081900360640190fd5b60ff8416600081815260056020908152604080832080546001600160a01b0319166001600160a01b038716908117909155808452600683528184208585528352818420805460ff199081166001179091556009909352818420805490931687151517909255519092917f7e3b6af43092577ee20e60eaa1d9b114a7031305c895ee7dd3ffe17196d2e1e091a350505050506134be565b612e7284848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526016815275195b98589b1953dc911a5cd8589b1950da185b9b995b60521b602082015291506146c29050565b15612fa357606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060029091149050612ef55760405162461bcd60e51b815260040180806020018281038252604a8152602001806149e6604a913960600191505060405180910390fd5b600181810151600283015160ff80831660009081526005602052604090205492939192908316909114906001600160a01b03168015612f99576001600160a01b038116600090815260066020908152604080832060ff881680855290835292819020805460ff1916861515908117909155815190815290517fa3132e3f9819fbddc7f0ed6d38d7feef59aa95112090b7c592f5cb5bc4aa4adc929181900390910190a25b50505050506134be565b61300784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c73757370656e6451756f72756d60981b602082015291506146c29050565b1561313c576002811461304b5760405162461bcd60e51b815260040180806020018281038252602d81526020018061495f602d913960400191505060405180910390fd5b600061308e600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a992505050565b905060008161ffff161180156130a8575060648161ffff16105b6130f2576040805162461bcd60e51b8152602060048201526016602482015275696e76616c69642073757370656e642071756f72756d60501b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100190206000908152600d60205220805461ffff90921661ffff199092169190911790556134be565b61319f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600c81526b72656f70656e51756f72756d60a01b602082015291506146c29050565b156132d257600281146131e35760405162461bcd60e51b815260040180806020018281038252602c81526020018061498c602c913960400191505060405180910390fd5b6000613226600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a992505050565b905060008161ffff16118015613240575060648161ffff16105b613289576040805162461bcd60e51b8152602060048201526015602482015274696e76616c69642072656f70656e2071756f72756d60581b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152815190819003600f0190206000908152600d60205220805461ffff90921661ffff199092169190911790556134be565b61333d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601481527363616e63656c5472616e7366657251756f72756d60601b602082015291506146c29050565b1561348157600281146133815760405162461bcd60e51b815260040180806020018281038252603481526020018061492b6034913960400191505060405180910390fd5b60006133c4600284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506147a992505050565b905060008161ffff161180156133de575060648161ffff16105b61342f576040805162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063616e63656c207472616e736665722071756f72756d0000604482015290519081900360640190fd5b604080517710d05390d15317d514905394d1915497d41493d413d4d05360421b815281519081900360180190206000908152600d60205220805461ffff90921661ffff199092169190911790556134be565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b6008602052600090815260409020546001600160401b031681565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081565b61100281565b60005460ff166135da576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b15801561361d57600080fd5b505afa158015613631573d6000803e3d6000fd5b505050506040513d602081101561364757600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b15801561368857600080fd5b505afa15801561369c573d6000803e3d6000fd5b505050506040513d60208110156136b257600080fd5b50519050806136bf575060155b6000821180156136cf5750808211155b61370e576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff16613755576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5cdc195b991959609a1b604482015290519081900360640190fd5b604080516e149153d4115397d41493d413d4d053608a1b8152905190819003600f0190206000906137a6907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614192565b905080156137e457600b805460ff1916905560405133907f899fe8c37dc61708a3aaa99c4bf143346c1d1da69af79be9e8920c0a6785b75290600090a25b505050565b600660209081526000928352604080842090915290825290205460ff1681565b6040518060400160405280600381526020016269626360e81b81525081565b610e1081565b61100381565b61200481565b60005460ff1615613892576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b7f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b80546001600160a01b0319908116611008179091557f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36805460ff199081169091557fd8af288fc1c8680b4f4706064cf021e264efb6828fcaf7eb5ca36818eb365bcc8054821660019081179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a805484166110049081179091557f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c38054841690557f72e4efa1513b071517c6c74dba31b5934a81aa83cddd400e7081df5529c9943680548416831790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054851690911790557fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e78054831690557f4e523af77f034e9810f1c94057f5e931fb3d16a51511a4c3add793617d18610580548316821790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805484166110001790557fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a80548316821790557f01112dd68e482ba8d68a7e828cff8b3abcea08eab88941953c180a7e650e9cd480548316821790557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1805484166110071790557f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba680548316821790557f4c7666bbcb22d46469f7cc282f70764a7012dca2cce630ff8d83db9a9cdd48f080548316821790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054909316611001179092557f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d248054821683179055600b60009081527f23f68c9bd22b8a93d06adabe17481c87c016bcbd20adc8bfd707a4d813a572176020527fdf0d5d05428057f5455c2dc8e810dd86d1e9350faa72f16bda8a45443c5b39328054831684179055603283556004805467ffffffffffffffff19166001600160401b031790556002819055600381905580549091169091179055565b6007602052600090815260409020546001600160401b031681565b60005460ff16613c51576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b6040805163569e4ed360e11b815233600482015290516000916110009163ad3c9da691602480820192602092909190829003018186803b158015613c9457600080fd5b505afa158015613ca8573d6000803e3d6000fd5b505050506040513d6020811015613cbe57600080fd5b505160408051633d42651560e11b8152905191925060009161100091637a84ca2a916004808301926020929190829003018186803b158015613cff57600080fd5b505afa158015613d13573d6000803e3d6000fd5b505050506040513d6020811015613d2957600080fd5b5051905080613d36575060155b600082118015613d465750808211155b613d85576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd0818d8589a5b995d60aa1b604482015290519081900360640190fd5b600b5460ff1615613dc9576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b604080516f14d554d411539117d41493d413d4d05360821b81529051908190036010019020600090613e1b907fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470614192565b905080156137e4576137e46140c9565b601181565b60005460ff16613e75576040805162461bcd60e51b81526020600482015260196024820152600080516020614a62833981519152604482015290519081900360640190fd5b33600090815260066020908152604080832060ff8089168552925290912054859116613ed25760405162461bcd60e51b81526004018080602001828103825260318152602001806148a06031913960400191505060405180910390fd5b60ff85166000908152600760209081526040808320548151601f88018490048402810184019092528682526001600160401b031692613f379284928a9261212592909189918c908c90819084018382808284376000920191909152506113a792505050565b60ff959095166000908152600760205260409020805467ffffffffffffffff191660019096016001600160401b03169590951790945550505050565b61100081565b600381565b61100481565b60408051600e808252818301909252606091630102ca0060ff851617918391602082018180368337505050600e81810187905260068201939093529182525090505b92915050565b600085613fdb575060006140c0565b606082518451865160800101016040519080825280601f01601f191660200182016040528015614012576020820181803683370190505b5090506000614020826147b4565b60208089015182520190508660008061403889614147565b8086526020909501949092509050614051828583614151565b9283019261405e88614147565b8086526020909501949092509050614077828583614151565b9283018a81526020019261408a87614147565b909250905061409a828583614151565b5083516020016140a86147ba565b60208183886065600019fa5051600114955050505050505b95945050505050565b600b5460ff161561410d576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b600b805460ff1916600117905560405133907f6f123d3d54c84a7960a573b31c221dcd86e13fd849c5adb0c6ca851468cc1ae490600090a2565b8051602090910191565b5b60208110614171578251825260209283019290910190601f1901614152565b915181516020939093036101000a6000190180199091169216919091179052565b6000828152600d602052604081205461ffff1661425b57604080516f14d554d411539117d41493d413d4d05360821b815281519081900360100181206000908152600d6020818152848320805461ffff199081166001179091556e149153d4115397d41493d413d4d053608a1b8552855194859003600f01852084528282528584208054821660029081179091557710d05390d15317d514905394d1915497d41493d413d4d05360421b8652865195869003601801909520845291905292902080549092161790555b6000838152600c6020526040902080546201000090046001600160801b03164210158061428c575082816001015414155b1561435f576000848152600d602090815260409182902054835461ffff90911661ffff199091161771ffffffffffffffffffffffffffffffff0000191662010000610e1042016001600160801b03160217835560018084018690558251918201909252338152614301916002840191906147d8565b5080546040805161ffff83168152620100009092046001600160801b0316602083015281810185905251339186917f9e109f0e55ef32e99e4880be2ec357f1ddb3469c79d0747ef4762da6e89fabe5916060908290030190a3614413565b60005b60028201548110156143ea57336001600160a01b031682600201828154811061438757fe5b6000918252602090912001546001600160a01b031614156143e2576040805162461bcd60e51b815260206004820152601060248201526f185b1c9958591e48185c1c1c9bdd995960821b604482015290519081900360640190fd5b600101614362565b50600281018054600181018255600091825260209091200180546001600160a01b031916331790555b8054600282015461ffff9091161161446d576000848152600c60205260408120805471ffffffffffffffffffffffffffffffffffff191681556001810182905590614461600283018261483d565b50506001915050613fc6565b5060009392505050565b600080600060606021855110156144a7575050604080516000808252602082019092529092508291508190614520565b600185015160218601518651604080516020198301808252601f19600119909401939093168101602001909152604189019392916060919080156144f2576020820181803683370190505b509050600061450082614147565b509050614512858260218d5103614151565b506001975091955093509150505b9193509193565b600b5460ff161561456b576040805162461bcd60e51b81526020600482015260096024820152681cdd5cdc195b99195960ba1b604482015290519081900360640190fd5b6002544311156145aa576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b1617909155600355436002556145eb565b600380546001908101918290555410156145eb576004805467ffffffffffffffff1981166001600160401b036001600793840b810190930b16179091556003555b8160ff16836001600160401b0316600460009054906101000a900460070b6001600160401b03167f3a6e0fc61675aa2a100bcba0568368bb92bcec91c97673391074f11138f0cffe6102ca85604051808361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561468257818101518382015260200161466a565b50505050905090810190601f1680156146af5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a4505050565b6000816040516020018082805190602001908083835b602083106146f75780518252601f1990920191602091820191016146d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083106147655780518252601f199092019160209182019101614746565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b3b151590565b60200190565b60405180602001604052806001906020820280368337509192915050565b82805482825590600052602060002090810192821561482d579160200282015b8281111561482d57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147f8565b5061483992915061485e565b5090565b508054600082559060005260206000209081019061485b9190614885565b50565b61488291905b808211156148395780546001600160a01b0319168155600101614864565b90565b61488291905b80821115614839576000815560010161488b56fe74686520636f6e747261637420616e64206368616e6e656c2068617665206e6f74206265656e20726567697374657265646c656e677468206f662076616c756520666f72206164644f725570646174654368616e6e656c2073686f756c642062652032322c206368616e6e656c49643a697346726f6d53797374656d3a68616e646c6572416464726573736c656e677468206f662076616c756520666f722063616e63656c5472616e7366657251756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722073757370656e6451756f72756d2073686f756c6420626520326c656e677468206f662076616c756520666f722072656f70656e51756f72756d2073686f756c642062652032746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f7220656e61626c654f7244697361626c654368616e6e656c2073686f756c6420626520322c206368616e6e656c49643a6973456e61626c65746865206e6577426174636853697a65466f724f7261636c652073686f756c6420626520696e205b31302c2031303030305d74686520636f6e7472616374206e6f7420696e697420796574000000000000006c6967687420636c69656e74206e6f742073796e632074686520626c6f636b20796574a164736f6c6343000604000a", + Code: feynman.RialtoCrossChainContract, }, { ContractAddr: common.HexToAddress(StakingContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106103d25760003560e01c8063718a8aa8116101fd578063b88a802f11610118578063dc927faf116100ab578063f45fd80b1161007a578063f45fd80b14610cdb578063f9a2bbc714610d20578063fa03f79714610d35578063fc3e5908146106d3578063fd6a687914610d4a576103d9565b8063dc927faf14610c87578063df8079e914610c9c578063edc1a5b014610cb1578063f1fad10414610cc6576103d9565b8063c81b1662116100e7578063c81b166214610bb2578063c8509d8114610bc7578063d61b9b9314610c4c578063d7ecfcb614610890576103d9565b8063b88a802f14610b38578063baaafd3b14610b4d578063bf8546ca14610b62578063c2117d8214610b9d576103d9565b80639dc0926211610190578063aad560631161015f578063aad5606314610a2e578063ab51bb9614610a43578063ac43175114610a58578063b14315df14610b23576103d9565b80639dc09262146109c6578063a1a11bf5146109db578063a78abc16146109f0578063aa82dce114610a19576103d9565b80637e434d54116101cc5780637e434d5414610917578063831d65d11461092c57806392b888a41461066a57806396713da9146109b1576103d9565b8063718a8aa8146108a557806375aca593146108ba57806375d47a0a146108ed5780637942fd0514610902576103d9565b8063413d9c3a116102ed5780635d17c8bd116102805780636bd8f8041161024f5780636bd8f804146108125780636e47b482146108485780636fb7f7eb1461085d57806370fd5bad14610890576103d9565b80635d17c8bd146107be5780635d499b1b146107d357806362b171d2146107e857806369b635b6146107fd576103d9565b80634d99dd16116102bc5780634d99dd161461075357806351b4dce31461077f57806351e8067214610794578063552aaf93146107a9576103d9565b8063413d9c3a146106e857806343756e5c146106fd578063493279b1146107125780634bf6c8821461073e576103d9565b8063151817e311610365578063333ad3e711610334578063333ad3e7146106a957806334c43354146106be5780633dffc3871461066a5780633fdfa7e4146106d3576103d9565b8063151817e31461063f57806317c9efb01461066a578063280870281461067f5780632fdeb11114610694576103d9565b80630c795715116103a15780630c795715146104cc5780630e2374a5146104e15780631182b8751461051257806311fe9ec61461060c576103d9565b8063026e402b146103de578063029859921461040c578063047636d1146104335780630bee7a671461049e576103d9565b366103d957005b600080fd5b61040a600480360360408110156103f457600080fd5b506001600160a01b038135169060200135610d5f565b005b34801561041857600080fd5b50610421610d9c565b60408051918252519081900360200190f35b34801561043f57600080fd5b506104666004803603602081101561045657600080fd5b50356001600160a01b0316610da2565b6040518082606080838360005b8381101561048b578181015183820152602001610473565b5050505090500191505060405180910390f35b3480156104aa57600080fd5b506104b3610df6565b6040805163ffffffff9092168252519081900360200190f35b3480156104d857600080fd5b50610421610dfb565b3480156104ed57600080fd5b506104f6610e01565b604080516001600160a01b039092168252519081900360200190f35b34801561051e57600080fd5b506105976004803603604081101561053557600080fd5b60ff8235169190810190604081016020820135600160201b81111561055957600080fd5b82018360208201111561056b57600080fd5b803590602001918460018302840111600160201b8311171561058c57600080fd5b509092509050610e07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105d15781810151838201526020016105b9565b50505050905090810190601f1680156105fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061857600080fd5b506104216004803603602081101561062f57600080fd5b50356001600160a01b0316610fc3565b34801561064b57600080fd5b50610654610fde565b6040805160ff9092168252519081900360200190f35b34801561067657600080fd5b50610654610fe3565b34801561068b57600080fd5b506104f6610fe8565b3480156106a057600080fd5b50610421610fee565b3480156106b557600080fd5b506104b3610ff4565b3480156106ca57600080fd5b50610421610ff9565b3480156106df57600080fd5b50610654611004565b3480156106f457600080fd5b50610421611009565b34801561070957600080fd5b506104f6611010565b34801561071e57600080fd5b50610727611016565b6040805161ffff9092168252519081900360200190f35b34801561074a57600080fd5b5061065461101c565b61040a6004803603604081101561076957600080fd5b506001600160a01b038135169060200135611021565b34801561078b57600080fd5b506104f661164e565b3480156107a057600080fd5b506104f6611654565b3480156107b557600080fd5b5061065461165a565b3480156107ca57600080fd5b5061042161165f565b3480156107df57600080fd5b50610421611665565b3480156107f457600080fd5b5061042161166e565b34801561080957600080fd5b5061042161180e565b61040a6004803603606081101561082857600080fd5b506001600160a01b03813581169160208101359091169060400135610d5f565b34801561085457600080fd5b506104f6611814565b34801561086957600080fd5b506104216004803603602081101561088057600080fd5b50356001600160a01b031661181a565b34801561089c57600080fd5b50610654611835565b3480156108b157600080fd5b5061065461183a565b3480156108c657600080fd5b50610421600480360360208110156108dd57600080fd5b50356001600160a01b031661183f565b3480156108f957600080fd5b506104f661185a565b34801561090e57600080fd5b50610654611860565b34801561092357600080fd5b506104f6611865565b34801561093857600080fd5b5061040a6004803603604081101561094f57600080fd5b60ff8235169190810190604081016020820135600160201b81111561097357600080fd5b82018360208201111561098557600080fd5b803590602001918460018302840111600160201b831117156109a657600080fd5b50909250905061186b565b3480156109bd57600080fd5b50610654611b33565b3480156109d257600080fd5b506104f6611b38565b3480156109e757600080fd5b506104f6611b3e565b3480156109fc57600080fd5b50610a05611b44565b604080519115158252519081900360200190f35b348015610a2557600080fd5b506104f6611b4d565b348015610a3a57600080fd5b506104f6611b53565b348015610a4f57600080fd5b506104b361165a565b348015610a6457600080fd5b5061040a60048036036040811015610a7b57600080fd5b810190602081018135600160201b811115610a9557600080fd5b820183602082011115610aa757600080fd5b803590602001918460018302840111600160201b83111715610ac857600080fd5b919390929091602081019035600160201b811115610ae557600080fd5b820183602082011115610af757600080fd5b803590602001918460018302840111600160201b83111715610b1857600080fd5b509092509050611b59565b348015610b2f57600080fd5b506106546122eb565b348015610b4457600080fd5b506104216122f0565b348015610b5957600080fd5b5061042161248d565b348015610b6e57600080fd5b5061042160048036036040811015610b8557600080fd5b506001600160a01b0381358116916020013516612498565b348015610ba957600080fd5b506104216124c5565b348015610bbe57600080fd5b506104f66124cb565b348015610bd357600080fd5b5061040a60048036036040811015610bea57600080fd5b60ff8235169190810190604081016020820135600160201b811115610c0e57600080fd5b820183602082011115610c2057600080fd5b803590602001918460018302840111600160201b83111715610c4157600080fd5b5090925090506124d1565b348015610c5857600080fd5b5061042160048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166126f4565b348015610c9357600080fd5b506104f661271f565b348015610ca857600080fd5b506104f6612725565b348015610cbd57600080fd5b5061042161272b565b348015610cd257600080fd5b50610654612738565b348015610ce757600080fd5b5061042160048036036060811015610cfe57600080fd5b506001600160a01b03813581169160208101358216916040909101351661273d565b348015610d2c57600080fd5b506104f6612772565b348015610d4157600080fd5b50610421612778565b348015610d5657600080fd5b506104f661277e565b6040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081cdd5c1c1bdc9d1959609a1b604482015290519081900360640190fd5b60035481565b610daa614801565b610db2614801565b6001600160a01b0383166000818152600b60209081526040808320548552838352600c82528083205485830152928252600d9052819020549082015290505b919050565b606481565b6108fc81565b61200181565b60603361200014610e495760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e4602f913960400191505060405180910390fd5b60005460ff16610e8c576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b610e9461481f565b610edb610ed685858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278492505050565b6127a9565b90506000610ef0610eeb836127f3565b612841565b90506000606060ff831660041415610f1557610f0b846128f8565b9092509050610f6c565b60ff831660051415610f2a57610f0b84612ad8565b6040805162461bcd60e51b8152602060048201526012602482015271756e6b6e6f776e206576656e74207479706560701b604482015290519081900360640190fd5b63ffffffff821615610fb8576040805163ffffffff84168152905160ff8516917f391d6e5ea6ab6c49b9a0abb1782cae5def8d711f973b00c729658c0b2a80b31b919081900360200190a25b979650505050505050565b6001600160a01b031660009081526006602052604090205490565b600581565b600181565b61200581565b60015481565b606581565b662386f26fc1000081565b600381565b620a8c0081565b61100181565b6102ca81565b600881565b60105460ff166002141561106d576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6010805460ff19166002179055806402540be400340615801561109557506402540be4008106155b6110e6576040805162461bcd60e51b815260206004820152601c60248201527f707265636973696f6e206c6f737320696e20636f6e76657273696f6e00000000604482015290519081900360640190fd5b60005460ff16611129576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b600154341015611177576040805162461bcd60e51b81526020600482015260146024820152736e6f7420656e6f7567682072656c61792066656560601b604482015290519081900360640190fd5b600354821015611232573360009081526005602090815260408083206001600160a01b038716845290915290205482146111e9576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b604482015290519081900360640190fd5b6002548211611232576040805162461bcd60e51b815260206004820152601060248201526f6e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020544210156112aa576040805162461bcd60e51b815260206004820152601a60248201527f70656e64696e6720756e64656c65676174696f6e206578697374000000000000604482015290519081900360640190fd5b604080518082018252601081526f6e6f7420656e6f7567682066756e647360801b602080830191909152336000908152600582528381206001600160a01b03881682529091529182205461130591859063ffffffff612df816565b9050801561134d57600254811161134d5760405162461bcd60e51b81526004018080602001828103825260258152602001806149bf6025913960400191505060405180910390fd5b6000611364846402540be40063ffffffff612e8f16565b600254909150349060009061138090839063ffffffff612ed816565b6040805160038082526080820190925291925060609190816020015b606081526020019060019003908161139c5790505090506113bc33612f1a565b816000815181106113c957fe5b60200260200101819052506113e6886001600160a01b0316612f1a565b816001815181106113f357fe5b602002602001018190525061140784612f3d565b8160028151811061141457fe5b60200260200101819052506060611434600261142f84612f50565b612fda565b8051602080830191909120600f80546000908152600a845260408082209390935581546001908101909255338152600c909352912080549091019055905061148542620a8c0063ffffffff61306016565b3360009081526007602090815260408083206001600160a01b038e16845290915290205561200063f7a251d76010836114c9876402540be40063ffffffff612e8f16565b6040518463ffffffff1660e01b8152600401808460ff1660ff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561152757818101518382015260200161150f565b50505050905090810190601f1680156115545780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561157557600080fd5b505af1158015611589573d6000803e3d6000fd5b5050604051611004925085156108fc02915085906000818181858888f193505050501580156115bc573d6000803e3d6000fd5b506002546040516110029180156108fc02916000818181858888f193505050501580156115ed573d6000803e3d6000fd5b50604080518981526020810185905281516001600160a01b038c169233927fdf0b6ac27f3f3bb31cee3dab0f4fe40cc19c6a3f8daaec52e06b261e58a12519929081900390910190a350506010805460ff1916600117905550505050505050565b61200681565b61200081565b600081565b60025481565b6402540be40081565b60105460009060ff16600214156116bd576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff191660021790553360009081526008602052604090205480611724576040805162461bcd60e51b81526020600482015260146024820152736e6f20756e64656c6567617465642066756e647360601b604482015290519081900360640190fd5b336000818152600860205260408082208290556011549051919291849084818181858888f193505050503d806000811461177a576040519150601f19603f3d011682016040523d82523d6000602084013e61177f565b606091505b50509050806117c7576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917fc712d133b8d448221aaed2198ed1f0db6dfc860fb01bc3a630916fe6cbef946f919081900360200190a2506010805460ff1916600117905590565b60035490565b61100581565b6001600160a01b031660009081526004602052604090205490565b600281565b601081565b6001600160a01b031660009081526008602052604090205490565b61100881565b600b81565b61200381565b33612000146118ab5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e4602f913960400191505060405180910390fd5b60005460ff166118ee576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b6118f661481f565b611938610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278492505050565b905060008060606000805b61194c866130ba565b156119b7578061196957611962610eeb876127f3565b94506119af565b80600114156119855761197e610eeb876127f3565b93506119af565b80600214156119aa5761199f61199a876127f3565b6130db565b9250600191506119af565b6119b7565b600101611943565b816119fd576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b611a068361314b565b611a49576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b611a55610ed684612784565b95506000611a65610eeb886127f3565b9050611a6f61481f565b611a78886130ba565b15611a9b57611a94610ed6611a8f61199a8b6127f3565b612784565b9050611adc565b6040805162461bcd60e51b8152602060048201526011602482015270656d7074792061636b207061636b61676560781b604482015290519081900360640190fd5b60ff821660011415611af857611af381888861319f565b611b26565b60ff821660021415611b0f57611af3818888613556565b60ff821660031415610f2a57611af3818888613823565b5050505050505050505050565b600981565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b60005460ff16611bb0576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b3361100714611bf05760405162461bcd60e51b815260040180806020018281038252602e815260200180614935602e913960400191505060405180910390fd5b611c5184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600a81526972656c6179657246656560b01b60208201529150613b889050565b15611db75760208114611cab576040805162461bcd60e51b815260206004820152601d60248201527f6c656e677468206f662072656c61796572466565206d69736d61746368000000604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611ce991858580838501838280828437600092019190915250613c6f92505050565b90506003548110611d2b5760405162461bcd60e51b815260040180806020018281038252602e815260200180614963602e913960400191505060405180910390fd5b6002548111611d6b5760405162461bcd60e51b815260040180806020018281038252602e815260200180614991602e913960400191505060405180910390fd5b6402540be400810615611daf5760405162461bcd60e51b815260040180806020018281038252602c815260200180614909602c913960400191505060405180910390fd5b600155612259565b611e1b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c62534352656c6179657246656560981b60208201529150613b889050565b15611f7d5760208114611e75576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f662062534352656c61796572466565206d69736d61746368604482015290519081900360640190fd5b604080516020601f8401819004810282018101909252828152600091611eb391858580838501838280828437600092019190915250613c6f92505050565b905080611ef15760405162461bcd60e51b8152600401808060200182810382526022815260200180614a136022913960400191505060405180910390fd5b6001548110611f315760405162461bcd60e51b815260040180806020018281038252602e815260200180614889602e913960400191505060405180910390fd5b6402540be400810615611f755760405162461bcd60e51b815260040180806020018281038252602f81526020018061485a602f913960400191505060405180910390fd5b600255612259565b611fe184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c36b4b72232b632b3b0ba34b7b760991b60208201529150613b889050565b156120c3576020811461203b576040805162461bcd60e51b815260206004820181905260248201527f6c656e677468206f66206d696e44656c65676174696f6e206d69736d61746368604482015290519081900360640190fd5b604080516020601f840181900481028201810190925282815260009161207991858580838501838280828437600092019190915250613c6f92505050565b905060015481116120bb5760405162461bcd60e51b81526004018080602001828103825260318152602001806148b76031913960400191505060405180910390fd5b600355612259565b61212584848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a7472616e7366657247617360a81b60208201529150613b889050565b1561221c576020811461217f576040805162461bcd60e51b815260206004820152601e60248201527f6c656e677468206f66207472616e73666572476173206d69736d617463680000604482015290519081900360640190fd5b604080516020601f84018190048102820181019092528281526000916121bd91858580838501838280828437600092019190915250613c6f92505050565b905060008111612214576040805162461bcd60e51b815260206004820152601e60248201527f746865207472616e736665724761732063616e6e6f74206265207a65726f0000604482015290519081900360640190fd5b601155612259565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b600481565b60105460009060ff166002141561233f576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b506010805460ff1916600217905533600090815260066020526040902054806123a3576040805162461bcd60e51b81526020600482015260116024820152701b9bc81c195b991a5b99c81c995dd85c99607a1b604482015290519081900360640190fd5b336000818152600660205260408082208290556011549051919291849084818181858888f193505050503d80600081146123f9576040519150601f19603f3d011682016040523d82523d6000602084013e6123fe565b606091505b5050905080612446576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b60408051838152905133917f83b78188b13346b2ffb484da70d42ee27de7fbf9f2bd8045269e10ed643ccd76919081900360200190a2506010805460ff1916600117905590565b6638d7ea4c68000081565b6001600160a01b038083166000908152600760209081526040808320938516835292905220545b92915050565b60015490565b61100281565b33612000146125115760405162461bcd60e51b815260040180806020018281038252602f8152602001806149e4602f913960400191505060405180910390fd5b60005460ff16612554576638d7ea4c6800006001908155662386f26fc1000060025568056bc75e2d631000006003556108fc6011556000805460ff191690911790555b61259382828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061314b92505050565b6125d6576040805162461bcd60e51b815260206004820152600f60248201526e0eee4dedcce40e0c2c6d640d0c2e6d608b1b604482015290519081900360640190fd5b6125de61481f565b612620610ed684848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278492505050565b90506000612630610eeb836127f3565b905061263a61481f565b612643836130ba565b156126615761265a610ed6611a8f61199a866127f3565b90506126a7565b6040805162461bcd60e51b8152602060048201526016602482015275656d707479206661696c2061636b207061636b61676560501b604482015290519081900360640190fd5b60ff8216600114156126c1576126bc81613c74565b6126eb565b60ff8216600214156126d6576126bc81613e8e565b60ff821660031415610f2a576126bc81613fb8565b5050505b505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61100381565b61200481565b68056bc75e2d6310000081565b601181565b6001600160a01b0392831660009081526009602090815260408083209486168352938152838220929094168152925290205490565b61100081565b60115481565b61100481565b61278c61483f565b506040805180820190915281518152602082810190820152919050565b6127b161481f565b6127ba8261411d565b6127c357600080fd5b60006127d28360200151614157565b60208085015160408051808201909152868152920190820152915050919050565b6127fb61483f565b612804826130ba565b61280d57600080fd5b6020820151600061281d826141ba565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061285657508151602110155b61285f57600080fd5b600061286e8360200151614157565b905080836000015110156128c9576040805162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015290519081900360640190fd5b8251602080850151830180519284900392918310156128ef57826020036101000a820491505b50949350505050565b600060606000806000805b61290c876130ba565b1561295e578261292e57612927612922886127f3565b6142ed565b9150612953565b826001141561294e57612943610eeb886127f3565b905060019350612953565b61295e565b826001019250612903565b836129a4576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156129ee57600080fd5b505af1158015612a02573d6000803e3d6000fd5b505050506040513d6020811015612a1857600080fd5b5051905080612a3d57612a2f600484846065614307565b965096505050505050612ad3565b6001600160a01b038316600090815260066020526040902054612a66908363ffffffff61306016565b6001600160a01b038416600081815260066020908152604091829020939093558051858152905191927f7cc266c7b444f808013fa187f7b904d470a051a6564e78f482aa496581ba4bf892918290030190a260408051600080825260208201909252909750955050505050505b915091565b600060606000806000806000805b612aef896130ba565b15612b795784612b0c57612b056129228a6127f3565b9350612b6e565b8460011415612b2857612b216129228a6127f3565b9250612b6e565b8460021415612b4857612b3d610eeb8a6127f3565b915060019550612b6e565b8460031415612b6957612b62612b5d8a6127f3565b614403565b9050612b6e565b612b79565b846001019450612ae6565b85612bbf576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b60006110046001600160a01b031663727be1f8846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505050506040513d6020811015612c3357600080fd5b5051905080612c5a57612c4a600586856065614307565b9850985050505050505050612ad3565b6001600160a01b038086166000818152600760209081526040808320948916835293815283822082905591815260089091522054612c9e908463ffffffff61306016565b6001600160a01b0386166000908152600860205260409020558115612d8c576001600160a01b038516600090815260046020526040902054612ce6908463ffffffff612ed816565b6001600160a01b03808716600090815260046020908152604080832094909455600581528382209288168252919091522054612d28908463ffffffff612ed816565b6001600160a01b038087166000818152600560209081526040808320948a16808452948252918290209490945580518781529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a35b836001600160a01b0316856001600160a01b03167f35a799836f74fac7eccf5c73902823b970543d2274d3b93d8da3d37a255772a2856040518082815260200191505060405180910390a360408051600080825260208201909252909950975050505050505050915091565b60008184841115612e875760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e4c578181015183820152602001612e34565b50505050905090810190601f168015612e795780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000612ed183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614447565b9392505050565b6000612ed183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612df8565b60408051600560a21b8318601482015260348101909152606090612ed1816144ac565b60606124bf612f4b83614502565b6144ac565b6060815160001415612f715750604080516000815260208101909152610df1565b606082600081518110612f8057fe5b602002602001015190506000600190505b8351811015612fc157612fb782858381518110612faa57fe5b60200260200101516145e8565b9150600101612f91565b50612ed1612fd4825160c060ff16614665565b826145e8565b6040805160028082526060828101909352829190816020015b6060815260200190600190039081612ff35790505090506130168460ff16612f3d565b8160008151811061302357fe5b6020026020010181905250613037836144ac565b8160018151811061304457fe5b602002602001018190525061305881612f50565b949350505050565b600082820183811015612ed1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006130c461483f565b505080518051602091820151919092015191011190565b80516060906130e957600080fd5b60006130f88360200151614157565b83516040805191839003808352601f19601f820116830160200190915291925060609082801561312f576020820181803683370190505b50905060008160200190506128ef84876020015101828561475d565b8051602080830191909120600e546000908152600a909252604082205480821461317a57600092505050610df1565b5050600e80546000908152600a60205260408120558054600190810190915592915050565b60008060008060005b6131b1886130ba565b1561321a57836131ce576131c7612922896127f3565b925061320f565b83600114156131ea576131e3612922896127f3565b915061320f565b836002141561320a576131ff610eeb896127f3565b90506001945061320f565b61321a565b8360010193506131a8565b84613260576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613277826402540be40063ffffffff6147a816565b6001600160a01b0385166000908152600b602052604090208054600019019055905060ff8816600114156133bd5760ff8716156132ea576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038416600090815260046020526040902054613313908263ffffffff61306016565b6001600160a01b03808616600090815260046020908152604080832094909455600581528382209287168252919091522054613355908263ffffffff61306016565b6001600160a01b038086166000818152600560209081526040808320948916808452948252918290209490945580518581529051929391927f9a57c81564ab02642f34fd87e41baa9b074c18342cec3b7268b62bf752018fd1929181900390910190a361354b565b60ff881661350f576001600160a01b0384166000908152600860205260409020546133ee908263ffffffff61306016565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b15801561344a57600080fd5b505af115801561345e573d6000803e3d6000fd5b505050506040513d602081101561347457600080fd5b50516134bd576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040805182815260ff8916602082015281516001600160a01b0380871693908816927fcbd481ae600289fad8c0484d07ce0ffe4f010d7c844ecfdeaf2a13fead52886e929081900390910190a361354b565b6040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b505050505050505050565b60008060008060005b613568886130ba565b156135d157836135855761357e612922896127f3565b92506135c6565b83600114156135a15761359a612922896127f3565b91506135c6565b83600214156135c1576135b6610eeb896127f3565b9050600194506135c6565b6135d1565b83600101935061355f565b84613617576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b600061362e826402540be40063ffffffff6147a816565b6001600160a01b0385166000908152600c602052604090208054600019019055905060ff8816600114156137ad5760ff8716156136a1576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b0384166000908152600460205260409020546136ca908263ffffffff612ed816565b6001600160a01b0380861660009081526004602090815260408083209490945560058152838220928716825291909152205461370c908263ffffffff612ed816565b6001600160a01b0380861660009081526005602090815260408083209388168352929052205561374542620a8c0063ffffffff61306016565b6001600160a01b038086166000818152600760209081526040808320948916808452948252918290209490945580518581529051929391927fd6f878a5bcbbe79a64e6418bb0d56aaa20b9a60587d45749819df88dfc7c3c44929181900390910190a361354b565b60ff881661350f576001600160a01b03808516600081815260076020908152604080832094881680845294825280832092909255815185815260ff8c169181019190915281517f4417d10c1e33efa83a770b8d4f47176e78c08c1298d534901ad3b16bb585fa2e929181900390910190a361354b565b6000806000806000805b613836896130ba565b156138bb57846138535761384c6129228a6127f3565b93506138b0565b846001141561386f576138686129228a6127f3565b92506138b0565b846002141561388b576138846129228a6127f3565b91506138b0565b84600314156138ab576138a0610eeb8a6127f3565b9050600195506138b0565b6138bb565b84600101945061382d565b85613901576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613918826402540be40063ffffffff6147a816565b6001600160a01b0386166000908152600d602052604090208054600019019055905060ff891660011415613aeb5760ff88161561398b576040805162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b604482015290519081900360640190fd5b6001600160a01b038086166000908152600560209081526040808320938816835292905220546139c1908263ffffffff612ed816565b6001600160a01b038681166000908152600560209081526040808320898516845290915280822093909355908516815220546139fd9082613060565b6001600160a01b03808716600090815260056020908152604080832093881683529290522055613a3642620a8c0063ffffffff61306016565b6001600160a01b0380871660009081526009602090815260408083208985168452825280832093881683529290522055613a7942620a8c0063ffffffff61306016565b6001600160a01b038087166000818152600960209081526040808320898616808552908352818420958b1680855295835292819020959095558451868152945191947f78bffae3f8c6691ac7fc1a3bff800cb2d612f5ad9ae5b0444cfe2eb15c189e18929081900390910190a4613b7c565b60ff891661350f576001600160a01b038581166000818152600960209081526040808320898616808552818452828520968a16808652968452828520859055908352818420818552835281842093909355805186815260ff8e169281019290925280519293927fb93bee5c59f85ede6b074a99f4ffcd3e3fc0d5c3d8156de331de89a49e0ce77c9281900390910190a45b50505050505050505050565b6000816040516020018082805190602001908083835b60208310613bbd5780518252601f199092019160209182019101613b9e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310613c2b5780518252601f199092019160209182019101613c0c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014905092915050565b015190565b60008060008060005b613c86866130ba565b15613cef5783613ca357613c9c612922876127f3565b9250613ce4565b8360011415613cbf57613cb8612922876127f3565b9150613ce4565b8360021415613cdf57613cd4610eeb876127f3565b905060019450613ce4565b613cef565b836001019350613c7d565b84613d35576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6000613d4c826402540be40063ffffffff6147a816565b6001600160a01b0385166000908152600b6020908152604080832080546000190190556008909152902054909150613d8a908263ffffffff61306016565b6001600160a01b0385166000908152600860209081526040808320939093558251630e4f7c3f60e31b81526004810185905292516110049363727be1f89360248083019493928390030190829087803b158015613de657600080fd5b505af1158015613dfa573d6000803e3d6000fd5b505050506040513d6020811015613e1057600080fd5b5051613e59576040805162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8189b988819985a5b1959606a1b604482015290519081900360640190fd5b6040516001907ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b90600090a250505050505050565b60008060008060005b613ea0866130ba565b15613f095783613ebd57613eb6612922876127f3565b9250613efe565b8360011415613ed957613ed2612922876127f3565b9150613efe565b8360021415613ef957613eee610eeb876127f3565b905060019450613efe565b613f09565b836001019350613e97565b84613f4f576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038084166000908152600c60209081526040808320805460001901905560078252808320938616835292905281812081905590516002917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a2505050505050565b6000806000806000805b613fcb876130ba565b156140505784613fe857613fe1612922886127f3565b9350614045565b846001141561400457613ffd612922886127f3565b9250614045565b846002141561402057614019612922886127f3565b9150614045565b846003141561404057614035610eeb886127f3565b905060019550614045565b614050565b846001019450613fc2565b85614096576040805162461bcd60e51b81526020600482015260116024820152701c9b1c08191958dbd9194819985a5b1959607a1b604482015290519081900360640190fd5b6001600160a01b038481166000908152600d602090815260408083208054600019019055600982528083208785168085528184528285209588168552948352818420849055825280832093835292905281812081905590516003917ff83de021914a4585482db5ca47d520a5657165b443fa2c7ef8ed4635f054da9b91a250505050505050565b805160009061412e57506000610df1565b6020820151805160001a9060c082101561414d57600092505050610df1565b5060019392505050565b8051600090811a6080811015614171576000915050610df1565b60b881108061418c575060c0811080159061418c575060f881105b1561419b576001915050610df1565b60c08110156141af5760b519019050610df1565b60f519019050610df1565b80516000908190811a60808110156141d557600191506142e6565b60b88110156141ea57607e19810191506142e6565b60c081101561426457600060b78203600186019550806020036101000a86510491506001810182019350508083101561425e576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b506142e6565b60f88110156142795760be19810191506142e6565b600060f78203600186019550806020036101000a8651049150600181018201935050808310156142e4576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b505b5092915050565b80516000906015146142fe57600080fd5b6124bf82612841565b60006060614320846402540be40063ffffffff612e8f16565b60408051600480825260a0820190925291955060609190816020015b606081526020019060019003908161433c57905050905061435f8760ff16612f3d565b8160008151811061436c57fe5b6020026020010181905250614389866001600160a01b0316612f1a565b8160018151811061439657fe5b60200260200101819052506143aa85612f3d565b816002815181106143b757fe5b60200260200101819052506143d18463ffffffff16612f3d565b816003815181106143de57fe5b602002602001018190525060606143f482612f50565b94989497509395505050505050565b805160009060011461441457600080fd5b6020820151805160001a9081158061442c5750608082145b1561443c57600092505050610df1565b600192505050610df1565b600081836144965760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612e4c578181015183820152602001612e34565b5060008385816144a257fe5b0495945050505050565b6060815160011480156144de5750607f60f81b826000815181106144cc57fe5b01602001516001600160f81b03191611155b156144ea575080610df1565b6124bf6144fc8351608060ff16614665565b836145e8565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff1984166145465750601861456a565b6fffffffffffffffffffffffffffffffff1984166145665750601061456a565b5060005b60208110156145a05781818151811061457f57fe5b01602001516001600160f81b03191615614598576145a0565b60010161456a565b60008160200390506060816040519080825280601f01601f1916602001820160405280156145d5576020820181803683370190505b5080830196909652508452509192915050565b6060806040519050835180825260208201818101602087015b81831015614619578051835260209283019201614601565b50855184518101855292509050808201602086015b8183101561464657805183526020928301920161462e565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106146b5576040805162461bcd60e51b815260206004820152600e60248201526d696e70757420746f6f206c6f6e6760901b604482015290519081900360640190fd5b6040805160018082528183019092526060916020820181803683370190505090506037841161470f5782840160f81b816000815181106146f157fe5b60200101906001600160f81b031916908160001a90535090506124bf565b606061471a85614502565b90508381510160370160f81b8260008151811061473357fe5b60200101906001600160f81b031916908160001a90535061475482826145e8565b95945050505050565b80614767576126ef565b5b60208110614787578251825260209283019290910190601f1901614768565b915181516020939093036101000a6000190180199091169216919091179052565b6000826147b7575060006124bf565b828202828482816147c457fe5b0414612ed15760405162461bcd60e51b81526004018080602001828103825260218152602001806148e86021913960400191505060405180910390fd5b60405180606001604052806003906020820280368337509192915050565b604051806040016040528061483261483f565b8152602001600081525090565b60405180604001604052806000815260200160008152509056fe7468652042534352656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f7468652042534352656c61796572466565206d757374206265206c657373207468616e2072656c61796572466565746865206d696e44656c65676174696f6e206d7573742062652067726561746572207468616e2072656c61796572466565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f777468652072656c61796572466565206d6f642074656e20646563696d616c73206d757374206265207a65726f746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163747468652072656c61796572466565206d757374206265206c657373207468616e206d696e44656c65676174696f6e7468652072656c61796572466565206d757374206265206d6f7265207468616e2042534352656c61796572466565696e73756666696369656e742062616c616e636520616674657220756e64656c6567617465746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e74726163747468652042534352656c61796572466565206d757374206e6f74206265207a65726fa164736f6c6343000604000a", + Code: feynman.RialtoStakingContract, }, { ContractAddr: common.HexToAddress(StakeHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bed578063fb50b31f1462000c12578063fc0c5ff11462000c37578063ff69ab611462000c4f57600080fd5b8063e992aaf51462000b6a578063efdbf0e11462000b82578063f1f74d841462000bbe578063f1fad1041462000bd657600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000afd578063daacdb661462000b15578063dbda7fb31462000b2d578063e8f67c3b1462000b5257600080fd5b8063d115a2061462000a9b578063d6ca429d1462000ab3578063d7c2dfc81462000ad857600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1d578063c473318f1462000a42578063c8509d81146200083b578063cbb04d9d1462000a5a57600080fd5b8063b187bd26146200098a578063baa7199e14620009aa578063bdceadf314620009cf578063bff02e2014620009e757600080fd5b8063982ef0a711620001da578063982ef0a714620008f5578063a43569b3146200090c578063aad3ec961462000940578063ac431751146200096557600080fd5b806386d5450614620008785780638a4d3fa814620008b25780638cd22b2214620008d057600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080b5780638129fc1c1462000823578063831d65d1146200083b5780638456cb59146200086057600080fd5b8063663706d314620007385780636ec01b2714620007695780636f8e2fa414620007c157806375cc7d8914620007e657600080fd5b80635949187111620002d25780635949187114620006a05780635e7cc1c914620006c557806363a036b514620006ea57806364028fbd146200072157600080fd5b80634bf6c88214620006395780634d99dd1614620006635780634e6fd6c4146200068857600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058557806345211bfd14620005aa5780634838d16514620005cf5780634a49ac4c146200061457600080fd5b80631fa8882b1462000531578063384099881462000548578063417c73a7146200056057600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c67565b3480156200042057600080fd5b50620004386200043236600462009429565b62000cf9565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009429565b6200110e565b348015620004a057600080fd5b50620003f4620004b23660046200948d565b6200174c565b348015620004c557600080fd5b50620004dd620004d7366004620094d2565b62001a74565b6040516200044c919062009585565b348015620004f957600080fd5b50620004386200050b3660046200967b565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d603c81565b3480156200055557600080fd5b506200046d60375481565b3480156200056d57600080fd5b50620003f46200057f36600462009429565b62001de7565b3480156200059257600080fd5b50620003f4620005a436600462009429565b62001e69565b348015620005b757600080fd5b50620003f4620005c936600462009429565b6200204e565b348015620005dc57600080fd5b5062000603620005ee36600462009429565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062157600080fd5b50620003f46200063336600462009429565b62002229565b3480156200064657600080fd5b5062000650600881565b60405160ff90911681526020016200044c565b3480156200067057600080fd5b50620003f462000682366004620096d0565b620022a5565b3480156200069557600080fd5b506200043861dead81565b348015620006ad57600080fd5b50620003f4620006bf3660046200970e565b620028c2565b348015620006d257600080fd5b50620003f4620006e43660046200977e565b62003694565b348015620006f757600080fd5b506200070f620007093660046200979e565b6200389a565b6040516200044c949392919062009807565b620003f462000732366004620098c3565b62003f2c565b3480156200074557600080fd5b506200046d6200075736600462009429565b60446020526000908152604090205481565b3480156200077657600080fd5b506200078e6200078836600462009429565b62004576565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007ce57600080fd5b50620004dd620007e036600462009429565b62004620565b348015620007f357600080fd5b50620003f46200080536600462009429565b62004a39565b3480156200081857600080fd5b506200046d603d5481565b3480156200083057600080fd5b50620003f462004c0b565b3480156200084857600080fd5b50620003f46200085a366004620094d2565b62004f1d565b3480156200086d57600080fd5b50620003f462004f87565b3480156200088557600080fd5b50620004386200089736600462009429565b6043602052600090815260409020546001600160a01b031681565b348015620008bf57600080fd5b506200046d670de0b6b3a764000081565b348015620008dd57600080fd5b506200046d620008ef366004620096d0565b6200501f565b620003f4620009063660046200999b565b620050d8565b3480156200091957600080fd5b50620009316200092b36600462009429565b62005762565b6040516200044c9190620099d9565b3480156200094d57600080fd5b50620003f46200095f366004620096d0565b62005a4f565b3480156200097257600080fd5b50620003f46200098436600462009a56565b62005abc565b3480156200099757600080fd5b5060005462010000900460ff1662000603565b348015620009b757600080fd5b50620003f4620009c936600462009b0f565b6200695b565b348015620009dc57600080fd5b506200046d603c5481565b348015620009f457600080fd5b5062000a0c62000a063660046200979e565b62006b28565b6040516200044c9392919062009b6b565b34801562000a2a57600080fd5b50620003f462000a3c36600462009429565b62006d04565b34801562000a4f57600080fd5b506200046d60385481565b34801562000a6757600080fd5b5062000a7f62000a7936600462009429565b62006fc2565b604080519384529115156020840152908201526060016200044c565b34801562000aa857600080fd5b506200046d61271081565b34801562000ac057600080fd5b50620003f462000ad236600462009bc8565b620073f2565b34801562000ae557600080fd5b50620003f462000af736600462009cb1565b620075f4565b34801562000b0a57600080fd5b506200046d603b5481565b34801562000b2257600080fd5b506200046d60495481565b34801562000b3a57600080fd5b506200043862000b4c36600462009429565b620076ea565b34801562000b5f57600080fd5b506200046d60355481565b34801562000b7757600080fd5b506200046d603a5481565b34801562000b8f57600080fd5b506200046d62000ba13660046200967b565b805160208183018101805160468252928201919093012091525481565b34801562000bcb57600080fd5b506200046d603e5481565b34801562000be357600080fd5b5062000650601181565b34801562000bfa57600080fd5b506200046d62000c0c366004620096d0565b62007b01565b34801562000c1f57600080fd5b50620003f462000c3136600462009a56565b62007b72565b34801562000c4457600080fd5b506200046d60395481565b34801562000c5c57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9a576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d649062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000d929062009d17565b801562000de35780601f1062000db75761010080835404028352916020019162000de3565b820191906000526020600020905b81548152906001019060200180831162000dc557829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e0e9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3c9062009d17565b801562000e8d5780601f1062000e615761010080835404028352916020019162000e8d565b820191906000526020600020905b81548152906001019060200180831162000e6f57829003601f168201915b5050505050815260200160018201805462000ea89062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed69062009d17565b801562000f275780601f1062000efb5761010080835404028352916020019162000f27565b820191906000526020600020905b81548152906001019060200180831162000f0957829003601f168201915b5050505050815260200160028201805462000f429062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462000f709062009d17565b801562000fc15780601f1062000f955761010080835404028352916020019162000fc1565b820191906000526020600020905b81548152906001019060200180831162000fa357829003601f168201915b5050505050815260200160038201805462000fdc9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200100a9062009d17565b80156200105b5780601f106200102f576101008083540402835291602001916200105b565b820191906000526020600020905b8154815290600101906020018083116200103d57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e7575050509190925250509051949350505050565b33611000146200113a57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b39062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e19062009d17565b8015620012325780601f10620012065761010080835404028352916020019162001232565b820191906000526020600020905b8154815290600101906020018083116200121457829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125d9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200128b9062009d17565b8015620012dc5780601f10620012b057610100808354040283529160200191620012dc565b820191906000526020600020905b815481529060010190602001808311620012be57829003601f168201915b50505050508152602001600182018054620012f79062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620013259062009d17565b8015620013765780601f106200134a5761010080835404028352916020019162001376565b820191906000526020600020905b8154815290600101906020018083116200135857829003601f168201915b50505050508152602001600282018054620013919062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620013bf9062009d17565b8015620014105780601f10620013e45761010080835404028352916020019162001410565b820191906000526020600020905b815481529060010190602001808311620013f257829003601f168201915b505050505081526020016003820180546200142b9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620014599062009d17565b8015620014aa5780601f106200147e57610100808354040283529160200191620014aa565b820191906000526020600020905b8154815290600101906020018083116200148c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001536575050509190925250505060408101519091506001600160a01b031615806200157357508060e001515b156200163057604051611002903490600081818185875af1925050503d8060008114620015bd576040519150601f19603f3d011682016040523d82523d6000602084013e620015c2565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016239060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168757600080fd5b505af11580156200169c573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016dd91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017129190869060040162009d4d565b600060405180830381600087803b1580156200172d57600080fd5b505af115801562001742573d6000803e3d6000fd5b5050505050505b50565b33611001146200177457604051630f22c43960e41b8152611001600482015260240162001131565b60005462010000900460ff16156200179f57604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b592919062009d67565b908152604051908190036020019020546001600160a01b03169050620017dd603f8262007dc4565b620017fb5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001821603c4262009d8d565b604a546000828152604b602052604090205491925011620018555760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187690849062009db0565b909155505060405160469062001890908790879062009d67565b908152602001604051809103902054600014158015620018df575042603c60468787604051620018c292919062009d67565b908152602001604051809103902054620018dd919062009db0565b105b15620018fe57604051631898eb6b60e01b815260040160405180910390fd5b6000806200190e85600262007de7565b91509150816200193157604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562001984573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019aa919062009dc6565b9050620019b8858362007e71565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019f89392919062009df6565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a36916001600160a01b0316908a9060040162009d4d565b600060405180830381600087803b15801562001a5157600080fd5b505af115801562001a66573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001a9e57604051630f22c43960e41b8152612000600482015260240162001131565b60005462010000900460ff161562001ac957604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b1a9187908790819084018382808284376000920191909152506200803892505050565b915091508062001b3d5760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b63575050604080516000815260208101909152905062001dd6565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b939160040190815260200190565b6020604051808303816000875af115801562001bb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bd9919062009e25565b90508062001c805782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3592919062009e45565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001dd695505050505050565b600062001c8d846200819b565b9050600081600481111562001ca65762001ca662009de0565b0362001cc8575050604080516000815260208101909152925062001dd6915050565b6040516000906110049047908381818185875af1925050503d806000811462001d0e576040519150601f19603f3d011682016040523d82523d6000602084013e62001d13565b606091505b505090508062001d36576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d8992919062009e45565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001dd6975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e1a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ec65760405163b1d02c3d60e01b815260040160405180910390fd5b8062001ed4603f8262007dc4565b62001ef25760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3057604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f80573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fa6919062009dc6565b101562001fc6576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001fec5760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201090849062009e6c565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200207957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020ab5760405163b1d02c3d60e01b815260040160405180910390fd5b33620020b9603f8262007dc4565b620020d75760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038216620020ff57604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214057506001600160a01b03821660009081526047602052604090205460ff165b156200215f57604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218390603c9062009db0565b1115620021a357604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b031633146200225c576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620023025760405163b1d02c3d60e01b815260040160405180910390fd5b8162002310603f8262007dc4565b6200232e5760405163056e881160e01b815260040160405180910390fd5b816000036200235057604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023b89062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620023e69062009d17565b8015620024375780601f106200240b5761010080835404028352916020019162002437565b820191906000526020600020905b8154815290600101906020018083116200241957829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620024629062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620024909062009d17565b8015620024e15780601f10620024b557610100808354040283529160200191620024e1565b820191906000526020600020905b815481529060010190602001808311620024c357829003601f168201915b50505050508152602001600182018054620024fc9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200252a9062009d17565b80156200257b5780601f106200254f576101008083540402835291602001916200257b565b820191906000526020600020905b8154815290600101906020018083116200255d57829003601f168201915b50505050508152602001600282018054620025969062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620025c49062009d17565b8015620026155780601f10620025e95761010080835404028352916020019162002615565b820191906000526020600020905b815481529060010190602001808311620025f757829003601f168201915b50505050508152602001600382018054620026309062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200265e9062009d17565b8015620026af5780601f106200268357610100808354040283529160200191620026af565b820191906000526020600020905b8154815290600101906020018083116200269157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b8154815260200190600101908083116200273b575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027db919062009dc6565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b4082980287846040516200282c929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b03160362002859576200285986620087f1565b6040808301519051633041949b60e01b815261200591633041949b91620028869190879060040162009d4d565b600060405180830381600087803b158015620028a157600080fd5b505af1158015620028b6573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028ed57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200291f5760405163b1d02c3d60e01b815260040160405180910390fd5b836200292d603f8262007dc4565b6200294b5760405163056e881160e01b815260040160405180910390fd5b8362002959603f8262007dc4565b620029775760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029a757604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029da5760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a429062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002a709062009d17565b801562002ac15780601f1062002a955761010080835404028352916020019162002ac1565b820191906000526020600020905b81548152906001019060200180831162002aa357829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002aec9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002b1a9062009d17565b801562002b6b5780601f1062002b3f5761010080835404028352916020019162002b6b565b820191906000526020600020905b81548152906001019060200180831162002b4d57829003601f168201915b5050505050815260200160018201805462002b869062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002bb49062009d17565b801562002c055780601f1062002bd95761010080835404028352916020019162002c05565b820191906000526020600020905b81548152906001019060200180831162002be757829003601f168201915b5050505050815260200160028201805462002c209062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002c4e9062009d17565b801562002c9f5780601f1062002c735761010080835404028352916020019162002c9f565b820191906000526020600020905b81548152906001019060200180831162002c8157829003601f168201915b5050505050815260200160038201805462002cba9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002ce89062009d17565b801562002d395780601f1062002d0d5761010080835404028352916020019162002d39565b820191906000526020600020905b81548152906001019060200180831162002d1b57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dc557505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e509062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002e7e9062009d17565b801562002ecf5780601f1062002ea35761010080835404028352916020019162002ecf565b820191906000526020600020905b81548152906001019060200180831162002eb157829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002efa9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002f289062009d17565b801562002f795780601f1062002f4d5761010080835404028352916020019162002f79565b820191906000526020600020905b81548152906001019060200180831162002f5b57829003601f168201915b5050505050815260200160018201805462002f949062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462002fc29062009d17565b8015620030135780601f1062002fe75761010080835404028352916020019162003013565b820191906000526020600020905b81548152906001019060200180831162002ff557829003601f168201915b505050505081526020016002820180546200302e9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200305c9062009d17565b8015620030ad5780601f106200308157610100808354040283529160200191620030ad565b820191906000526020600020905b8154815290600101906020018083116200308f57829003601f168201915b50505050508152602001600382018054620030c89062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620030f69062009d17565b8015620031475780601f106200311b5761010080835404028352916020019162003147565b820191906000526020600020905b8154815290600101906020018083116200312957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031d35750505050508152505090508060e001518015620032165750876001600160a01b0316836001600160a01b031614155b156200323557604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af11580156200328c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032b2919062009dc6565b9050603754811015620032d85760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200336d57506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa15801562003345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200336b919062009dc6565b105b156200338c576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a5483620033a1919062009e82565b620033ad919062009d8d565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d806000811462003402576040519150601f19603f3d011682016040523d82523d6000602084013e62003407565b606091505b50509050806200342a576040516312171d8360e31b815260040160405180910390fd5b62003436828462009e6c565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af11580156200348c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034b3919062009dc6565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003518939291909283526020830191909152604082015260600190565b60405180910390a46040805160028082526060820183526000926020830190803683370190505090508660400151816000815181106200355c576200355c62009e9c565b60200260200101906001600160a01b031690816001600160a01b03168152505085604001518160018151811062003597576200359762009e9c565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035d89084908c9060040162009eb2565b600060405180830381600087803b158015620035f357600080fd5b505af115801562003608573d6000803e3d6000fd5b505050508a156200367a576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364592919062009d4d565b600060405180830381600087803b1580156200366057600080fd5b505af115801562003675573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036bf57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036f15760405163b1d02c3d60e01b815260040160405180910390fd5b33620036ff603f8262007dc4565b6200371d5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374190603c9062009db0565b11156200376157604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b909104811690851611156200379b5760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037d9576009820154620037d39086906001600160401b031662009ede565b620037f3565b6009820154620037f3906001600160401b03168662009ede565b60098301546001600160401b039182169250600160801b9004168111156200382e5760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038ad603f62008917565b90508086101562003f23578415620038c65784620038c8565b805b9450600085620038d9888462009e6c565b11620038f157620038eb878362009e6c565b620038f3565b855b9050806001600160401b038111156200391057620039106200959a565b6040519080825280602002602001820160405280156200393a578160200160208202803683370190505b509450806001600160401b038111156200395857620039586200959a565b60405190808252806020026020018201604052801562003982578160200160208202803683370190505b509350806001600160401b03811115620039a057620039a06200959a565b604051908082528060200260200182016040528015620039d557816020015b6060815260200190600190039081620039bf5790505b50925060005b8181101562003f20576000620039ff620039f6838b62009db0565b603f9062008922565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a6c9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003a9a9062009d17565b801562003aeb5780601f1062003abf5761010080835404028352916020019162003aeb565b820191906000526020600020905b81548152906001019060200180831162003acd57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b169062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003b449062009d17565b801562003b955780601f1062003b695761010080835404028352916020019162003b95565b820191906000526020600020905b81548152906001019060200180831162003b7757829003601f168201915b5050505050815260200160018201805462003bb09062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003bde9062009d17565b801562003c2f5780601f1062003c035761010080835404028352916020019162003c2f565b820191906000526020600020905b81548152906001019060200180831162003c1157829003601f168201915b5050505050815260200160028201805462003c4a9062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003c789062009d17565b801562003cc95780601f1062003c9d5761010080835404028352916020019162003cc9565b820191906000526020600020905b81548152906001019060200180831162003cab57829003601f168201915b5050505050815260200160038201805462003ce49062009d17565b80601f016020809104026020016040519081016040528092919081815260200182805462003d129062009d17565b801562003d635780601f1062003d375761010080835404028352916020019162003d63565b820191906000526020600020905b81548152906001019060200180831162003d4557829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003def575050505050815250509050806000015188848151811062003e285762003e2862009e9c565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ec15780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e95573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ebb919062009dc6565b62003ec4565b60005b87848151811062003ed95762003ed962009e9c565b602002602001018181525050806080015186848151811062003eff5762003eff62009e9c565b602002602001018190525050508062003f189062009f01565b9050620039db565b50505b92959194509250565b60005462010000900460ff161562003f5757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f895760405163b1d02c3d60e01b815260040160405180910390fd5b3362003f97603f8262007dc4565b1562003fb657604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b038881166000908152604360205260409020541615158062003ff757506001600160a01b03881660009081526047602052604090205460ff165b156200401657604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200403592919062009d67565b908152604051908190036020019020546001600160a01b03161415806200407f5750604887876040516200406b92919062009d67565b9081526040519081900360200190205460ff165b156200409e576040516311fdb94760e01b815260040160405180910390fd5b6000620040ac838062009f1d565b604051602001620040bf92919062009d67565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041095760405163c0bf414360e01b815260040160405180910390fd5b60006200411f670de0b6b3a76400003462009e6c565b905060365481101562004145576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200416d57604051636520611b60e11b815260040160405180910390fd5b6113886200418260408701602088016200977e565b6001600160401b03161180620041c85750620041a560408601602087016200977e565b6001600160401b0316620041bd60208701876200977e565b6001600160401b0316115b80620042075750620041e160408601602087016200977e565b6001600160401b0316620041fc60608701604088016200977e565b6001600160401b0316115b15620042265760405163dc81db8560e01b815260040160405180910390fd5b6200427162004236858062009f1d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200893092505050565b6200428f57604051635dba5ad760e01b815260040160405180910390fd5b6200429e838a8a8a8a62008ad2565b620042bc57604051631647e3cb60e11b815260040160405180910390fd5b60006200430a84620042cf878062009f1d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c0292505050565b905062004319603f8562008d03565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043998b8d8362009fc5565b508560058201620043ab82826200a08d565b5087905060098201620043bf82826200a1c6565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b031916928816929092179091555185906045906200440d908e908e9062009d67565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e604051620044909291906200a296565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b59d833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b59d833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b9062004534908590899060040162009d4d565b600060405180830381600087803b1580156200454f57600080fd5b505af115801562004564573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045a1603f8262007dc4565b620045bf5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060828101919091526004840180549194916080840191906200468d9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620046bb9062009d17565b80156200470c5780601f10620046e0576101008083540402835291602001916200470c565b820191906000526020600020905b815481529060010190602001808311620046ee57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047379062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620047659062009d17565b8015620047b65780601f106200478a57610100808354040283529160200191620047b6565b820191906000526020600020905b8154815290600101906020018083116200479857829003601f168201915b50505050508152602001600182018054620047d19062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620047ff9062009d17565b8015620048505780601f10620048245761010080835404028352916020019162004850565b820191906000526020600020905b8154815290600101906020018083116200483257829003601f168201915b505050505081526020016002820180546200486b9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620048999062009d17565b8015620048ea5780601f10620048be57610100808354040283529160200191620048ea565b820191906000526020600020905b815481529060010190602001808311620048cc57829003601f168201915b50505050508152602001600382018054620049059062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620049339062009d17565b8015620049845780601f10620049585761010080835404028352916020019162004984565b820191906000526020600020905b8154815290600101906020018083116200496657829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a105750505091909252505050608001519392505050565b336110011462004a6157604051630f22c43960e41b8152611001600482015260240162001131565b6001600160a01b038082166000908152604360205260409020541662004a89603f8262007dc4565b62004aa75760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b0a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b30919062009dc6565b90506000603d544262004b44919062009db0565b905062004b52838262007e71565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b929392919062009df6565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bd0916001600160a01b031690889060040162009d4d565b600060405180830381600087803b15801562004beb57600080fd5b505af115801562004c00573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c2c5750600054600160ff909116105b8062004c485750303b15801562004c48575060005460ff166001145b62004cad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001131565b6000805460ff19166001179055801562004cd1576000805461ff0019166101001790555b33411462004cf25760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d12576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755602d603855607860398190556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c55603d9190915560b4603e55604a556040805160c0810190915260a080825260609182916200b5bd602083013980602001905181019062004d9e91906200a2d2565b9150604051806101e001604052806101c081526020016200b65d6101c0913980602001905181019062004dd291906200a376565b905060005b825181101562004e415760016047600085848151811062004dfc5762004dfc62009e9c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e398162009f01565b905062004dd7565b5060005b815181101562004eb2576001604883838151811062004e685762004e6862009e9c565b602002602001015160405162004e7f91906200a473565b908152604051908190036020019020805491151560ff1990921691909117905562004eaa8162009f01565b905062004e45565b5062004ed273df87f0e2b8519ea2dd4abd8b639cdd628497ed2562008d1a565b5050801562001749576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f4557604051630f22c43960e41b8152612000600482015260240162001131565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f7a939291906200a491565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fba576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004fe557604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200502e603f8462007dc4565b6200504c5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050cf919062009dc6565b90505b92915050565b60005462010000900460ff16156200510357604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051355760405163b1d02c3d60e01b815260040160405180910390fd5b8162005143603f8262007dc4565b620051615760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051875760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051ef9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200521d9062009d17565b80156200526e5780601f1062005242576101008083540402835291602001916200526e565b820191906000526020600020905b8154815290600101906020018083116200525057829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052999062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620052c79062009d17565b8015620053185780601f10620052ec5761010080835404028352916020019162005318565b820191906000526020600020905b815481529060010190602001808311620052fa57829003601f168201915b50505050508152602001600182018054620053339062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620053619062009d17565b8015620053b25780601f106200538657610100808354040283529160200191620053b2565b820191906000526020600020905b8154815290600101906020018083116200539457829003601f168201915b50505050508152602001600282018054620053cd9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620053fb9062009d17565b80156200544c5780601f1062005420576101008083540402835291602001916200544c565b820191906000526020600020905b8154815290600101906020018083116200542e57829003601f168201915b50505050508152602001600382018054620054679062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620054959062009d17565b8015620054e65780601f10620054ba57610100808354040283529160200191620054e6565b820191906000526020600020905b815481529060010190602001808311620054c857829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055725750505050508152505090508060e001518015620055b55750856001600160a01b0316826001600160a01b031614155b15620055d457604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005625573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200564c919062009dc6565b9050826001600160a01b0316876001600160a01b03166000805160206200b59d83398151915283876040516200568c929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056c19190879060040162009d4d565b600060405180830381600087803b158015620056dc57600080fd5b505af1158015620056f1573d6000803e3d6000fd5b50505050851562001742576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057259086908b9060040162009d4d565b600060405180830381600087803b1580156200574057600080fd5b505af115801562005755573d6000803e3d6000fd5b5050505050505050505050565b6200578e6040518060800160405280606081526020016060815260200160608152602001606081525090565b816200579c603f8262007dc4565b620057ba5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620057f19062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200581f9062009d17565b8015620058705780601f10620058445761010080835404028352916020019162005870565b820191906000526020600020905b8154815290600101906020018083116200585257829003601f168201915b505050505081526020016001820180546200588b9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620058b99062009d17565b80156200590a5780601f10620058de576101008083540402835291602001916200590a565b820191906000526020600020905b815481529060010190602001808311620058ec57829003601f168201915b50505050508152602001600282018054620059259062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620059539062009d17565b8015620059a45780601f106200597857610100808354040283529160200191620059a4565b820191906000526020600020905b8154815290600101906020018083116200598657829003601f168201915b50505050508152602001600382018054620059bf9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620059ed9062009d17565b801562005a3e5780601f1062005a125761010080835404028352916020019162005a3e565b820191906000526020600020905b81548152906001019060200180831162005a2057829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a7a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005aac5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ab8828262008db3565b5050565b336110071462005ae457604051630f22c43960e41b8152611007600482015260240162001131565b62005b516040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005c0c576020811462005b835783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005bc691858580838501838280828437600092019190915250929392505062008f1c9050565b90506108fc81108062005bda575061271081115b1562005c035784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60355562006916565b62005c7d6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005d47576020811462005caf5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005cf291858580838501838280828437600092019190915250929392505062008f1c9050565b9050683635c9adc5dea0000081108062005d15575069152d02c7e14af680000081115b1562005d3e5784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60365562006916565b62005dba604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005e81576020811462005dec5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005e2f91858580838501838280828437600092019190915250929392505062008f1c9050565b905067016345785d8a000081108062005e4f5750678ac7230489e8000081115b1562005e785784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60375562006916565b62005ef2604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b1562005faa576020811462005f245783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f840181900481028201810190925282815260009162005f6791858580838501838280828437600092019190915250929392505062008f1c9050565b905080158062005f7857506101f481115b1562005fa15784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60385562006916565b620060136040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620060d05760208114620060455783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200608891858580838501838280828437600092019190915250929392505062008f1c9050565b90506203f4808110806200609e575062278d0081115b15620060c75784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b60395562006916565b6200613e60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620061eb5760208114620061705783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f8401819004810282018101909252828152600091620061b391858580838501838280828437600092019190915250929392505062008f1c9050565b90506064811115620061e25784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603a5562006916565b6200625b60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b156200631c57602081146200628d5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f8401819004810282018101909252828152600091620062d091858580838501838280828437600092019190915250929392505062008f1c9050565b9050674563918244f40000811080620062ea5750603c5481115b15620063135784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603b5562006916565b6200638a6040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b156200644d5760208114620063bc5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f8401819004810282018101909252828152600091620063ff91858580838501838280828437600092019190915250929392505062008f1c9050565b905068056bc75e2d631000008110806200641b5750603b548111155b15620064445784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603c5562006916565b620064ba6040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620065775760208114620064ec5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200652f91858580838501838280828437600092019190915250929392505062008f1c9050565b90506202a300811080620065455750603e548110155b156200656e5784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603d5562006916565b620065e26040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b156200669f5760208114620066145783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200665791858580838501838280828437600092019190915250929392505062008f1c9050565b9050620d2f008110806200666d5750603d548111155b15620066965784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b603e5562006916565b620067196040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620067c557602081146200674b5783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b604080516020601f84018190048102820181019092528281526000916200678e91858580838501838280828437600092019190915250929392505062008f1c9050565b905080600003620067bc5784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b604a5562006916565b620068336040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ebf9050565b15620068f35760148114620068655783838383604051630a5a604160e01b81526004016200113194939291906200a4b0565b6000620068ad601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f1c9050565b90506001600160a01b038116620068e15784848484604051630a5a604160e01b81526004016200113194939291906200a4b0565b620068ec8162008f21565b5062006916565b838383836040516325ee20d560e21b81526004016200113194939291906200a4b0565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200694d94939291906200a4b0565b60405180910390a150505050565b60005462010000900460ff16156200698657604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069b85760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069d657620069d66200959a565b60405190808252806020026020018201604052801562006a00578160200160208202803683370190505b5090506000805b8381101562006afe5762006a4987878381811062006a295762006a2962009e9c565b905060200201602081019062006a40919062009429565b603f9062007dc4565b62006a675760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a805762006a8062009e9c565b905060200201602081019062006a97919062009429565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ad35762006ad362009e9c565b6001600160a01b039092166020928302919091019091015262006af68162009f01565b905062006a07565b50604051634484077560e01b81526120059063448407759062002886908590889060040162009eb2565b606080600062006b39603f62008917565b90508085101562006cfd57831562006b52578362006b54565b805b935060008462006b65878462009e6c565b1162006b7d5762006b77868362009e6c565b62006b7f565b845b9050806001600160401b0381111562006b9c5762006b9c6200959a565b60405190808252806020026020018201604052801562006bc6578160200160208202803683370190505b509350806001600160401b0381111562006be45762006be46200959a565b60405190808252806020026020018201604052801562006c0e578160200160208202803683370190505b50925060005b8181101562006cfa5762006c2d620039f6828962009db0565b85828151811062006c425762006c4262009e9c565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c7b5762006c7b62009e9c565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006ccf5762006ccf62009e9c565b6001600160a01b039092166020928302919091019091015262006cf28162009f01565b905062006c14565b50505b9250925092565b336110011462006d2c57604051630f22c43960e41b8152611001600482015260240162001131565b60005462010000900460ff161562006d5757604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d7f603f8262007dc4565b62006d9d5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dc3603c4262009d8d565b604a546000828152604b60205260409020549192501162006df75760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e1890849062009db0565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e6b57506001600160a01b038416600090815260446020526040902054429062006e6990603c9062009db0565b105b1562006e8a576040516330abb81d60e21b815260040160405180910390fd5b60008062006e9a85600062007de7565b915091508162006ebd57604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f10573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f36919062009dc6565b905062006f44858362007e71565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f849392919062009df6565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005725916001600160a01b0316908a9060040162009d4d565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070339062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620070619062009d17565b8015620070b25780601f106200708657610100808354040283529160200191620070b2565b820191906000526020600020905b8154815290600101906020018083116200709457829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070dd9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200710b9062009d17565b80156200715c5780601f1062007130576101008083540402835291602001916200715c565b820191906000526020600020905b8154815290600101906020018083116200713e57829003601f168201915b50505050508152602001600182018054620071779062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620071a59062009d17565b8015620071f65780601f10620071ca57610100808354040283529160200191620071f6565b820191906000526020600020905b815481529060010190602001808311620071d857829003601f168201915b50505050508152602001600282018054620072119062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200723f9062009d17565b8015620072905780601f10620072645761010080835404028352916020019162007290565b820191906000526020600020905b8154815290600101906020018083116200727257829003601f168201915b50505050508152602001600382018054620072ab9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620072d99062009d17565b80156200732a5780601f10620072fe576101008083540402835291602001916200732a565b820191906000526020600020905b8154815290600101906020018083116200730c57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073b65750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200741d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200744f5760405163b1d02c3d60e01b815260040160405180910390fd5b336200745d603f8262007dc4565b6200747b5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200749f90603c9062009db0565b1115620074bf57604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074d09062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620074fe9062009d17565b80156200754f5780601f1062007523576101008083540402835291602001916200754f565b820191906000526020600020905b8154815290600101906020018083116200753157829003601f168201915b50505082875250859160058401915081906200756c90826200a4db565b50602082015160018201906200758390826200a4db565b50604082015160028201906200759a90826200a4db565b5060608201516003820190620075b190826200a4db565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200761f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076515760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007672576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076e357620076d085858381811062007697576200769762009e9c565b9050602002016020810190620076ae919062009429565b848484818110620076c357620076c362009e9c565b9050602002013562008db3565b620076db8162009f01565b905062007675565b5050505050565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849390916080840191620077559062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620077839062009d17565b8015620077d45780601f10620077a857610100808354040283529160200191620077d4565b820191906000526020600020905b815481529060010190602001808311620077b657829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620077ff9062009d17565b80601f01602080910402602001604051908101604052809291908181526020018280546200782d9062009d17565b80156200787e5780601f1062007852576101008083540402835291602001916200787e565b820191906000526020600020905b8154815290600101906020018083116200786057829003601f168201915b50505050508152602001600182018054620078999062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620078c79062009d17565b8015620079185780601f10620078ec5761010080835404028352916020019162007918565b820191906000526020600020905b815481529060010190602001808311620078fa57829003601f168201915b50505050508152602001600282018054620079339062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620079619062009d17565b8015620079b25780601f106200798657610100808354040283529160200191620079b2565b820191906000526020600020905b8154815290600101906020018083116200799457829003601f168201915b50505050508152602001600382018054620079cd9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620079fb9062009d17565b801562007a4c5780601f1062007a205761010080835404028352916020019162007a4c565b820191906000526020600020905b81548152906001019060200180831162007a2e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007ad85750505091909252505050604001519392505050565b600062007b10603f8462007dc4565b62007b2e5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200508b565b60005462010000900460ff161562007b9d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007bcf5760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bdd603f8262007dc4565b62007bfb5760405163056e881160e01b815260040160405180910390fd5b3362007c0b818787878762008ad2565b62007c2957604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c4892919062009d67565b908152604051908190036020019020546001600160a01b031614158062007c9257506048868660405162007c7e92919062009d67565b9081526040519081900360200190205460ff165b1562007cb1576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cde90603c9062009db0565b111562007cfe57604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d1491906200a5a3565b908152604051908190036020019020556004810162007d3587898362009fc5565b5042600c820155604051829060459062007d53908a908a9062009d67565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007db3908a908a906200a296565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050cf565b6000806000848460405160200162007e019291906200a621565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e415760008093509350505062007e6a565b603e5462007e50904262009db0565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007eb857600080fd5b505af115801562007ecd573d6000803e3d6000fd5b505050506000600162007ee1603f62008917565b62007eed919062009e6c565b604954108015915062007fab5760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f41573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f67919062009e25565b62007fab5760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fc057600b83018290555b600a83015460ff166200803357600a8301805460ff191660019081179091556049805460009062007ff390849062009db0565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080aa9062008f8d565b90506000805b620080bb8362009000565b156200818e5780600003620080f057620080df620080d98462009026565b6200908a565b6001600160a01b031684526200817b565b806001036200811c5762008108620080d98462009026565b6001600160a01b031660208501526200817b565b80600203620081485762008134620080d98462009026565b6001600160a01b031660408501526200817b565b80600303620081755762008166620081608462009026565b620090a2565b6060850152600191506200817b565b6200818e565b620081868162009f01565b9050620080b0565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081d3575060208201516001600160a01b0316155b15620081e157506004919050565b8151620081f190603f9062007dc4565b620081fe57506002919050565b81516001600160a01b039081166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929391926080840191906200826a9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620082989062009d17565b8015620082e95780601f10620082bd57610100808354040283529160200191620082e9565b820191906000526020600020905b815481529060010190602001808311620082cb57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620083149062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620083429062009d17565b8015620083935780601f10620083675761010080835404028352916020019162008393565b820191906000526020600020905b8154815290600101906020018083116200837557829003601f168201915b50505050508152602001600182018054620083ae9062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620083dc9062009d17565b80156200842d5780601f1062008401576101008083540402835291602001916200842d565b820191906000526020600020905b8154815290600101906020018083116200840f57829003601f168201915b50505050508152602001600282018054620084489062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620084769062009d17565b8015620084c75780601f106200849b57610100808354040283529160200191620084c7565b820191906000526020600020905b815481529060010190602001808311620084a957829003601f168201915b50505050508152602001600382018054620084e29062009d17565b80601f0160208091040260200160405190810160405280929190818152602001828054620085109062009d17565b8015620085615780601f10620085355761010080835404028352916020019162008561565b820191906000526020600020905b8154815290600101906020018083116200854357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620085ed5750505050508152505090508060e00151801562008638575082600001516001600160a01b031683602001516001600160a01b031614155b15620086475750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086a3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086ca919062009dc6565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b59d83398151915283876060015160405162008716929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008779929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087b39290919060040162009d4d565b600060405180830381600087803b158015620087ce57600080fd5b505af1158015620087e3573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff16156200881b575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa1580156200886b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008891919062009dc6565b101562005ab857620088b381603d5442620088ad919062009db0565b62007e71565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b158015620088fa57600080fd5b505af11580156200890f573d6000803e3d6000fd5b505050505050565b6000620050d2825490565b6000620050cf83836200917a565b60008082905060038151108062008948575060098151115b15620089575750600092915050565b6041816000815181106200896f576200896f62009e9c565b016020015160f81c1080620089a15750605a8160008151811062008997576200899762009e9c565b016020015160f81c115b15620089b05750600092915050565b60015b815181101562008ac8576030828281518110620089d457620089d462009e9c565b016020015160f81c108062008a0557506039828281518110620089fb57620089fb62009e9c565b016020015160f81c115b801562008a555750604182828151811062008a245762008a2462009e9c565b016020015160f81c108062008a555750605a82828151811062008a4b5762008a4b62009e9c565b016020015160f81c115b801562008aa55750606182828151811062008a745762008a7462009e9c565b016020015160f81c108062008aa55750607a82828151811062008a9b5762008a9b62009e9c565b016020015160f81c115b1562008ab5575060009392505050565b62008ac08162009f01565b9050620089b3565b5060019392505050565b600060308414158062008ae6575060608214155b1562008af55750600062008bf9565b60008686864660405160200162008b1094939291906200a65f565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b6a9594939291906200a68c565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bb457600080fd5b5060008160008151811062008bcd5762008bcd62009e9c565b016020015160f81c90506001811462008bef5760009550505050505062008bf9565b6001955050505050505b95945050505050565b60008061200361dead60405162008c199062009405565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c5c573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008c909291906200a6c4565b6000604051808303818588803b15801562008caa57600080fd5b505af115801562008cbf573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050cf836001600160a01b038416620091a7565b600054610100900460ff1662008d875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001131565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dc1603f8262007dc4565b62008ddf5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e43573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e69919062009dc6565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008eb191815260200190565b60405180910390a350505050565b60008160405160200162008ed491906200a473565b604051602081830303815290604052805190602001208360405160200162008efd91906200a473565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fbb82620091f9565b62008fc557600080fd5b600062008fd683602001516200922c565b836020015162008fe7919062009db0565b6040805180820190915293845260208401525090919050565b80518051602082015160009291620090189162009db0565b836020015110915050919050565b6040805180820190915260008082526020820152620090458262009000565b6200904f57600080fd5b602082015160006200906182620092bb565b90506200906f818362009db0565b60209485015260408051808201909152908152928301525090565b80516000906015146200909c57600080fd5b620050d2825b805160009015801590620090b857508151602110155b620090c257600080fd5b6000620090d383602001516200922c565b905080836000015110156200912b5760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001131565b82516000906200913d90839062009e6c565b905060008083866020015162009154919062009db0565b90508051915060208310156200917157826020036101000a820491505b50949350505050565b600082600001828154811062009194576200919462009e9c565b9060005260206000200154905092915050565b6000818152600183016020526040812054620091f057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050d2565b506000620050d2565b805160009081036200920d57506000919050565b6020820151805160001a9060c082101562008ac8575060009392505050565b8051600090811a6080811015620092465750600092915050565b60b881108062009263575060c0811080159062009263575060f881105b15620092725750600192915050565b60c0811015620092ad576200928a600160b86200a6ea565b620092999060ff168262009e6c565b620092a690600162009db0565b9392505050565b6200928a600160f86200a6ea565b80516000908190811a6080811015620092d85760019150620093fe565b60b88110156200930457620092ef60808262009e6c565b620092fc90600162009db0565b9150620093fe565b60c08110156200937d57600060b78203600186019550806020036101000a865104915060018101820193505080831015620093765760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001131565b50620093fe565b60f88110156200939457620092ef60c08262009e6c565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620093fc5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001131565b505b5092915050565b610e96806200a70783390190565b6001600160a01b03811681146200174957600080fd5b6000602082840312156200943c57600080fd5b8135620092a68162009413565b60008083601f8401126200945c57600080fd5b5081356001600160401b038111156200947457600080fd5b60208301915083602082850101111562007e6a57600080fd5b60008060208385031215620094a157600080fd5b82356001600160401b03811115620094b857600080fd5b620094c68582860162009449565b90969095509350505050565b600080600060408486031215620094e857600080fd5b833560ff81168114620094fa57600080fd5b925060208401356001600160401b038111156200951657600080fd5b620095248682870162009449565b9497909650939450505050565b60005b838110156200954e57818101518382015260200162009534565b50506000910152565b600081518084526200957181602086016020860162009531565b601f01601f19169290920160200192915050565b602081526000620050cf602083018462009557565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095d557620095d56200959a565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200960657620096066200959a565b604052919050565b60006001600160401b038211156200962a576200962a6200959a565b50601f01601f191660200190565b60006200964f62009649846200960e565b620095db565b90508281528383830111156200966457600080fd5b828260208301376000602084830101529392505050565b6000602082840312156200968e57600080fd5b81356001600160401b03811115620096a557600080fd5b8201601f81018413620096b757600080fd5b620096c88482356020840162009638565b949350505050565b60008060408385031215620096e457600080fd5b8235620096f18162009413565b946020939093013593505050565b80151581146200174957600080fd5b600080600080608085870312156200972557600080fd5b8435620097328162009413565b93506020850135620097448162009413565b92506040850135915060608501356200975d81620096ff565b939692955090935050565b6001600160401b03811681146200174957600080fd5b6000602082840312156200979157600080fd5b8135620092a68162009768565b60008060408385031215620097b257600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620097fc5781516001600160a01b031687529582019590820190600101620097d5565b509495945050505050565b6080815260006200981c6080830187620097c1565b82810360208481019190915286518083528782019282019060005b81811015620098555784518352938301939183019160010162009837565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098aa57601f198584030187526200989783835162009557565b9686019692509085019060010162009878565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098e057600080fd5b8835620098ed8162009413565b975060208901356001600160401b03808211156200990a57600080fd5b620099188c838d0162009449565b909950975060408b01359150808211156200993257600080fd5b620099408c838d0162009449565b90975095508591506060605f19840112156200995b57600080fd5b60608b01945060c08b01359250808311156200997657600080fd5b505088016080818b0312156200998b57600080fd5b8091505092959891949750929550565b60008060408385031215620099af57600080fd5b8235620099bc8162009413565b91506020830135620099ce81620096ff565b809150509250929050565b602081526000825160806020840152620099f760a084018262009557565b90506020840151601f198085840301604086015262009a17838362009557565b9250604086015191508085840301606086015262009a36838362009557565b925060608601519150808584030160808601525062008bf9828262009557565b6000806000806040858703121562009a6d57600080fd5b84356001600160401b038082111562009a8557600080fd5b62009a938883890162009449565b9096509450602087013591508082111562009aad57600080fd5b5062009abc8782880162009449565b95989497509550505050565b60008083601f84011262009adb57600080fd5b5081356001600160401b0381111562009af357600080fd5b6020830191508360208260051b850101111562007e6a57600080fd5b60008060006040848603121562009b2557600080fd5b83356001600160401b0381111562009b3c57600080fd5b62009b4a8682870162009ac8565b909450925050602084013562009b608162009413565b809150509250925092565b60608152600062009b806060830186620097c1565b828103602084015262009b948186620097c1565b915050826040830152949350505050565b600082601f83011262009bb757600080fd5b620050cf8383356020850162009638565b60006020828403121562009bdb57600080fd5b81356001600160401b038082111562009bf357600080fd5b908301906080828603121562009c0857600080fd5b62009c12620095b0565b82358281111562009c2257600080fd5b62009c308782860162009ba5565b82525060208301358281111562009c4657600080fd5b62009c548782860162009ba5565b60208301525060408301358281111562009c6d57600080fd5b62009c7b8782860162009ba5565b60408301525060608301358281111562009c9457600080fd5b62009ca28782860162009ba5565b60608301525095945050505050565b6000806000806040858703121562009cc857600080fd5b84356001600160401b038082111562009ce057600080fd5b62009cee8883890162009ac8565b9096509450602087013591508082111562009d0857600080fd5b5062009abc8782880162009ac8565b600181811c9082168062009d2c57607f821691505b6020821081036200461a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dab57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050d257620050d262009d77565b60006020828403121562009dd957600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e175762009e1762009de0565b826040830152949350505050565b60006020828403121562009e3857600080fd5b8151620092a681620096ff565b828152604081016005831062009e5f5762009e5f62009de0565b8260208301529392505050565b81810381811115620050d257620050d262009d77565b8082028115828204841417620050d257620050d262009d77565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ec76040830185620097c1565b905060018060a01b03831660208301529392505050565b6001600160401b03828116828216039080821115620093fe57620093fe62009d77565b60006001820162009f165762009f1662009d77565b5060010190565b6000808335601e1984360301811262009f3557600080fd5b8301803591506001600160401b0382111562009f5057600080fd5b60200191503681900382131562007e6a57600080fd5b601f8211156200803357600081815260208120601f850160051c8101602086101562009f8f5750805b601f850160051c820191505b818110156200890f5782815560010162009f9b565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009fdf5762009fdf6200959a565b62009ff78362009ff0835462009d17565b8362009f66565b6000601f8411600181146200a02a57600085156200a0155750838201355b6200a021868262009fb0565b845550620076e3565b600083815260209020601f19861690835b828110156200a05d57868501358255602094850194600190920191016200a03b565b50868210156200a07b5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a099828362009f1d565b6001600160401b038111156200a0b3576200a0b36200959a565b6200a0cb816200a0c4855462009d17565b8562009f66565b6000601f8211600181146200a0fe57600083156200a0e95750838201355b6200a0f5848262009fb0565b8655506200a15b565b600085815260209020601f19841690835b828110156200a13157868501358255602094850194600190920191016200a10f565b50848210156200a14f5760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a16e602083018362009f1d565b6200a17e81836001860162009fc5565b50506200a18f604083018362009f1d565b6200a19f81836002860162009fc5565b50506200a1b0606083018362009f1d565b6200a1c081836003860162009fc5565b50505050565b81356200a1d38162009768565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a2008162009768565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a2408162009768565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096c86020830184866200a26d565b60006001600160401b038211156200a2c8576200a2c86200959a565b5060051b60200190565b600060208083850312156200a2e657600080fd5b82516001600160401b038111156200a2fd57600080fd5b8301601f810185136200a30f57600080fd5b80516200a32062009649826200a2ac565b81815260059190911b820183019083810190878311156200a34057600080fd5b928401925b828410156200a36b5783516200a35b8162009413565b825292840192908401906200a345565b979650505050505050565b600060208083850312156200a38a57600080fd5b82516001600160401b03808211156200a3a257600080fd5b818501915085601f8301126200a3b757600080fd5b81516200a3c862009649826200a2ac565b81815260059190911b830184019084810190888311156200a3e857600080fd5b8585015b838110156200a466578051858111156200a4065760008081fd5b8601603f81018b136200a4195760008081fd5b8781015160406200a42e62009649836200960e565b8281528d828486010111156200a4445760008081fd5b6200a455838c830184870162009531565b86525050509186019186016200a3ec565b5098975050505050505050565b600082516200a48781846020870162009531565b9190910192915050565b60ff8416815260406020820152600062008bf96040830184866200a26d565b6040815260006200a4c66040830186886200a26d565b82810360208401526200a36b8185876200a26d565b81516001600160401b038111156200a4f7576200a4f76200959a565b6200a50f816200a508845462009d17565b8462009f66565b602080601f8311600181146200a54357600084156200a52e5750858301515b6200a53a858262009fb0565b8655506200890f565b600085815260208120601f198616915b828110156200a574578886015182559484019460019091019084016200a553565b50858210156200a5935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5b38162009d17565b600182811680156200a5ce57600181146200a5e4576200a615565b60ff19841687528215158302870194506200a615565b8760005260208060002060005b858110156200a60c5781548a8201529084019082016200a5f1565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a64b576200a64b62009de0565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6a0818460208b0162009531565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096c89083018462009557565b60ff8281168282160390811115620050d257620050d262009d7756fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656424d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e0400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000030b86b3146bdd2200b1dbdb1cea5e40d3451c028cbb4fb03b1826f7f2d82bee76bbd5cd68a74a16a7eceea093fd5826b9200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003087ce273bb9b51fd69e50de7a8d9a99cfb3b1a5c6a7b85f6673d137a5a2ce7df3d6ee4e6d579a142d58b0606c4a7a1c27000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a33ac14980d85c0d154c5909ebf7a11d455f54beb4d5d0dc1d8b3670b9c4a6b6c450ee3d623ecc48026f09ed1f0b5c1200000000000000000000000000000000a164736f6c6343000811000a", + Code: feynman.RialtoStakeHubContract, }, { ContractAddr: common.HexToAddress(StakeCreditContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106101e75760003560e01c8063647df75911610102578063a9664feb11610095578063d241c1ea11610064578063d241c1ea1461068d578063dd62ed3e146106cf578063f1fad104146106ef578063f399e22e1461070457600080fd5b8063a9664feb14610600578063aa1966cd14610620578063aad3ec961461064d578063c2cde2b21461066d57600080fd5b806395d89b41116100d157806395d89b411461058b578063a457c2d7146105a0578063a5d059ca146105c0578063a9059cbb146105e057600080fd5b8063647df759146104e85780636bbf22491461050857806370a082311461053557806391faf0b41461056b57600080fd5b8063313ce5671161017a5780634bf6c882116101495780634bf6c8821461048b5780634d99dd16146104a05780635c19a95c146104c05780635e607d76146104d357600080fd5b8063313ce567146103f157806339509351146104135780633a5381b51461043357806345bc4d101461046b57600080fd5b806315d1f898116101b657806315d1f8981461038657806318160ddd1461039c57806323b872dd146103b15780632f2d448a146103d157600080fd5b8063038c0023146102e157806306fdde03146103145780630913db4714610336578063095ea7b31461035657600080fd5b366102dc57336120021461021757604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b60006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027d9190611de4565b6102879042611e13565b6098546000828152609d6020908152604080832093909355609c9052908120805492935034929091906102bb908490611e35565b9250508190555034609860008282546102d49190611e35565b925050819055005b600080fd5b3480156102ed57600080fd5b506103016102fc366004611e60565b610717565b6040519081526020015b60405180910390f35b34801561032057600080fd5b50610329610747565b60405161030b9190611e84565b34801561034257600080fd5b50610301610351366004611e60565b6107d9565b34801561036257600080fd5b50610376610371366004611ed2565b6107fb565b604051901515815260200161030b565b34801561039257600080fd5b5061030160985481565b3480156103a857600080fd5b50606754610301565b3480156103bd57600080fd5b506103766103cc366004611efe565b610813565b3480156103dd57600080fd5b506103016103ec366004611e60565b610837565b3480156103fd57600080fd5b5060125b60405160ff909116815260200161030b565b34801561041f57600080fd5b5061037661042e366004611ed2565b6108fc565b34801561043f57600080fd5b50609754610453906001600160a01b031681565b6040516001600160a01b03909116815260200161030b565b34801561047757600080fd5b50610301610486366004611f3f565b61091e565b34801561049757600080fd5b50610401600881565b3480156104ac57600080fd5b506103016104bb366004611ed2565b610a11565b6103016104ce366004611e60565b610c28565b6104e66104e1366004611f58565b610c9e565b005b3480156104f457600080fd5b50610301610503366004611f3f565b610e11565b34801561051457600080fd5b50610301610523366004611f3f565b609d6020526000908152604090205481565b34801561054157600080fd5b50610301610550366004611e60565b6001600160a01b031660009081526065602052604090205490565b34801561057757600080fd5b50610301610586366004611f3f565b610e50565b34801561059757600080fd5b50610329610e8b565b3480156105ac57600080fd5b506103766105bb366004611ed2565b610e9a565b3480156105cc57600080fd5b506103016105db366004611ed2565b610f15565b3480156105ec57600080fd5b506103766105fb366004611ed2565b611016565b34801561060c57600080fd5b5061030161061b366004611ed2565b611024565b34801561062c57600080fd5b5061030161063b366004611f3f565b609c6020526000908152604090205481565b34801561065957600080fd5b50610301610668366004611ed2565b61114d565b34801561067957600080fd5b50610301610688366004611e60565b6113f0565b34801561069957600080fd5b506106ad6106a8366004611ed2565b61140e565b604080518251815260208084015190820152918101519082015260600161030b565b3480156106db57600080fd5b506103016106ea366004611f82565b611491565b3480156106fb57600080fd5b50610401601181565b6104e6610712366004611fbb565b6114bc565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b035b92915050565b60606068805461075690612040565b80601f016020809104026020016040519081016040528092919081815260200182805461078290612040565b80156107cf5780601f106107a4576101008083540402835291602001916107cf565b820191906000526020600020905b8154815290600101906020018083116107b257829003601f168201915b5050505050905090565b6001600160a01b03811660009081526065602052604081205461074190610e50565b600033610809818585611672565b5060019392505050565b60003361082185828561168b565b61082c8585856116ff565b506001949350505050565b6001600160a01b0381166000908152609a6020526040812054600f81810b600160801b909204900b0381805b828110156108f4576001600160a01b0385166000908152609a6020526040812061088d9083611718565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042106108da576108d384612074565b93506108e1565b50506108f4565b5050806108ed90612074565b9050610863565b509392505050565b60003361080981858561090f8383611491565b6109199190611e35565b611672565b6000336120021461094657604051630f22c43960e41b8152612002600482015260240161020e565b6097546001600160a01b03166000908152606560205260408120549061096b84610e11565b905081811161097a578061097c565b815b609754909150600090610998906001600160a01b031683611789565b6040519091506000906110029083908381818185875af1925050503d80600081146109df576040519150601f19603f3d011682016040523d82523d6000602084013e6109e4565b606091505b5050905080610a06576040516312171d8360e31b815260040160405180910390fd5b50925050505b919050565b60003361200214610a3957604051630f22c43960e41b8152612002600482015260240161020e565b81600003610a5a57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610a9357604051631e9acf1760e31b815260040160405180910390fd5b610a9d8383611789565b905060006120026001600160a01b031663fc0c5ff16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611de4565b610b0f9042611e35565b6040805160608101825285815260208101859052908101829052909150600085610b38816117be565b60405160609290921b6bffffffffffffffffffffffff19166020830152603482015260540160408051601f1981840301815291815281516020928301206000818152609990935291205490915015610ba35760405163b19e911560e01b815260040160405180910390fd5b600081815260996020908152604080832085518155828601516001820155818601516002909101556001600160a01b0389168352609a9091529020610c1f90828154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b50505092915050565b60003361200214610c5057604051630f22c43960e41b8152612002600482015260240161020e565b34600003610c7157604051631f2a200560e01b815260040160405180910390fd5b610c7b82346117e6565b905080600003610a0c57604051639811e0c760e01b815260040160405180910390fd5b3361200214610cc457604051630f22c43960e41b8152612002600482015260240161020e565b346000612710610cde67ffffffffffffffff85168461208d565b610ce89190611e13565b90506000610cf682846120a4565b905060006120026001600160a01b0316631fa8882b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e9190611de4565b610d689042611e13565b6098546000828152609d6020908152604080832093909355609c905290812080549293508492909190610d9c908490611e35565b925050819055508160986000828254610db59190611e35565b9091555050609754610dd0906001600160a01b0316846117e6565b5060408051838152602081018590527ffb0e1482d62102ab9594f69d4c6d693749e3e2bf1c21af272f5456b2d5a4f6b5910160405180910390a15050505050565b6000609854600003610e36576040516307b76ce760e51b815260040160405180910390fd5b609854606754610e46908461208d565b6107419190611e13565b6000610e5b60675490565b600003610e7b57604051632fe8dae960e01b815260040160405180910390fd5b606754609854610e46908461208d565b60606069805461075690612040565b60003381610ea88286611491565b905083811015610f085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161020e565b61082c8286868403611672565b60003361200214610f3d57604051630f22c43960e41b8152612002600482015260240161020e565b81600003610f5e57604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b038316600090815260656020526040902054821115610f9757604051631e9acf1760e31b815260040160405180910390fd5b610fa18383611789565b6040519091506000906120029083908381818185875af1925050503d8060008114610fe8576040519150601f19603f3d011682016040523d82523d6000602084013e610fed565b606091505b505090508061100f576040516312171d8360e31b815260040160405180910390fd5b5092915050565b6000336108098185856116ff565b6001600160a01b0382166000908152609a6020526040812054600f81810b600160801b909204900b0360000361105c57506000610741565b81158061109057506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b61109a57816110c4565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b91506000805b838110156108f4576001600160a01b0385166000908152609a602052604081206110f49083611718565b600081815260996020908152604091829020825160608101845281548152600182015492810183905260029091015492810192909252919250906111389085611e35565b935050508061114690612074565b90506110ca565b6000336120021461117557604051630f22c43960e41b8152612002600482015260240161020e565b61117d61180f565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b036000036111c65760405163ad41893760e01b815260040160405180910390fd5b8115806111fa57506001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b0382115b611204578161122e565b6001600160a01b0383166000908152609a6020526040902054600f81810b600160801b909204900b035b915060005b82156112e4576001600160a01b0384166000908152609a6020526040812061125a90611868565b6000818152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810182905291925042101561129f5750506112e4565b6001600160a01b0386166000908152609a602052604090206112c0906118bc565b5060208101516112d09084611e35565b92506112db856120b7565b94505050611233565b80600003611305576040516303cd8e0960e21b815260040160405180910390fd5b60006120026001600160a01b031663e8f67c3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136b9190611de4565b90506000856001600160a01b03168284604051600060405180830381858888f193505050503d80600081146113bc576040519150601f19603f3d011682016040523d82523d6000602084013e6113c1565b606091505b50509050806113e3576040516312171d8360e31b815260040160405180910390fd5b5050600180559050610741565b6001600160a01b0381166000908152609b6020526040812054610741565b61143260405180606001604052806000815260200160008152602001600081525090565b6001600160a01b0383166000908152609a602052604081206114549084611718565b6000908152609960209081526040918290208251606081018452815481526001820154928101929092526002015491810191909152949350505050565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b600054610100900460ff16158080156114dc5750600054600160ff909116105b806114f65750303b1580156114f6575060005460ff166001145b6115595760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161020e565b6000805460ff19166001179055801561157c576000805461ff0019166101001790555b33612002146115a257604051630f22c43960e41b8152612002600482015260240161020e565b600083836040516020016115b79291906120ce565b6040516020818303038152906040529050600084846040516020016115dd9291906120fe565b60405160208183030381529060405290506115f88282611941565b611600611986565b609780546001600160a01b0319166001600160a01b038816179055611624346119ad565b5050801561166c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b604051632028747160e01b815260040160405180910390fd5b60006116978484611491565b9050600019811461166c57818110156116f25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161020e565b61166c8484848403611672565b604051638cd22d1960e01b815260040160405180910390fd5b60008061173b61172784611b1d565b85546117369190600f0b61211c565b611b8b565b8454909150600160801b9004600f90810b9082900b1261176e57604051632d0483c560e21b815260040160405180910390fd5b600f0b60009081526001939093016020525050604090205490565b600061179482610e50565b90506117a08383611bef565b80609860008282546117b291906120a4565b90915550909392505050565b6001600160a01b0381166000908152609b602052604090208054600181018255905b50919050565b60006117f182610e11565b90506117fd8382611d23565b81609860008282546117b29190611e35565b6002600154036118615760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161020e565b6002600155565b60006118838254600f81810b600160801b909204900b131590565b156118a157604051631ed9509560e11b815260040160405180910390fd5b508054600f0b60009081526001909101602052604090205490565b60006118d78254600f81810b600160801b909204900b131590565b156118f557604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60018055565b600054610100900460ff166119685760405162461bcd60e51b815260040161020e90612144565b606861197483826121f3565b50606961198182826121f3565b505050565b600054610100900460ff1661193b5760405162461bcd60e51b815260040161020e90612144565b600054610100900460ff166119d45760405162461bcd60e51b815260040161020e90612144565b60006120026001600160a01b0316638a4d3fa86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190611de4565b90508082111580611a5457506097546001600160a01b0316155b80611a60575060675415155b15611a7e57604051632163e6b960e21b815260040160405180910390fd5b60006120026001600160a01b0316634e6fd6c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae491906122b3565b9050611af08183611d23565b6000611afc83856120a4565b609754909150611b15906001600160a01b031682611d23565b505050609855565b60006001600160ff1b03821115611b875760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161020e565b5090565b80600f81900b8114610a0c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161020e565b6001600160a01b038216611c4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161020e565b6001600160a01b03821660009081526065602052604090205481811015611cc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161020e565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038216611d795760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161020e565b8060676000828254611d8b9190611e35565b90915550506001600160a01b0382166000818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208284031215611df657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082611e3057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561074157610741611dfd565b6001600160a01b0381168114611e5d57600080fd5b50565b600060208284031215611e7257600080fd5b8135611e7d81611e48565b9392505050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611ee557600080fd5b8235611ef081611e48565b946020939093013593505050565b600080600060608486031215611f1357600080fd5b8335611f1e81611e48565b92506020840135611f2e81611e48565b929592945050506040919091013590565b600060208284031215611f5157600080fd5b5035919050565b600060208284031215611f6a57600080fd5b813567ffffffffffffffff81168114611e7d57600080fd5b60008060408385031215611f9557600080fd5b8235611fa081611e48565b91506020830135611fb081611e48565b809150509250929050565b600080600060408486031215611fd057600080fd5b8335611fdb81611e48565b9250602084013567ffffffffffffffff80821115611ff857600080fd5b818601915086601f83011261200c57600080fd5b81358181111561201b57600080fd5b87602082850101111561202d57600080fd5b6020830194508093505050509250925092565b600181811c9082168061205457607f821691505b6020821081036117e057634e487b7160e01b600052602260045260246000fd5b60006001820161208657612086611dfd565b5060010190565b808202811582820484141761074157610741611dfd565b8181038181111561074157610741611dfd565b6000816120c6576120c6611dfd565b506000190190565b65029ba30b5b2960d51b815281836006830137660810dc99591a5d60ca1b91016006810191909152600d01919050565b611cdd60f21b81528183600283013760009101600201908152919050565b808201828112600083128015821682158216171561213c5761213c611dfd565b505092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561198157600081815260208120601f850160051c810160208610156121cc5750805b601f850160051c820191505b818110156121eb578281556001016121d8565b505050505050565b815167ffffffffffffffff81111561220d5761220d61218f565b6122218161221b8454612040565b846121a5565b602080601f831160018114612256576000841561223e5750858301515b600019600386901b1c1916600185901b1785556121eb565b600085815260208120601f198616915b8281101561228557888601518255948401946001909101908401612266565b50858210156122a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156122c557600080fd5b8151611e7d81611e4856fea164736f6c6343000811000a", + Code: feynman.MainnetStakeCreditContract, }, { ContractAddr: common.HexToAddress(GovernorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106103f35760003560e01c80637b3c71d311610208578063c28bc2fa11610118578063e23a9a52116100ab578063f1fad1041161007a578063f1fad10414610e46578063f23a6e6114610e5b578063f8ce560a14610e87578063fc0c546a14610ea7578063fe0d94c114610ec857600080fd5b8063e23a9a5214610d1b578063ea0217cf14610de6578063eb9019d414610e06578063ece40cc114610e2657600080fd5b8063da95691a116100e7578063da95691a14610c61578063dd4e2ba514610c81578063ddf0b00914610cc7578063deaaa7cc14610ce757600080fd5b8063c28bc2fa14610bef578063c59057e414610c02578063d07f91e914610c22578063d33219b414610c4257600080fd5b8063a7713a701161019b578063b187bd261161016a578063b187bd2614610b55578063b58131b014610b73578063bc197c8114610b88578063c01f9e3714610bb4578063c170ec0b14610bd457600080fd5b8063a7713a7014610ae0578063a890c91014610af5578063ab58fb8e14610b15578063ac43175114610b3557600080fd5b806384b0196e116101d757806384b0196e14610a5857806391ddadf414610a8057806397c3d33414610aac5780639a802a6d14610ac057600080fd5b80637b3c71d3146109ee5780637d5e81e214610a0e5780638129fc1c14610a2e5780638456cb5914610a4357600080fd5b80633932abb1116103035780634a49ac4c1161029657806354fd4d501161026557806354fd4d5014610944578063567813881461096e5780635f398a141461098e57806360c4247f146109ae57806370b0f660146109ce57600080fd5b80634a49ac4c146108b75780634bf5d7e9146108d75780634bf6c882146108ec578063533ddd141461091357600080fd5b8063417c73a7116102d2578063417c73a7146107fc578063438596321461081c578063452115d6146108675780634838d1651461088757600080fd5b80633932abb1146107795780633bccf4fd1461078f5780633e4f49e6146107af57806340e58ee5146107dc57600080fd5b8063150b7a02116103865780632656227d116103555780632656227d146106a25780632d63f693146106b55780632fe3e261146106ec578063328dd9821461072057806332b8113e1461075057600080fd5b8063150b7a02146105fb578063160cbed71461063f57806317977c611461065f57806324bc1a641461068d57600080fd5b8063046f7da2116103c2578063046f7da21461054e57806306f3f9e61461056357806306fdde0314610583578063143489d0146105a557600080fd5b8063013cf08b1461046357806301ffc9a7146104de57806302a251a31461050e578063034201811461052e57600080fd5b3661045e5730610401610edb565b6001600160a01b03161461045c5760405162461bcd60e51b815260206004820152601f60248201527f476f7665726e6f723a206d7573742073656e6420746f206578656375746f720060448201526064015b60405180910390fd5b005b600080fd5b34801561046f57600080fd5b5061048361047e366004615c87565b610ef5565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b3480156104ea57600080fd5b506104fe6104f9366004615ca0565b610fb0565b60405190151581526020016104d5565b34801561051a57600080fd5b50610195545b6040519081526020016104d5565b34801561053a57600080fd5b50610520610549366004615de6565b610fc1565b34801561055a57600080fd5b5061045c6110b9565b34801561056f57600080fd5b5061045c61057e366004615c87565b611149565b34801561058f57600080fd5b506105986111d4565b6040516104d59190615edc565b3480156105b157600080fd5b506105e36105c0366004615c87565b60009081526101636020526040902054600160401b90046001600160a01b031690565b6040516001600160a01b0390911681526020016104d5565b34801561060757600080fd5b50610626610616366004615f04565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104d5565b34801561064b57600080fd5b5061052061065a3660046160db565b611267565b34801561066b57600080fd5b5061052061067a36600461616a565b6102c36020526000908152604090205481565b34801561069957600080fd5b50610520611352565b6105206106b03660046160db565b611378565b3480156106c157600080fd5b506105206106d0366004615c87565b600090815261016360205260409020546001600160401b031690565b3480156106f857600080fd5b506105207fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561072c57600080fd5b5061074061073b366004615c87565b61146b565b6040516104d59493929190616250565b34801561075c57600080fd5b5061028f546040516001600160401b0390911681526020016104d5565b34801561078557600080fd5b5061019454610520565b34801561079b57600080fd5b506105206107aa36600461629d565b6116fd565b3480156107bb57600080fd5b506107cf6107ca366004615c87565b611773565b6040516104d59190616301565b3480156107e857600080fd5b5061045c6107f7366004615c87565b61177e565b34801561080857600080fd5b5061045c61081736600461616a565b6117a9565b34801561082857600080fd5b506104fe610837366004616329565b60008281526101c6602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561087357600080fd5b506105206108823660046160db565b61182a565b34801561089357600080fd5b506104fe6108a236600461616a565b60016020526000908152604090205460ff1681565b3480156108c357600080fd5b5061045c6108d236600461616a565b611838565b3480156108e357600080fd5b506105986118b3565b3480156108f857600080fd5b50610901600881565b60405160ff90911681526020016104d5565b34801561091f57600080fd5b506104fe61092e36600461616a565b6102c16020526000908152604090205460ff1681565b34801561095057600080fd5b506040805180820190915260018152603160f81b6020820152610598565b34801561097a57600080fd5b50610520610989366004616359565b611960565b34801561099a57600080fd5b506105206109a9366004616385565b611989565b3480156109ba57600080fd5b506105206109c9366004615c87565b6119d3565b3480156109da57600080fd5b5061045c6109e9366004615c87565b611a88565b3480156109fa57600080fd5b50610520610a09366004616408565b611b10565b348015610a1a57600080fd5b50610520610a29366004616461565b611b62565b348015610a3a57600080fd5b5061045c611c7d565b348015610a4f57600080fd5b5061045c611eab565b348015610a6457600080fd5b50610a6d611f41565b6040516104d59796959493929190616501565b348015610a8c57600080fd5b50610a95611fdf565b60405165ffffffffffff90911681526020016104d5565b348015610ab857600080fd5b506064610520565b348015610acc57600080fd5b50610520610adb366004616563565b612053565b348015610aec57600080fd5b5061052061206a565b348015610b0157600080fd5b5061045c610b1036600461616a565b612097565b348015610b2157600080fd5b50610520610b30366004615c87565b61211f565b348015610b4157600080fd5b5061045c610b503660046165bb565b6121bb565b348015610b6157600080fd5b5060005462010000900460ff166104fe565b348015610b7f57600080fd5b50610520612900565b348015610b9457600080fd5b50610626610ba336600461661a565b63bc197c8160e01b95945050505050565b348015610bc057600080fd5b50610520610bcf366004615c87565b61290c565b348015610be057600080fd5b506102c2546104fe9060ff1681565b61045c610bfd3660046166ad565b612917565b348015610c0e57600080fd5b50610520610c1d3660046160db565b612a27565b348015610c2e57600080fd5b5061045c610c3d3660046166f0565b612a61565b348015610c4e57600080fd5b5061022b546001600160a01b03166105e3565b348015610c6d57600080fd5b50610520610c7c366004616719565b612ae9565b348015610c8d57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f0000000000006020820152610598565b348015610cd357600080fd5b5061045c610ce2366004615c87565b612b70565b348015610cf357600080fd5b506105207f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d2757600080fd5b50610db6610d36366004616329565b60408051606081018252600080825260208201819052918101919091525060009182526101c6602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352905460ff8082161515835261010082041693820193909352620100009092046001600160601b03169082015290565b6040805182511515815260208084015160ff1690820152918101516001600160601b0316908201526060016104d5565b348015610df257600080fd5b5061045c610e01366004615c87565b612b93565b348015610e1257600080fd5b50610520610e213660046167ba565b612c1b565b348015610e3257600080fd5b5061045c610e41366004615c87565b612c3c565b348015610e5257600080fd5b50610901601181565b348015610e6757600080fd5b50610626610e763660046167e6565b63f23a6e6160e01b95945050505050565b348015610e9357600080fd5b50610520610ea2366004615c87565b612cc4565b348015610eb357600080fd5b506101f8546105e3906001600160a01b031681565b61045c610ed6366004615c87565b612d53565b6000610ef061022b546001600160a01b031690565b905090565b8060008080808080808080610f098a61211f565b60008c815261016360205260409020549098506001600160401b03169650610f308b61290c565b60008c81526101c66020526040812080546005820154600683015460078401546001600160a01b039093169e50949a509850929650919450610f718d611773565b90506002816007811115610f8757610f876162eb565b1493506007816007811115610f9e57610f9e6162eb565b14925050509193959799509193959799565b6000610fbb82612d76565b92915050565b60008061106561105d7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ffd92919061684e565b60405180910390208b80519060200120604051602001611042959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612d9b565b868686612dc8565b90506110ab8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612de6915050565b9a9950505050505050505050565b600054630100000090046001600160a01b031633146110eb576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1661111457604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b611151610edb565b6001600160a01b0316336001600160a01b0316146111815760405162461bcd60e51b81526004016104539061685e565b3061118a610edb565b6001600160a01b0316146111c857600080366040516111aa92919061684e565b604051809103902090505b806111c1610164612e4f565b036111b557505b6111d181612ece565b50565b606061016280546111e490616895565b80601f016020809104026020016040519081016040528092919081815260200182805461121090616895565b801561125d5780601f106112325761010080835404028352916020019161125d565b820191906000526020600020905b81548152906001019060200180831161124057829003601f168201915b5050505050905090565b6000805462010000900460ff161561129257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156112c35760405163b1d02c3d60e01b815260040160405180910390fd5b60005b855181101561133c576102c160008783815181106112e6576112e66168cf565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1661132a57604051630b094f2760e31b815260040160405180910390fd5b80611334816168fb565b9150506112c6565b506113498585858561303f565b95945050505050565b6000610ef06001611361611fdf565b61136b9190616914565b65ffffffffffff16612cc4565b60008061138786868686612a27565b9050600061139482611773565b905060048160078111156113aa576113aa6162eb565b14806113c7575060058160078111156113c5576113c56162eb565b145b6113e35760405162461bcd60e51b81526004016104539061693a565b6000828152610163602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906114329084815260200190565b60405180910390a16114478288888888613244565b61145482888888886132e5565b61146182888888886133c7565b5095945050505050565b60608060608060006101c66000878152602001908152602001600020905080600101816002018260030183600401838054806020026020016040519081016040528092919081815260200182805480156114ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d0575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561161457838290600052602060002001805461158790616895565b80601f01602080910402602001604051908101604052809291908181526020018280546115b390616895565b80156116005780601f106115d557610100808354040283529160200191611600565b820191906000526020600020905b8154815290600101906020018083116115e357829003601f168201915b505050505081526020019060010190611568565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156116e757838290600052602060002001805461165a90616895565b80601f016020809104026020016040519081016040528092919081815260200182805461168690616895565b80156116d35780601f106116a8576101008083540402835291602001916116d3565b820191906000526020600020905b8154815290600101906020018083116116b657829003601f168201915b50505050508152602001906001019061163b565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061174b9061105d90608001611042565b905061176887828860405180602001604052806000815250613402565b979650505050505050565b6000610fbb82613425565b60008060008061178d85613572565b93509350935093506117a18484848461182a565b505050505050565b600054630100000090046001600160a01b031633146117db576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b600061134985858585613803565b600054630100000090046001600160a01b0316331461186a576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b6101f85460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e99160048083019260009291908290030181865afa92505050801561191f57506040513d6000823e601f3d908101601f1916820160405261191c919081019061697b565b60015b61195b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b60008033905061198184828560405180602001604052806000815250613402565b949350505050565b60008033905061176887828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612de6915050565b61025e546000908082036119ec57505061025d54919050565b600061025e6119fc6001846169e8565b81548110611a0c57611a0c6168cf565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410611a6257602001516001600160e01b03169392505050565b611a77611a6e856138ce565b61025e90613937565b6001600160e01b0316949350505050565b611a90610edb565b6001600160a01b0316336001600160a01b031614611ac05760405162461bcd60e51b81526004016104539061685e565b30611ac9610edb565b6001600160a01b031614611b075760008036604051611ae992919061684e565b604051809103902090505b80611b00610164612e4f565b03611af457505b6111d1816139ea565b600080339050611b5886828787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061340292505050565b9695505050505050565b6000805462010000900460ff1615611b8d57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615611bbe5760405163b1d02c3d60e01b815260040160405180910390fd5b611bc6613a2d565b3360009081526102c360205260409020548015611c3b576000611be882611773565b90506001816007811115611bfe57611bfe6162eb565b1480611c1b57506000816007811115611c1957611c196162eb565b145b15611c395760405163867f3ee560e01b815260040160405180910390fd5b505b825160208401206000611c5088888885612a27565b3360009081526102c3602052604090208190559050611c7188888888613ad8565b98975050505050505050565b600054610100900460ff1615808015611c9d5750600054600160ff909116105b80611cb75750303b158015611cb7575060005460ff166001145b611d1a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff191660011790558015611d3d576000805461ff0019166101001790555b334114611d5d5760405163022d8c9560e31b815260040160405180910390fd5b3a15611d7c576040516383f1b1d360e01b815260040160405180910390fd5b611da86040518060400160405280600b81526020016a2129a1a3b7bb32b93737b960a91b815250613b40565b611dd2611db76003603c616a11565b611dc360036078616a11565b680ad78ebc5ac6200000613b97565b611dda613bce565b611de5612005613bf5565b611df0612006613c25565b611dfa600a613c55565b611e0e611e096003603c616a11565b613c85565b6110076000526102c16020527f2f832952f0ef896b8c8edd6d16a2e4f2591a90375e33021e3b9ff197f3793fc0805460ff19166001179055611e6373df87f0e2b8519ea2dd4abd8b639cdd628497ed25613cb5565b80156111d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b600054630100000090046001600160a01b03163314611edd576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1615611f0757604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b6000606080600080600060606098546000801b148015611f615750609954155b611fa55760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610453565b611fad613d08565b611fb5613d17565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6101f854604080516324776b7d60e21b815290516000926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa925050508015612046575060408051601f3d908101601f1916820190925261204391810190616a33565b60015b61195b57610ef043613d26565b6000612060848484613d8d565b90505b9392505050565b61025e546000901561208f5761208161025e613e04565b6001600160e01b0316905090565b5061025d5490565b61209f610edb565b6001600160a01b0316336001600160a01b0316146120cf5760405162461bcd60e51b81526004016104539061685e565b306120d8610edb565b6001600160a01b03161461211657600080366040516120f892919061684e565b604051809103902090505b8061210f610164612e4f565b0361210357505b6111d181613e34565b61022b54600082815261022c602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa15801561217e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a29190616a5b565b9050806001146121b25780612063565b60009392505050565b33611007146121e157604051630f22c43960e41b81526110076004820152602401610453565b6122476040518060400160405280600b81526020016a766f74696e6744656c617960a81b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b156122fc57602081146122755783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f84018190048102820181019092528281526000916122b6918585808385018382808284376000920191909152509293925050613ef89050565b90508015806122c757506201518081115b156122ed5784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f6816139ea565b506128bd565b6123636040518060400160405280600c81526020016b1d9bdd1a5b99d4195c9a5bd960a21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561241257602081146123915783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f84018190048102820181019092528281526000916123d2918585808385018382808284376000920191909152509293925050613ef89050565b90508015806123e3575062278d0081115b156124095784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681613efd565b61247e604051806040016040528060118152602001701c1c9bdc1bdcd85b151a1c995cda1bdb19607a1b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561253457602081146124ac5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f84018190048102820181019092528281526000916124ed918585808385018382808284376000920191909152509293925050613ef89050565b9050801580612505575069021e19e0c9bab240000081115b1561252b5784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681613fa0565b61259e6040518060400160405280600f81526020016e38bab7b93ab6a73ab6b2b930ba37b960891b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561264d57602081146125cc5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b604080516020601f840181900481028201810190925282815260009161260d918585808385018382808284376000920191909152509293925050613ef89050565b9050600581108061261e5750601481115b156126445784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681612ece565b6126bc604051806040016040528060148152602001736d696e506572696f64416674657251756f72756d60601b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561278257600881146126ea5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b6000612730600884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ef89050565b90506001600160401b038116158061275357506202a300816001600160401b0316115b156127795784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f681613fe3565b6127ee6040518060400160405280601181526020017033b7bb32b93737b9283937ba32b1ba37b960791b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613e9f9050565b1561289c576014811461281c5783838383604051630a5a604160e01b81526004016104539493929190616a9d565b6000612862601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050613ef89050565b90506001600160a01b0381166128935784848484604051630a5a604160e01b81526004016104539493929190616a9d565b6122f68161404f565b838383836040516325ee20d560e21b81526004016104539493929190616a9d565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516128f29493929190616a9d565b60405180910390a150505050565b6000610ef06101965490565b6000610fbb826140bb565b61291f610edb565b6001600160a01b0316336001600160a01b03161461294f5760405162461bcd60e51b81526004016104539061685e565b30612958610edb565b6001600160a01b031614612996576000803660405161297892919061684e565b604051809103902090505b8061298f610164612e4f565b0361298357505b600080856001600160a01b03168585856040516129b492919061684e565b60006040518083038185875af1925050503d80600081146129f1576040519150601f19603f3d011682016040523d82523d6000602084013e6129f6565b606091505b5091509150612a1e8282604051806060016040528060288152602001616efa602891396140f9565b50505050505050565b600084848484604051602001612a409493929190616ac4565b60408051601f19818403018152919052805160209091012095945050505050565b612a69610edb565b6001600160a01b0316336001600160a01b031614612a995760405162461bcd60e51b81526004016104539061685e565b30612aa2610edb565b6001600160a01b031614612ae05760008036604051612ac292919061684e565b604051809103902090505b80612ad9610164612e4f565b03612acd57505b6111d181613fe3565b60008251845114612b4d5760405162461bcd60e51b815260206004820152602860248201527f476f7665726e6f72427261766f3a20696e76616c6964207369676e61747572656044820152670e640d8cadccee8d60c31b6064820152608401610453565b612b5b338787878787614112565b611b588686612b6a87876141d0565b85611b62565b600080600080612b7f85613572565b93509350935093506117a184848484611267565b612b9b610edb565b6001600160a01b0316336001600160a01b031614612bcb5760405162461bcd60e51b81526004016104539061685e565b30612bd4610edb565b6001600160a01b031614612c125760008036604051612bf492919061684e565b604051809103902090505b80612c0b610164612e4f565b03612bff57505b6111d181613efd565b60006120638383612c3760408051602081019091526000815290565b613d8d565b612c44610edb565b6001600160a01b0316336001600160a01b031614612c745760405162461bcd60e51b81526004016104539061685e565b30612c7d610edb565b6001600160a01b031614612cbb5760008036604051612c9d92919061684e565b604051809103902090505b80612cb4610164612e4f565b03612ca857505b6111d181613fa0565b60006064612cd1836119d3565b6101f854604051632394e7a360e21b8152600481018690526001600160a01b0390911690638e539e8c90602401602060405180830381865afa158015612d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3f9190616a5b565b612d499190616b0f565b610fbb9190616a11565b600080600080612d6285613572565b93509350935093506117a184848484611378565b60006001600160e01b03198216636e665ced60e01b1480610fbb5750610fbb82614302565b6000610fbb612da861439e565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000612dd9878787876143a8565b915091506114618161446c565b6000805462010000900460ff1615612e1157604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615612e425760405163b1d02c3d60e01b815260040160405180910390fd5b611b5886868686866145b6565b6000612e6a8254600f81810b600160801b909204900b131590565b15612e8857604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b6064811115612f515760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610453565b6000612f5b61206a565b90508015801590612f6d575061025e54155b15612fd257604080518082019091526000815261025e9060208101612f91846146b9565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b613000612fed612fe0611fdf565b65ffffffffffff166138ce565b612ff6846146b9565b61025e9190614722565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b60008061304e86868686612a27565b9050600461305b82611773565b600781111561306c5761306c6162eb565b146130895760405162461bcd60e51b81526004016104539061693a565b61022b546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa1580156130d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f89190616a5b565b61022b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790613133908a908a908a906000908b90600401616b26565b602060405180830381865afa158015613150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131749190616a5b565b600083815261022c60205260408082209290925561022b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb0916131c1918b918b918b91908b908990600401616b74565b600060405180830381600087803b1580156131db57600080fd5b505af11580156131ef573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426132219190616bcc565b604080519283526020830191909152015b60405180910390a15095945050505050565b3061324d610edb565b6001600160a01b0316146132de5760005b84518110156117a157306001600160a01b0316858281518110613283576132836168cf565b60200260200101516001600160a01b0316036132ce576132ce8382815181106132ae576132ae6168cf565b60200260200101518051906020012061016461473d90919063ffffffff16565b6132d7816168fb565b905061325e565b5050505050565b60005462010000900460ff161561330f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156133405760405163b1d02c3d60e01b815260040160405180910390fd5b60005b84518110156133b9576102c16000868381518110613363576133636168cf565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166133a757604051630b094f2760e31b815260040160405180910390fd5b806133b1816168fb565b915050613343565b506132de8585858585614779565b306133d0610edb565b6001600160a01b0316146132de5761016454600f81810b600160801b909204900b13156132de576000610164556132de565b60006113498585858561342060408051602081019091526000815290565b612de6565b600080613431836147ee565b90506004816007811115613447576134476162eb565b146134525792915050565b600083815261022c60205260409020548061346e575092915050565b61022b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa1580156134b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134dc9190616bdf565b156134eb575060079392505050565b61022b54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015613535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135599190616bdf565b15613568575060059392505050565b5060029392505050565b60608060606000806101c660008781526020019081526020016000209050806001018160020161374483600301805480602002602001604051908101604052809291908181526020016000905b8282101561366b5783829060005260206000200180546135de90616895565b80601f016020809104026020016040519081016040528092919081815260200182805461360a90616895565b80156136575780601f1061362c57610100808354040283529160200191613657565b820191906000526020600020905b81548152906001019060200180831161363a57829003601f168201915b5050505050815260200190600101906135bf565b50505060048601805460408051602080840282018101909252828152935060009084015b8282101561373b5783829060005260206000200180546136ae90616895565b80601f01602080910402602001604051908101604052809291908181526020018280546136da90616895565b80156137275780601f106136fc57610100808354040283529160200191613727565b820191906000526020600020905b81548152906001019060200180831161370a57829003601f168201915b50505050508152602001906001019061368f565b505050506141d0565b600984015483546040805160208084028201810190925282815291869183018282801561379a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161377c575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156137ec57602002820191906000526020600020905b8154815260200190600101908083116137d8575b505050505092509450945094509450509193509193565b60008061381286868686612a27565b60008181526101c660205260409020549091506001600160a01b031633811480613866575061383f612900565b61386482600161384d611fdf565b6138579190616914565b65ffffffffffff16612c1b565b105b6138c25760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610453565b61176887878787614926565b600063ffffffff8211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610453565b5090565b81546000908181600581111561399457600061395284614934565b61395c90856169e8565b60008881526020902090915081015463ffffffff908116908716101561398457809150613992565b61398f816001616bcc565b92505b505b60006139a287878585614a1c565b905080156139dd576139c7876139b96001846169e8565b600091825260209091200190565b54600160201b90046001600160e01b0316611768565b6000979650505050505050565b6101945460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a161019455565b6102c25460ff16613ad6576a084595161401484a0000006120056001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa89190616a5b565b1015613ac7576040516311b6707f60e01b815260040160405180910390fd5b6102c2805460ff191660011790555b565b6000613b3433868686516001600160401b03811115613af957613af9615d23565b604051908082528060200260200182016040528015613b2c57816020015b6060815260200190600190039081613b175790505b508787614112565b61134985858585614a72565b600054610100900460ff16613b675760405162461bcd60e51b815260040161045390616c01565b613b8e81613b896040805180820190915260018152603160f81b602082015290565b614e51565b6111d181614ea0565b600054610100900460ff16613bbe5760405162461bcd60e51b815260040161045390616c01565b613bc9838383614ed8565b505050565b600054610100900460ff16613ad65760405162461bcd60e51b815260040161045390616c01565b600054610100900460ff16613c1c5760405162461bcd60e51b815260040161045390616c01565b6111d181614f1a565b600054610100900460ff16613c4c5760405162461bcd60e51b815260040161045390616c01565b6111d181614f64565b600054610100900460ff16613c7c5760405162461bcd60e51b815260040161045390616c01565b6111d181614f8b565b600054610100900460ff16613cac5760405162461bcd60e51b815260040161045390616c01565b6111d181614fb2565b600054610100900460ff16613cdc5760405162461bcd60e51b815260040161045390616c01565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6060609a80546111e490616895565b6060609b80546111e490616895565b600065ffffffffffff8211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610453565b6101f854604051630748d63560e31b81526001600160a01b038581166004830152602482018590526000921690633a46b1a890604401602060405180830381865afa158015613de0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120609190616a5b565b805460009080156121b257613e1e836139b96001846169e8565b54600160201b90046001600160e01b0316612063565b61022b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a161022b80546001600160a01b0319166001600160a01b0392909216919091179055565b600081604051602001613eb29190616c4c565b6040516020818303038152906040528051906020012083604051602001613ed99190616c4c565b6040516020818303038152906040528051906020012014905092915050565b015190565b60008111613f5d5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610453565b6101955460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a161019555565b6101965460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a161019655565b61028f54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a161028f805467ffffffffffffffff19166001600160401b0392909216919091179055565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b60008181526101636020526040812060010154610fbb906001600160401b0316600084815261029060205260409020546001600160401b0316614fd9565b60608315614108575081612063565b6120638383614fef565b805160208201206000614130878761412a88886141d0565b85612a27565b60008181526101c6602052604090206009810154919250906141c55780546001600160a01b0319166001600160a01b038a16178155875161417a90600183019060208b0190615abe565b50865161419090600283019060208a0190615b1f565b5085516141a69060038301906020890190615b5a565b5084516141bc9060048301906020880190615bac565b50600981018390555b505050505050505050565b6060600082516001600160401b038111156141ed576141ed615d23565b60405190808252806020026020018201604052801561422057816020015b606081526020019060019003908161420b5790505b50905060005b81518110156142fa57848181518110614241576142416168cf565b6020026020010151516000146142b157848181518110614263576142636168cf565b602002602001015180519060200120848281518110614284576142846168cf565b602002602001015160405160200161429d929190616c68565b6040516020818303038152906040526142cc565b8381815181106142c3576142c36168cf565b60200260200101515b8282815181106142de576142de6168cf565b6020026020010181905250806142f3906168fb565b9050614226565b509392505050565b600063288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b0319861682148061434857506001600160e01b0319868116908216145b8061435f57506001600160e01b0319868116908516145b8061437a57506001600160e01b03198616630271189760e51b145b80611b5857506301ffc9a760e01b6001600160e01b03198716149695505050505050565b6000610ef0615019565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143df5750600090506003614463565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614433573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661445c57600060019250925050614463565b9150600090505b94509492505050565b6000816004811115614480576144806162eb565b036144885750565b600181600481111561449c5761449c6162eb565b036144e95760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610453565b60028160048111156144fd576144fd6162eb565b0361454a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610453565b600381600481111561455e5761455e6162eb565b036111d15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610453565b6000806145c6878787878761508d565b600088815261029060205260409020549091506001600160401b03161580156145f357506145f3876151e3565b15611b5857600061460d61028f546001600160401b031690565b614615611fdf565b65ffffffffffff166146279190616c99565b90506146328861290c565b816001600160401b03161115614681576040516001600160401b038216815288907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b600088815261029060205260409020805467ffffffffffffffff19166001600160401b03929092169190911790559695505050505050565b60006001600160e01b038211156139335760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610453565b600080614730858585615223565b915091505b935093915050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b61022b5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906147b5908890889088906000908990600401616b26565b6000604051808303818588803b1580156147ce57600080fd5b505af11580156147e2573d6000803e3d6000fd5b50505050505050505050565b600081815261016360205260408120600281015460ff16156148135750600792915050565b6002810154610100900460ff161561482e5750600292915050565b600083815261016360205260408120546001600160401b0316908190036148975760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610453565b60006148a1611fdf565b65ffffffffffff1690508082106148bd57506000949350505050565b60006148c88661290c565b90508181106148dd5750600195945050505050565b6148e6866151e3565b8015614909575060008681526101c6602052604090206006810154600590910154115b1561491a5750600495945050505050565b50600395945050505050565b6000611349858585856153c2565b60008160000361494657506000919050565b6000600161495384615478565b901c6001901b9050600181848161496c5761496c6169fb565b048201901c90506001818481614984576149846169fb565b048201901c9050600181848161499c5761499c6169fb565b048201901c905060018184816149b4576149b46169fb565b048201901c905060018184816149cc576149cc6169fb565b048201901c905060018184816149e4576149e46169fb565b048201901c905060018184816149fc576149fc6169fb565b048201901c905061206381828581614a1657614a166169fb565b0461550c565b60005b818310156142fa576000614a33848461551b565b60008781526020902090915063ffffffff86169082015463ffffffff161115614a5e57809250614a6c565b614a69816001616bcc565b93505b50614a1f565b600033614a7f8184615536565b614acb5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73657220726573747269637465640000006044820152606401610453565b6000614ad5611fdf565b65ffffffffffff169050614ae7612900565b614af683610e216001856169e8565b1015614b5e5760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610453565b6000614b738888888880519060200120612a27565b90508651885114614b965760405162461bcd60e51b815260040161045390616cb9565b8551885114614bb75760405162461bcd60e51b815260040161045390616cb9565b6000885111614c085760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610453565b600081815261016360205260409020546001600160401b031615614c785760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610453565b6000614c846101945490565b614c8e9084616bcc565b90506000614c9c6101955490565b614ca69083616bcc565b90506040518060e00160405280614cbc84615627565b6001600160401b031681526001600160a01b038716602082015260006040820152606001614ce983615627565b6001600160401b03908116825260006020808401829052604080850183905260609485018390528883526101638252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115614dee57614dee615d23565b604051908082528060200260200182016040528015614e2157816020015b6060815260200190600190039081614e0c5790505b508d88888f604051614e3b99989796959493929190616cfa565b60405180910390a1509098975050505050505050565b600054610100900460ff16614e785760405162461bcd60e51b815260040161045390616c01565b609a614e848382616dd8565b50609b614e918282616dd8565b50506000609881905560995550565b600054610100900460ff16614ec75760405162461bcd60e51b815260040161045390616c01565b610162614ed48282616dd8565b5050565b600054610100900460ff16614eff5760405162461bcd60e51b815260040161045390616c01565b614f08836139ea565b614f1182613efd565b613bc981613fa0565b600054610100900460ff16614f415760405162461bcd60e51b815260040161045390616c01565b6101f880546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166121165760405162461bcd60e51b815260040161045390616c01565b600054610100900460ff166111c85760405162461bcd60e51b815260040161045390616c01565b600054610100900460ff16612ae05760405162461bcd60e51b815260040161045390616c01565b6000818311614fe85781612063565b5090919050565b815115614fff5781518083602001fd5b8060405162461bcd60e51b81526004016104539190615edc565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61504461568f565b61504c6156e8565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008581526101636020526040812060016150a788611773565b60078111156150b8576150b86162eb565b146151115760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610453565b805460009061512b9088906001600160401b031686613d8d565b905061513a8888888488615719565b835160000361518f57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516151829493929190616e97565b60405180910390a2611768565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516151d0959493929190616ebf565b60405180910390a2979650505050505050565b60008181526101c660205260408120600581015461521a610ea285600090815261016360205260409020546001600160401b031690565b11159392505050565b825460009081908015615369576000615241876139b96001856169e8565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156152c25760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610453565b805163ffffffff80881691160361530a57846152e3886139b96001866169e8565b80546001600160e01b0392909216600160201b0263ffffffff909216919091179055615359565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506147359050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081614735565b6000806153d1868686866158b7565b600081815261022c6020526040902054909150156113495761022b54600082815261022c60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f59161542d9160040190815260200190565b600060405180830381600087803b15801561544757600080fd5b505af115801561545b573d6000803e3d6000fd5b505050600082815261022c60205260408120555095945050505050565b600080608083901c1561548d57608092831c92015b604083901c1561549f57604092831c92015b602083901c156154b157602092831c92015b601083901c156154c357601092831c92015b600883901c156154d557600892831c92015b600483901c156154e757600492831c92015b600283901c156154f957600292831c92015b600183901c15610fbb5760010192915050565b6000818310614fe85781612063565b600061552a6002848418616a11565b61206390848416616bcc565b8051600090603481101561554e576001915050610fbb565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b1461558157600192505050610fbb565b60008061558f6028856169e8565b90505b83811015615606576000806155c68884815181106155b2576155b26168cf565b01602001516001600160f81b0319166159c4565b91509150816155de5760019650505050505050610fbb565b8060ff166004856001600160a01b0316901b1793505050806155ff906168fb565b9050615592565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006001600160401b038211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610453565b60008061569a613d08565b8051909150156156b1578051602090910120919050565b60985480156156c05792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806156f3613d17565b80519091501561570a578051602090910120919050565b60995480156156c05792915050565b60008581526101c6602090815260408083206001600160a01b038816845260088101909252909120805460ff16156157a95760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610453565b805460ff86166101000261ffff199091161760011781556157c984615a56565b81546001600160601b039190911662010000026dffffffffffffffffffffffff00001990911617815560ff8516615819578382600601600082825461580e9190616bcc565b90915550612a1e9050565b60001960ff861601615839578382600501600082825461580e9190616bcc565b60011960ff861601615859578382600701600082825461580e9190616bcc565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610453565b6000806158c686868686612a27565b905060006158d382611773565b905060028160078111156158e9576158e96162eb565b1415801561590957506006816007811115615906576159066162eb565b14155b801561592757506007816007811115615924576159246162eb565b14155b6159735760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610453565b6000828152610163602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906132329084815260200190565b60008060f883901c602f811180156159df5750603a8160ff16105b156159f457600194602f199091019350915050565b8060ff166040108015615a0a575060478160ff16105b15615a1f576001946036199091019350915050565b8060ff166060108015615a35575060678160ff16105b15615a4a576001946056199091019350915050565b50600093849350915050565b60006001600160601b038211156139335760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610453565b828054828255906000526020600020908101928215615b13579160200282015b82811115615b1357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190615ade565b50613933929150615bfe565b828054828255906000526020600020908101928215615b13579160200282015b82811115615b13578251825591602001919060010190615b3f565b828054828255906000526020600020908101928215615ba0579160200282015b82811115615ba05782518290615b909082616dd8565b5091602001919060010190615b7a565b50613933929150615c13565b828054828255906000526020600020908101928215615bf2579160200282015b82811115615bf25782518290615be29082616dd8565b5091602001919060010190615bcc565b50613933929150615c30565b5b808211156139335760008155600101615bff565b80821115613933576000615c278282615c4d565b50600101615c13565b80821115613933576000615c448282615c4d565b50600101615c30565b508054615c5990616895565b6000825580601f10615c69575050565b601f0160209004906000526020600020908101906111d19190615bfe565b600060208284031215615c9957600080fd5b5035919050565b600060208284031215615cb257600080fd5b81356001600160e01b03198116811461206357600080fd5b803560ff8116811461195b57600080fd5b60008083601f840112615ced57600080fd5b5081356001600160401b03811115615d0457600080fd5b602083019150836020828501011115615d1c57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715615d6157615d61615d23565b604052919050565b60006001600160401b03821115615d8257615d82615d23565b50601f01601f191660200190565b600082601f830112615da157600080fd5b8135615db4615daf82615d69565b615d39565b818152846020838601011115615dc957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215615e0257600080fd5b88359750615e1260208a01615cca565b965060408901356001600160401b0380821115615e2e57600080fd5b615e3a8c838d01615cdb565b909850965060608b0135915080821115615e5357600080fd5b50615e608b828c01615d90565b945050615e6f60808a01615cca565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015615ea7578181015183820152602001615e8f565b50506000910152565b60008151808452615ec8816020860160208601615e8c565b601f01601f19169290920160200192915050565b6020815260006120636020830184615eb0565b6001600160a01b03811681146111d157600080fd5b60008060008060808587031215615f1a57600080fd5b8435615f2581615eef565b93506020850135615f3581615eef565b92506040850135915060608501356001600160401b03811115615f5757600080fd5b615f6387828801615d90565b91505092959194509250565b60006001600160401b03821115615f8857615f88615d23565b5060051b60200190565b600082601f830112615fa357600080fd5b81356020615fb3615daf83615f6f565b82815260059290921b84018101918181019086841115615fd257600080fd5b8286015b84811015615ff6578035615fe981615eef565b8352918301918301615fd6565b509695505050505050565b600082601f83011261601257600080fd5b81356020616022615daf83615f6f565b82815260059290921b8401810191818101908684111561604157600080fd5b8286015b84811015615ff65780358352918301918301616045565b600082601f83011261606d57600080fd5b8135602061607d615daf83615f6f565b82815260059290921b8401810191818101908684111561609c57600080fd5b8286015b84811015615ff65780356001600160401b038111156160bf5760008081fd5b6160cd8986838b0101615d90565b8452509183019183016160a0565b600080600080608085870312156160f157600080fd5b84356001600160401b038082111561610857600080fd5b61611488838901615f92565b9550602087013591508082111561612a57600080fd5b61613688838901616001565b9450604087013591508082111561614c57600080fd5b506161598782880161605c565b949793965093946060013593505050565b60006020828403121561617c57600080fd5b813561206381615eef565b600081518084526020808501945080840160005b838110156161c05781516001600160a01b03168752958201959082019060010161619b565b509495945050505050565b600081518084526020808501945080840160005b838110156161c0578151875295820195908201906001016161df565b600081518084526020808501808196508360051b8101915082860160005b85811015616243578284038952616231848351615eb0565b98850198935090840190600101616219565b5091979650505050505050565b6080815260006162636080830187616187565b828103602084015261627581876161cb565b9050828103604084015261628981866161fb565b9050828103606084015261176881856161fb565b600080600080600060a086880312156162b557600080fd5b853594506162c560208701615cca565b93506162d360408701615cca565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061632357634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561633c57600080fd5b82359150602083013561634e81615eef565b809150509250929050565b6000806040838503121561636c57600080fd5b8235915061637c60208401615cca565b90509250929050565b60008060008060006080868803121561639d57600080fd5b853594506163ad60208701615cca565b935060408601356001600160401b03808211156163c957600080fd5b6163d589838a01615cdb565b909550935060608801359150808211156163ee57600080fd5b506163fb88828901615d90565b9150509295509295909350565b6000806000806060858703121561641e57600080fd5b8435935061642e60208601615cca565b925060408501356001600160401b0381111561644957600080fd5b61645587828801615cdb565b95989497509550505050565b6000806000806080858703121561647757600080fd5b84356001600160401b038082111561648e57600080fd5b61649a88838901615f92565b955060208701359150808211156164b057600080fd5b6164bc88838901616001565b945060408701359150808211156164d257600080fd5b6164de8883890161605c565b935060608701359150808211156164f457600080fd5b50615f6387828801615d90565b60ff60f81b8816815260e06020820152600061652060e0830189615eb0565b82810360408401526165328189615eb0565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506110ab81856161cb565b60008060006060848603121561657857600080fd5b833561658381615eef565b92506020840135915060408401356001600160401b038111156165a557600080fd5b6165b186828701615d90565b9150509250925092565b600080600080604085870312156165d157600080fd5b84356001600160401b03808211156165e857600080fd5b6165f488838901615cdb565b9096509450602087013591508082111561660d57600080fd5b5061645587828801615cdb565b600080600080600060a0868803121561663257600080fd5b853561663d81615eef565b9450602086013561664d81615eef565b935060408601356001600160401b038082111561666957600080fd5b61667589838a01616001565b9450606088013591508082111561668b57600080fd5b61669789838a01616001565b935060808801359150808211156163ee57600080fd5b600080600080606085870312156166c357600080fd5b84356166ce81615eef565b93506020850135925060408501356001600160401b0381111561644957600080fd5b60006020828403121561670257600080fd5b81356001600160401b038116811461206357600080fd5b600080600080600060a0868803121561673157600080fd5b85356001600160401b038082111561674857600080fd5b61675489838a01615f92565b9650602088013591508082111561676a57600080fd5b61677689838a01616001565b9550604088013591508082111561678c57600080fd5b61679889838a0161605c565b945060608801359150808211156167ae57600080fd5b61669789838a0161605c565b600080604083850312156167cd57600080fd5b82356167d881615eef565b946020939093013593505050565b600080600080600060a086880312156167fe57600080fd5b853561680981615eef565b9450602086013561681981615eef565b9350604086013592506060860135915060808601356001600160401b0381111561684257600080fd5b6163fb88828901615d90565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806168a957607f821691505b6020821081036168c957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161690d5761690d6168e5565b5060010190565b65ffffffffffff828116828216039080821115616933576169336168e5565b5092915050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561698d57600080fd5b81516001600160401b038111156169a357600080fd5b8201601f810184136169b457600080fd5b80516169c2615daf82615d69565b8181528560208385010111156169d757600080fd5b611349826020830160208601615e8c565b81810381811115610fbb57610fbb6168e5565b634e487b7160e01b600052601260045260246000fd5b600082616a2e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215616a4557600080fd5b815165ffffffffffff8116811461206357600080fd5b600060208284031215616a6d57600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000616ab1604083018688616a74565b8281036020840152611768818587616a74565b608081526000616ad76080830187616187565b8281036020840152616ae981876161cb565b90508281036040840152616afd81866161fb565b91505082606083015295945050505050565b8082028115828204841417610fbb57610fbb6168e5565b60a081526000616b3960a0830188616187565b8281036020840152616b4b81886161cb565b90508281036040840152616b5f81876161fb565b60608401959095525050608001529392505050565b60c081526000616b8760c0830189616187565b8281036020840152616b9981896161cb565b90508281036040840152616bad81886161fb565b60608401969096525050608081019290925260a0909101529392505050565b80820180821115610fbb57610fbb6168e5565b600060208284031215616bf157600080fd5b8151801515811461206357600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251616c5e818460208701615e8c565b9190910192915050565b6001600160e01b0319831681528151600090616c8b816004850160208701615e8c565b919091016004019392505050565b6001600160401b03818116838216019080821115616933576169336168e5565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090616d258382018b616187565b90508281036060840152616d39818a6161cb565b90508281036080840152616d4d81896161fb565b905082810360a0840152616d6181886161fb565b90508560c08401528460e0840152828103610100840152616d828185615eb0565b9c9b505050505050505050505050565b601f821115613bc957600081815260208120601f850160051c81016020861015616db95750805b601f850160051c820191505b818110156117a157828155600101616dc5565b81516001600160401b03811115616df157616df1615d23565b616e0581616dff8454616895565b84616d92565b602080601f831160018114616e3a5760008415616e225750858301515b600019600386901b1c1916600185901b1785556117a1565b600085815260208120601f198616915b82811015616e6957888601518255948401946001909101908401616e4a565b5085821015616e875787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000611b586080830184615eb0565b85815260ff8516602082015283604082015260a060608201526000616ee760a0830185615eb0565b8281036080840152611c718185615eb056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a164736f6c6343000811000a", + Code: feynman.RialtoGovernorContract, }, { ContractAddr: common.HexToAddress(GovTokenContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b50600436106102065760003560e01c806370a082311161011a5780639ab24eb0116100ad578063d505accf1161007c578063d505accf1461049d578063dd62ed3e146104b0578063e5ed5b1e146104c3578063f1127ed8146104d6578063f1fad1041461051357600080fd5b80639ab24eb014610451578063a457c2d714610464578063a9059cbb14610477578063c3cda5201461048a57600080fd5b806384b0196e116100e957806384b0196e146103fc5780638e539e8c1461041757806391ddadf41461042a57806395d89b411461044957600080fd5b806370a08231146103aa57806379cc6790146103d35780637ecebe00146103e15780638129fc1c146103f457600080fd5b8063395093511161019d5780634bf5d7e91161016c5780634bf5d7e91461031b5780634bf6c88214610323578063587cde1e1461032b5780635c19a95c1461036f5780636fcfff451461038257600080fd5b806339509351146102cf5780633a46b1a8146102e257806342966c68146102f5578063448407751461030857600080fd5b806323b872dd116101d957806323b872dd1461028a5780633041949b1461029d578063313ce567146102b25780633644e515146102c757600080fd5b8063039c91fc1461020b57806306fdde031461024a578063095ea7b31461025f57806318160ddd14610282575b600080fd5b6102376102193660046120c7565b61013060209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61025261051b565b6040516102419190612140565b61027261026d366004612153565b6105ad565b6040519015158152602001610241565b603554610237565b61027261029836600461217d565b6105c7565b6102b06102ab3660046120c7565b6105eb565b005b60125b60405160ff9091168152602001610241565b610237610624565b6102726102dd366004612153565b610633565b6102376102f0366004612153565b610655565b6102b06103033660046121b9565b6106da565b6102b06103163660046121d2565b6106f3565b61025261076c565b6102b5600881565b610357610339366004612256565b6001600160a01b03908116600090815260fe60205260409020541690565b6040516001600160a01b039091168152602001610241565b6102b061037d366004612256565b610804565b610395610390366004612256565b610811565b60405163ffffffff9091168152602001610241565b6102376103b8366004612256565b6001600160a01b031660009081526033602052604090205490565b6102b0610303366004612153565b6102376103ef366004612256565b610833565b6102b0610851565b610404610a31565b6040516102419796959493929190612271565b6102376104253660046121b9565b610acf565b610432610b37565b60405165ffffffffffff9091168152602001610241565b610252610b42565b61023761045f366004612256565b610b51565b610272610472366004612153565b610bd3565b610272610485366004612153565b610c4e565b6102b0610498366004612318565b610c5c565b6102b06104ab366004612370565b610d92565b6102376104be3660046120c7565b610ef6565b6102b06104d13660046120c7565b610f21565b6104e96104e43660046123da565b610f51565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610241565b6102b5601181565b60606036805461052a9061241a565b80601f01602080910402602001604051908101604052809291908181526020018280546105569061241a565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b6000336105bb818585610fd5565b60019150505b92915050565b6000336105d5858285610fee565b6105e0858585611068565b506001949350505050565b336120021461061657604051630f22c43960e41b815261200260048201526024015b60405180910390fd5b6106208282611081565b5050565b600061062e6111b1565b905090565b6000336105bb8185856106468383610ef6565b6106509190612464565b610fd5565b600061065f610b37565b65ffffffffffff1682106106b15760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6001600160a01b038316600090815260ff602052604090206106d390836111bb565b9392505050565b60405163e5d8776760e01b815260040160405180910390fd5b336120021461071957604051630f22c43960e41b8152612002600482015260240161060d565b8160005b818110156107655761075585858381811061073a5761073a612477565b905060200201602081019061074f9190612256565b84611081565b61075e8161248d565b905061071d565b5050505050565b606043610777610b37565b65ffffffffffff16146107cc5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000604482015260640161060d565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b61080e33826112a4565b50565b6001600160a01b038116600090815260ff60205260408120546105c19061131e565b6001600160a01b038116600090815260cb60205260408120546105c1565b600054610100900460ff16158080156108715750600054600160ff909116105b8061088b5750303b15801561088b575060005460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161060d565b6000805460ff191660011790558015610911576000805461ff0019166101001790555b3341146109315760405163022d8c9560e31b815260040160405180910390fd5b3a15610950576040516383f1b1d360e01b815260040160405180910390fd5b6109a4604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506040518060400160405280600681526020016533b7bb21272160d11b815250611387565b6109ac6113b8565b6109e1604051806040016040528060148152602001732129a19023b7bb32b93730b731b2902a37b5b2b760611b8152506113e1565b6109e96113b8565b801561080e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000606080600080600060606097546000801b148015610a515750609854155b610a955760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161060d565b610a9d61142b565b610aa561143a565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000610ad9610b37565b65ffffffffffff168210610b2b5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b604482015260640161060d565b6105c1610100836111bb565b600061062e43611449565b60606037805461052a9061241a565b6001600160a01b038116600090815260ff60205260408120548015610bc0576001600160a01b038316600090815260ff6020526040902080546000198301908110610b9e57610b9e612477565b60009182526020909120015464010000000090046001600160e01b0316610bc3565b60005b6001600160e01b03169392505050565b60003381610be18286610ef6565b905083811015610c415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161060d565b6105e08286868403610fd5565b6000336105bb818585611068565b83421115610cac5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161060d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2690610d1e9060a001604051602081830303815290604052805190602001206114b0565b8585856114dd565b9050610d3181611505565b8614610d7f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161060d565b610d8981886112a4565b50505050505050565b83421115610de25760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161060d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610e118c611505565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e6c826114b0565b90506000610e7c828787876114dd565b9050896001600160a01b0316816001600160a01b031614610edf5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161060d565b610eea8a8a8a610fd5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b3361200214610f4757604051630f22c43960e41b8152612002600482015260240161060d565b61062082826112a4565b60408051808201909152600080825260208201526001600160a01b038316600090815260ff60205260409020805463ffffffff8416908110610f9557610f95612477565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b604051632028747160e01b815260040160405180910390fd5b6000610ffa8484610ef6565b9050600019811461106257818110156110555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060d565b6110628484848403610fd5565b50505050565b604051638cd22d1960e01b815260040160405180910390fd5b604051630913db4760e01b81526001600160a01b03828116600483015260009190841690630913db4790602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef91906124bc565b6001600160a01b03808516600090815261013060209081526040808320938716835292905220549091508181101561116857600061112d82846124d5565b6001600160a01b038087166000908152610130602090815260408083209389168352929052208490559050611162848261152d565b50611062565b8181111561106257600061117c83836124d5565b6001600160a01b0380871660009081526101306020908152604080832093891683529290522084905590506107658482611537565b600061062e611541565b8154600090818160058111156112155760006111d6846115b5565b6111e090856124d5565b600088815260209020909150869082015463ffffffff16111561120557809150611213565b611210816001612464565b92505b505b80821015611262576000611229838361169d565b600088815260209020909150869082015463ffffffff16111561124e5780915061125c565b611259816001612464565b92505b50611215565b801561128e576000868152602090208101600019015464010000000090046001600160e01b0316611291565b60005b6001600160e01b03169695505050505050565b6001600160a01b03828116600081815260fe6020818152604080842080546033845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46110628284836116b8565b600063ffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161060d565b5090565b600054610100900460ff166113ae5760405162461bcd60e51b815260040161060d906124e8565b61062082826117f6565b600054610100900460ff166113df5760405162461bcd60e51b815260040161060d906124e8565b565b600054610100900460ff166114085760405162461bcd60e51b815260040161060d906124e8565b61080e81604051806040016040528060018152602001603160f81b815250611836565b60606099805461052a9061241a565b6060609a805461052a9061241a565b600065ffffffffffff8211156113835760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840161060d565b60006105c16114bd6111b1565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060006114ee87878787611885565b915091506114fb81611949565b5095945050505050565b6001600160a01b038116600090815260cb602052604090208054600181018255905b50919050565b6106208282611a93565b6106208282611b1e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61156c611b37565b611574611b90565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036115c757506000919050565b600060016115d484611bc1565b901c6001901b905060018184816115ed576115ed612533565b048201901c9050600181848161160557611605612533565b048201901c9050600181848161161d5761161d612533565b048201901c9050600181848161163557611635612533565b048201901c9050600181848161164d5761164d612533565b048201901c9050600181848161166557611665612533565b048201901c9050600181848161167d5761167d612533565b048201901c90506106d38182858161169757611697612533565b04611c55565b60006116ac6002848418612549565b6106d390848416612464565b816001600160a01b0316836001600160a01b0316141580156116da5750600081115b156117f1576001600160a01b03831615611768576001600160a01b038316600090815260ff60205260408120819061171590611c6b85611c77565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161175d929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156117f1576001600160a01b038216600090815260ff60205260408120819061179e90611dec85611c77565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516117e6929190918252602082015260400190565b60405180910390a250505b505050565b600054610100900460ff1661181d5760405162461bcd60e51b815260040161060d906124e8565b603661182983826125b9565b5060376117f182826125b9565b600054610100900460ff1661185d5760405162461bcd60e51b815260040161060d906124e8565b609961186983826125b9565b50609a61187682826125b9565b50506000609781905560985550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118bc5750600090506003611940565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611910573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661193957600060019250925050611940565b9150600090505b94509492505050565b600081600481111561195d5761195d612679565b036119655750565b600181600481111561197957611979612679565b036119c65760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161060d565b60028160048111156119da576119da612679565b03611a275760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161060d565b6003816004811115611a3b57611a3b612679565b0361080e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161060d565b611a9d8282611df8565b6035546001600160e01b031015611b0f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161060d565b611062610100611dec83611c77565b611b288282611ec1565b611062610100611c6b83611c77565b600080611b4261142b565b805190915015611b59578051602090910120919050565b6097548015611b685792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080611b9b61143a565b805190915015611bb2578051602090910120919050565b6098548015611b685792915050565b600080608083901c15611bd657608092831c92015b604083901c15611be857604092831c92015b602083901c15611bfa57602092831c92015b601083901c15611c0c57601092831c92015b600883901c15611c1e57600892831c92015b600483901c15611c3057600492831c92015b600283901c15611c4257600292831c92015b600183901c156105c15760010192915050565b6000818310611c6457816106d3565b5090919050565b60006106d382846124d5565b82546000908190818115611cc45760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611cd9565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611cf984868863ffffffff16565b9250600082118015611d235750611d0e610b37565b65ffffffffffff16816000015163ffffffff16145b15611d6857611d3183611ffc565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611de2565b866040518060400160405280611d8c611d7f610b37565b65ffffffffffff1661131e565b63ffffffff168152602001611da086611ffc565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b60006106d38284612464565b6001600160a01b038216611e4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060d565b8060356000828254611e609190612464565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361062060008383612065565b6001600160a01b038216611f215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060d565b6001600160a01b03821660009081526033602052604090205481811015611f955760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060d565b6001600160a01b03831660008181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117f183600084612065565b60006001600160e01b038211156113835760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161060d565b6117f18383836001600160a01b03808416600090815260fe60205260409020546117f191166001600160a01b03808516600090815260fe602052604090205416836116b8565b80356001600160a01b03811681146120c257600080fd5b919050565b600080604083850312156120da57600080fd5b6120e3836120ab565b91506120f1602084016120ab565b90509250929050565b6000815180845260005b8181101561212057602081850181015186830182015201612104565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d360208301846120fa565b6000806040838503121561216657600080fd5b61216f836120ab565b946020939093013593505050565b60008060006060848603121561219257600080fd5b61219b846120ab565b92506121a9602085016120ab565b9150604084013590509250925092565b6000602082840312156121cb57600080fd5b5035919050565b6000806000604084860312156121e757600080fd5b833567ffffffffffffffff808211156121ff57600080fd5b818601915086601f83011261221357600080fd5b81358181111561222257600080fd5b8760208260051b850101111561223757600080fd5b60209283019550935061224d91860190506120ab565b90509250925092565b60006020828403121561226857600080fd5b6106d3826120ab565b60ff60f81b881681526000602060e08184015261229160e084018a6120fa565b83810360408501526122a3818a6120fa565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156122f5578351835292840192918401916001016122d9565b50909c9b505050505050505050505050565b803560ff811681146120c257600080fd5b60008060008060008060c0878903121561233157600080fd5b61233a876120ab565b9550602087013594506040870135935061235660608801612307565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561238b57600080fd5b612394886120ab565b96506123a2602089016120ab565b955060408801359450606088013593506123be60808901612307565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156123ed57600080fd5b6123f6836120ab565b9150602083013563ffffffff8116811461240f57600080fd5b809150509250929050565b600181811c9082168061242e57607f821691505b60208210810361152757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105c1576105c161244e565b634e487b7160e01b600052603260045260246000fd5b60006001820161249f5761249f61244e565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156124ce57600080fd5b5051919050565b818103818111156105c1576105c161244e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261256657634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156117f157600081815260208120601f850160051c810160208610156125925750805b601f850160051c820191505b818110156125b15782815560010161259e565b505050505050565b815167ffffffffffffffff8111156125d3576125d36124a6565b6125e7816125e1845461241a565b8461256b565b602080601f83116001811461261c57600084156126045750858301515b600019600386901b1c1916600185901b1785556125b1565b600085815260208120601f198616915b8281101561264b5788860151825594840194600190910190840161262c565b50858210156126695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea164736f6c6343000811000a", + Code: feynman.MainnetGovTokenContract, }, { ContractAddr: common.HexToAddress(TimelockContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa4565b61064a565b005b34801561022157600080fd5b50610235610230366004611b18565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258883398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254883398151915281565b6102136102aa366004611b42565b610739565b3480156102bb57600080fd5b506102356102ca366004611bad565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7b565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611bad565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611bad565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce2565b610802565b34801561039f57600080fd5b506102356103ae366004611bad565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce2565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611bad565b6108c8565b34801561042657600080fd5b50610213610435366004611bad565b6108df565b34801561044657600080fd5b5061026c610455366004611b42565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d52565b610b72565b34801561049b57600080fd5b5061026c60008051602061256883398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce2565b610cf3565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e03565b610d1e565b34801561051257600080fd5b5061026c6000805160206125a883398151915281565b34801561053457600080fd5b5061026c610543366004611e6e565b610f08565b34801561055457600080fd5b506102fa610563366004611f95565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611bad565b610f4d565b3480156105a057600080fd5b5061026c6105af366004611bad565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce2565b611010565b6102136105ef366004611e6e565b611035565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa61062436600461203e565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b600080516020612568833981519152610662816111ad565b6000610672898989898989610983565b905061067e81846111b7565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cb565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a6565b92915050565b600080516020612588833981519152610753816000610cf3565b6107615761076181336112db565b6000610771888888888888610983565b905061077d8185611334565b610789888888886113cf565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c19493929190612108565b60405180910390a36107d2816114a2565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111ad565b61082783836114db565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611561565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cb565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213a565b60200260200101906001600160a01b031690816001600160a01b031681525050610b28603c82836120046115c8565b508015610b6f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b600080516020612568833981519152610b8a816111ad565b888714610ba95760405162461bcd60e51b81526004016108b190612150565b888514610bc85760405162461bcd60e51b81526004016108b190612150565b6000610bda8b8b8b8b8b8b8b8b610f08565b9050610be681846111b7565b60005b8a811015610ca45780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2657610c2661213a565b9050602002016020810190610c3b9190612193565b8d8d86818110610c4d57610c4d61213a565b905060200201358c8c87818110610c6657610c6661213a565b9050602002810190610c7891906121ae565b8c8b604051610c8c969594939291906120cb565b60405180910390a3610c9d8161220a565b9050610be9565b508315610ce657807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cdd91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4457604051630f22c43960e41b815261100760048201526024016108b1565b610da7604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116019050565b15610ea45760208114610dd55783838383604051630a5a604160e01b81526004016108b19493929190612223565b604080516020601f8401819004810282018101909252828152600091610e1691858580838501838280828437600092019190915250929392505061165a9050565b9050801580610e2757506212750081115b15610e4d5784848484604051630a5a604160e01b81526004016108b19493929190612223565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8657600080fd5b505af1158015610e9a573d6000803e3d6000fd5b5050505050610ec5565b838383836040516325ee20d560e21b81526004016108b19493929190612223565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efa9493929190612223565b60405180910390a150505050565b60008888888888888888604051602001610f299897969594939291906122d8565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125a8833981519152610f65816111ad565b610f6e826108c8565b610fd45760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102b816111ad565b6108278383611561565b60008051602061258883398151915261104f816000610cf3565b61105d5761105d81336112db565b87861461107c5760405162461bcd60e51b81526004016108b190612150565b87841461109b5760405162461bcd60e51b81526004016108b190612150565b60006110ad8a8a8a8a8a8a8a8a610f08565b90506110b98185611334565b60005b898110156111975760008b8b838181106110d8576110d861213a565b90506020020160208101906110ed9190612193565b905060008a8a848181106111035761110361213a565b9050602002013590503660008a8a868181106111215761112161213a565b905060200281019061113391906121ae565b91509150611143848484846113cf565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117a9493929190612108565b60405180910390a350505050806111909061220a565b90506110bc565b506111a1816114a2565b50505050505050505050565b610b6f81336112db565b6111c08261082c565b156112255760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112865760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b6112908142612379565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e58282610cf3565b6108c4576112f28161165f565b6112fd836020611671565b60405160200161130e9291906123b0565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612425565b61133d826107dc565b6113595760405162461bcd60e51b81526004016108b190612458565b80158061137457506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ec9291906124a2565b60006040518083038185875af1925050503d8060008114611429576040519150601f19603f3d011682016040523d82523d6000602084013e61142e565b606091505b505090508061149b5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ab816107dc565b6114c75760405162461bcd60e51b81526004016108b190612458565b600090815260976020526040902060019055565b6114e58282610cf3565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156b8282610cf3565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115ef5760405162461bcd60e51b81526004016108b1906124b2565b6115fb8484848461180c565b50505050565b60008160405160200161161491906124fd565b604051602081830303815290604052805190602001208360405160200161163b91906124fd565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b60606000611680836002612519565b61168b906002612379565b6001600160401b038111156116a2576116a2611bc6565b6040519080825280601f01601f1916602001820160405280156116cc576020820181803683370190505b509050600360fc1b816000815181106116e7576116e761213a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117165761171661213a565b60200101906001600160f81b031916908160001a905350600061173a846002612519565b611745906001612379565b90505b60018111156117bd576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106117795761177961213a565b1a60f81b82828151811061178f5761178f61213a565b60200101906001600160f81b031916908160001a90535060049490941c936117b681612530565b9050611748565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118335760405162461bcd60e51b81526004016108b1906124b2565b61184b600080516020612548833981519152806119eb565b6118716000805160206125688339815191526000805160206125488339815191526119eb565b6118976000805160206125888339815191526000805160206125488339815191526119eb565b6118bd6000805160206125a88339815191526000805160206125488339815191526119eb565b6118d560008051602061254883398151915230611a36565b6001600160a01b038116156118fc576118fc60008051602061254883398151915282611a36565b60005b835181101561196d5761193960008051602061256883398151915285838151811061192c5761192c61213a565b6020026020010151611a36565b61195d6000805160206125a883398151915285838151811061192c5761192c61213a565b6119668161220a565b90506118ff565b5060005b82518110156119ae5761199e60008051602061258883398151915284838151811061192c5761192c61213a565b6119a78161220a565b9050611971565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efa565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114db565b80356001600160a01b0381168114611a5757600080fd5b919050565b60008083601f840112611a6e57600080fd5b5081356001600160401b03811115611a8557600080fd5b602083019150836020828501011115611a9d57600080fd5b9250929050565b600080600080600080600060c0888a031215611abf57600080fd5b611ac888611a40565b96506020880135955060408801356001600160401b03811115611aea57600080fd5b611af68a828b01611a5c565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2a57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5b57600080fd5b611b6487611a40565b95506020870135945060408701356001600160401b03811115611b8657600080fd5b611b9289828a01611a5c565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bbf57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0457611c04611bc6565b604052919050565b600082601f830112611c1d57600080fd5b81356001600160401b03811115611c3657611c36611bc6565b611c49601f8201601f1916602001611bdc565b818152846020838601011115611c5e57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9157600080fd5b611c9a85611a40565b9350611ca860208601611a40565b92506040850135915060608501356001600160401b03811115611cca57600080fd5b611cd687828801611c0c565b91505092959194509250565b60008060408385031215611cf557600080fd5b82359150611d0560208401611a40565b90509250929050565b60008083601f840112611d2057600080fd5b5081356001600160401b03811115611d3757600080fd5b6020830191508360208260051b8501011115611a9d57600080fd5b600080600080600080600080600060c08a8c031215611d7057600080fd5b89356001600160401b0380821115611d8757600080fd5b611d938d838e01611d0e565b909b50995060208c0135915080821115611dac57600080fd5b611db88d838e01611d0e565b909950975060408c0135915080821115611dd157600080fd5b50611dde8c828d01611d0e565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1957600080fd5b84356001600160401b0380821115611e3057600080fd5b611e3c88838901611a5c565b90965094506020870135915080821115611e5557600080fd5b50611e6287828801611a5c565b95989497509550505050565b60008060008060008060008060a0898b031215611e8a57600080fd5b88356001600160401b0380821115611ea157600080fd5b611ead8c838d01611d0e565b909a50985060208b0135915080821115611ec657600080fd5b611ed28c838d01611d0e565b909850965060408b0135915080821115611eeb57600080fd5b50611ef88b828c01611d0e565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2757600080fd5b813560206001600160401b03821115611f4257611f42611bc6565b8160051b611f51828201611bdc565b9283528481018201928281019087851115611f6b57600080fd5b83870192505b84831015611f8a57823582529183019190830190611f71565b979650505050505050565b600080600080600060a08688031215611fad57600080fd5b611fb686611a40565b9450611fc460208701611a40565b935060408601356001600160401b0380821115611fe057600080fd5b611fec89838a01611f16565b9450606088013591508082111561200257600080fd5b61200e89838a01611f16565b9350608088013591508082111561202457600080fd5b5061203188828901611c0c565b9150509295509295909350565b600080600080600060a0868803121561205657600080fd5b61205f86611a40565b945061206d60208701611a40565b9350604086013592506060860135915060808601356001600160401b0381111561209657600080fd5b61203188828901611c0c565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f360a0830186886120a2565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121306060830184866120a2565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a557600080fd5b6107fb82611a40565b6000808335601e198436030181126121c557600080fd5b8301803591506001600160401b038211156121df57600080fd5b602001915036819003821315611a9d57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221c5761221c6121f4565b5060010190565b6040815260006122376040830186886120a2565b8281036020840152611f8a8185876120a2565b818352600060208085019450848460051b86018460005b878110156122cb5783830389528135601e1988360301811261228257600080fd5b870185810190356001600160401b0381111561229d57600080fd5b8036038213156122ac57600080fd5b6122b78582846120a2565b9a87019a9450505090840190600101612261565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b811015612319576001600160a01b0361230484611a40565b168252602092830192909101906001016122eb565b5083810360208501528881526001600160fb1b0389111561233957600080fd5b8860051b9150818a60208301370182810360209081016040850152612361908201878961224a565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f4565b60005b838110156123a757818101518382015260200161238f565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e881601785016020880161238c565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241981602884016020880161238c565b01602801949350505050565b602081526000825180602084015261244481604085016020870161238c565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161250f81846020870161238c565b9190910192915050565b8082028115828204841417610733576107336121f4565b60008161253f5761253f6121f4565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a", + Code: feynman.RialtoTimelockContract, }, { ContractAddr: common.HexToAddress(TokenRecoverPortalContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b187bd2611610071578063b187bd261461022c578063bfb5a6a114610237578063e33f8d321461024a578063e842426a1461026d578063f1fad1041461029857600080fd5b80638129fc1c146101fc5780638456cb59146102045780639fcb50121461020c578063ac4317511461021957600080fd5b80634a49ac4c116100de5780634a49ac4c1461017c5780634bf6c8821461018f578063572c9980146101a957806374be2150146101bc57600080fd5b8063046f7da2146101105780632eb4a7ab1461011a578063417c73a7146101365780634838d16514610149575b600080fd5b6101186102a0565b005b61012360685481565b6040519081526020015b60405180910390f35b610118610144366004611696565b610328565b61016c610157366004611696565b60346020526000908152604090205460ff1681565b604051901515815260200161012d565b61011861018a366004611696565b6103a4565b610197600881565b60405160ff909116815260200161012d565b6101186101b73660046116b1565b61041d565b6101ef6040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b81525081565b60405161012d919061172d565b6101186104b3565b610118610613565b60695461016c9060ff1681565b610118610227366004611789565b61069f565b60335460ff1661016c565b61011861024536600461183a565b610abe565b61016c610258366004611914565b6000908152606a602052604090205460ff1690565b606754610280906001600160a01b031681565b6040516001600160a01b03909116815260200161012d565b610197601181565b60335461010090046001600160a01b031633146102d0576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff166102f357604051636cd6020160e01b815260040160405180910390fd5b6033805460ff191690556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f990600090a1565b60335461010090046001600160a01b03163314610358576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19166001179055517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60335461010090046001600160a01b031633146103d4576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260346020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60335461010090046001600160a01b0316331461044d576040516306fbb1e360e01b815260040160405180910390fd5b604051638525db0360e01b8152600481018390526001600160a01b038216602482015261100490638525db0390604401600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b505050505050565b600054610100900460ff16158080156104d35750600054600160ff909116105b806104ed5750303b1580156104ed575060005460ff166001145b6105555760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610578576000805461ff0019166101001790555b3341146105985760405163022d8c9560e31b815260040160405180910390fd5b3a156105b7576040516383f1b1d360e01b815260040160405180910390fd5b6105bf610e1e565b6105ca61dead610e4b565b8015610610576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b60335461010090046001600160a01b03163314610643576040516306fbb1e360e01b815260040160405180910390fd5b60335460ff161561066757604051631785c68160e01b815260040160405180910390fd5b6033805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b33611007146106c557604051630f22c43960e41b8152611007600482015260240161054c565b61072f6040518060400160405280600f81526020016e617070726f76616c4164647265737360881b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610e9a9050565b156107f9576014811461075d5783838383604051630a5a604160e01b815260040161054c9493929190611956565b60006107a3601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610ef49050565b90506001600160a01b0381166107d45784848484604051630a5a604160e01b815260040161054c9493929190611956565b606780546001600160a01b0319166001600160a01b0392909216919091179055610a7b565b61085e6040518060400160405280600a8152602001691b595c9adb19549bdbdd60b21b81525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610e9a9050565b1561092e5760695460ff1615610887576040516379b3306f60e11b815260040160405180910390fd5b602081146108b05783838383604051630a5a604160e01b815260040161054c9493929190611956565b604080516020601f84018190048102820181019092528281526000916108f1918585808385018382808284376000920191909152509293925050610ef49050565b9050806109195784848484604051630a5a604160e01b815260040161054c9493929190611956565b6068556069805460ff19166001179055610a7b565b6109a66040518060400160405280601b81526020017f746f6b656e5265636f766572506f7274616c50726f746563746f72000000000081525085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610e9a9050565b15610a5a57601481146109d45783838383604051630a5a604160e01b815260040161054c9493929190611956565b6000610a1a601484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610ef49050565b90506001600160a01b038116610a4b5784848484604051630a5a604160e01b815260040161054c9493929190611956565b610a5481610ef9565b50610a7b565b838383836040516325ee20d560e21b815260040161054c9493929190611956565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610ab09493929190611956565b60405180910390a150505050565b60695460ff16610ae15760405163678f619760e11b815260040160405180910390fd5b606854610b015760405163678f619760e11b815260040160405180910390fd5b6067546001600160a01b0316610b2a57604051631a1b977b60e31b815260040160405180910390fd5b60335460ff1615610b4e57604051631785c68160e01b815260040160405180910390fd5b610b56610f60565b6000610be489898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600081840152601f19601f82011690508083019250505050505050610bdf8e8e33610fb9565b6110da565b90506000818c8c604051602001610bfd93929190611988565b604051602081830303815290604052805190602001209050610c2e816000908152606a602052604090205460ff1690565b15610c4b57604051623e493160e81b815260040160405180910390fd5b610cf33389898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525050604080516020808c0282810182019093528b82528994509092508b918b918291908501908490808284376000920191909152506111b292505050565b610d348484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060685491508490506112bd565b610d51576040516309bde33960e01b815260040160405180910390fd5b6000818152606a602052604090819020805460ff191660011790555163799758b960e01b8152600481018d9052336024820152604481018c90526110049063799758b990606401600060405180830381600087803b158015610db257600080fd5b505af1158015610dc6573d6000803e3d6000fd5b505050507f39cc0b7297a0ef9102d75ebc4919ffec0347d50008c2b865eda4125d5812cb64828d338e604051610dff94939291906119af565b60405180910390a15050610e1260018055565b50505050505050505050565b600054610100900460ff16610e455760405162461bcd60e51b815260040161054c906119e7565b60018055565b600054610100900460ff16610e725760405162461bcd60e51b815260040161054c906119e7565b603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081604051602001610ead9190611a32565b6040516020818303038152906040528051906020012083604051602001610ed49190611a32565b604051602081830303815290604052805190602001201490505b92915050565b015190565b6033546040516001600160a01b0380841692610100900416907f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b90600090a3603380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600260015403610fb25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161054c565b6002600155565b600060026040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152506110168560405160200161100091815260200190565b60405160208183030381529060405260006112d3565b6040516bffffffffffffffffffffffff19606087901b16602082015261104f9060340160405160208183030381529060405260016112d3565b6110658860405160200161100091815260200190565b6040516020016110789493929190611a4e565b60408051601f198184030181529082905261109291611a32565b602060405180830381855afa1580156110af573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906110d29190611b7d565b949350505050565b606083516021146110fe57604051638152ea1b60e01b815260040160405180910390fd5b825160401461112057604051635e4bd79760e11b815260040160405180910390fd5b604080516020808252818301909252600091602082018180368337019050509050826020820152600085858360405160200161115e93929190611bac565b60408051808303601f190181526014808452838301909252925060009190602082018180368337019050509050815160146020830182602086016069600019fa6111a757600080fd5b509695505050505050565b606060005b825181101561121057818382815181106111d3576111d3611bef565b60200260200101516040516020016111ec929190611c05565b6040516020818303038152906040529150808061120890611c3d565b9150506111b7565b5060006040518060400160405280601481526020017342696e616e63652d436861696e2d47616e67657360601b8152508787866068548660405160200161125c96959493929190611c56565b60408051601f1981840301815291905280516020909101206067549091506001600160a01b031661128d86836114a5565b6001600160a01b0316146112b4576040516356b00a4f60e11b815260040160405180910390fd5b50505050505050565b6000826112ca858461153f565b14949350505050565b60606000835160026112e59190611cc7565b67ffffffffffffffff8111156112fd576112fd611b96565b6040519080825280601f01601f191660200182016040528015611327576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015290915060005b855181101561146d5781825187838151811061137357611373611bef565b0160200151611385919060f81c611cf4565b8151811061139557611395611bef565b01602001516001600160f81b031916836113b0836002611cc7565b815181106113c0576113c0611bef565b60200101906001600160f81b031916908160001a9053508182518783815181106113ec576113ec611bef565b01602001516113fe919060f81c611d08565b8151811061140e5761140e611bef565b01602001516001600160f81b03191683611429836002611cc7565b611434906001611d1c565b8151811061144457611444611bef565b60200101906001600160f81b031916908160001a9053508061146581611c3d565b915050611355565b50831561149d57816040516020016114859190611d2f565b60405160208183030381529060405292505050610eee565b509392505050565b600082516041146114c9576040516356b00a4f60e11b815260040160405180910390fd5b60208301516040840151606085015160001a601b8110156114f2576114ef601b82611d59565b90505b601b8160ff1610806115075750601c8160ff16115b15611525576040516356b00a4f60e11b815260040160405180910390fd5b600061153386838686611584565b50979650505050505050565b600081815b845181101561149d576115708286838151811061156357611563611bef565b6020026020010151611648565b91508061157c81611c3d565b915050611544565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115bb575060009050600361163f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561160f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116385760006001925092505061163f565b9150600090505b94509492505050565b6000818310611664576000828152602084905260409020611673565b60008381526020839052604090205b9392505050565b80356001600160a01b038116811461169157600080fd5b919050565b6000602082840312156116a857600080fd5b6116738261167a565b600080604083850312156116c457600080fd5b823591506116d46020840161167a565b90509250929050565b60005b838110156116f85781810151838201526020016116e0565b50506000910152565b600081518084526117198160208601602086016116dd565b601f01601f19169290920160200192915050565b6020815260006116736020830184611701565b60008083601f84011261175257600080fd5b50813567ffffffffffffffff81111561176a57600080fd5b60208301915083602082850101111561178257600080fd5b9250929050565b6000806000806040858703121561179f57600080fd5b843567ffffffffffffffff808211156117b757600080fd5b6117c388838901611740565b909650945060208701359150808211156117dc57600080fd5b506117e987828801611740565b95989497509550505050565b60008083601f84011261180757600080fd5b50813567ffffffffffffffff81111561181f57600080fd5b6020830191508360208260051b850101111561178257600080fd5b60008060008060008060008060008060c08b8d03121561185957600080fd5b8a35995060208b0135985060408b013567ffffffffffffffff8082111561187f57600080fd5b61188b8e838f01611740565b909a50985060608d01359150808211156118a457600080fd5b6118b08e838f01611740565b909850965060808d01359150808211156118c957600080fd5b6118d58e838f01611740565b909650945060a08d01359150808211156118ee57600080fd5b506118fb8d828e016117f5565b915080935050809150509295989b9194979a5092959850565b60006020828403121561192657600080fd5b5035919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152600061196a60408301868861192d565b828103602084015261197d81858761192d565b979650505050505050565b6000845161199a8184602089016116dd565b91909101928352506020820152604001919050565b6080815260006119c26080830187611701565b6020830195909552506001600160a01b03929092166040830152606090910152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251611a448184602087016116dd565b9190910192915050565b7f7b226163636f756e745f6e756d626572223a2230222c22636861696e5f6964228152611d1160f11b602082015260008551611a91816022850160208a016116dd565b7f222c2264617461223a6e756c6c2c226d656d6f223a22222c226d736773223a5b6022918401918201526a3d9130b6b7bab73a111d1160a91b60428201528551611ae281604d840160208a016116dd565b6e1116113932b1b4b834b2b73a111d1160891b604d92909101918201528451611b1281605c8401602089016116dd565b711116113a37b5b2b72fb9bcb6b137b6111d1160711b605c92909101918201528351611b4581606e8401602088016116dd565b7f227d5d2c2273657175656e6365223a2230222c22736f75726365223a2230227d606e9290910191820152608e019695505050505050565b600060208284031215611b8f57600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60008451611bbe8184602089016116dd565b845190830190611bd28183602089016116dd565b8451910190611be58183602088016116dd565b0195945050505050565b634e487b7160e01b600052603260045260246000fd5b60008351611c178184602088016116dd565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c4f57611c4f611c27565b5060010190565b60008751611c68818460208c016116dd565b606088901b6bffffffffffffffffffffffff19169083019081528651611c95816014840160208b016116dd565b0160148101869052603481018590528351611cb78160548401602088016116dd565b0160540198975050505050505050565b8082028115828204841417610eee57610eee611c27565b634e487b7160e01b600052601260045260246000fd5b600082611d0357611d03611cde565b500490565b600082611d1757611d17611cde565b500690565b80820180821115610eee57610eee611c27565b61060f60f31b815260008251611d4c8160028501602087016116dd565b9190910160020192915050565b60ff8181168382160190811115610eee57610eee611c2756fea164736f6c6343000811000a", + Code: feynman.RialtoTokenRecoverPortalContract, }, }, } @@ -744,12 +758,12 @@ func init() { { ContractAddr: common.HexToAddress(ValidatorContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "6080604052600436106104fb5760003560e01c806388b32f111161028c578063c6d339451161015a578063e40716a1116100cc578063f92eb86b11610085578063f92eb86b14610d2d578063f9a2bbc714610d42578063fc3e590814610d57578063fccc281314610d6c578063fd4ad81f14610d81578063fd6a687914610db057610502565b8063e40716a114610c9b578063ea321e4914610cb0578063eb57e20214610cd0578063eda5868c14610cf0578063f1fad10414610d05578063f340fa0114610d1a57610502565b8063d86222d51161011e578063d86222d514610c1d578063daacdb6614610c32578063dc927faf14610c47578063df8079e914610c5c578063e086c7b114610c71578063e1c7392a14610c8657610502565b8063c6d3394514610bbe578063c81b166214610bd3578063c8509d811461098d578063ce910b0c14610be8578063d68fb56a14610c0857610502565b8063a78abc16116101fe578063ad3c9da6116101b7578063ad3c9da614610b3d578063aef198a914610b5d578063b7ab4db514610b72578063b8cf4ef114610b94578063bf9f4995146106fe578063c466689d14610ba957610502565b8063a78abc1614610ab4578063aa82dce114610ac9578063aad5606314610ade578063aaf5eb6814610af3578063ab51bb9614610b08578063ac43175114610b1d57610502565b806396713da91161025057806396713da914610a365780639dc0926214610a4b5780639fe0f81614610a60578063a0dc275814610a75578063a1a11bf514610a8a578063a5422d5c14610a9f57610502565b806388b32f11146109c25780638a7beb01146109d75780638b5ad0c9146109ec5780638d19a41014610a015780639369d7de14610a2157610502565b806351b4dce3116103c957806370fd5bad1161033b5780637e434d54116102f45780637e434d541461094e57806381650b6214610963578063820dcaa814610978578063831d65d11461098d578063853230aa1461090f57806386249882146109ad57610502565b806370fd5bad146108d0578063718a8aa8146108e557806375d47a0a146108fa57806378dfed4a1461090f5780637942fd05146109245780637a84ca2a1461093957610502565b80635d77156c1161038d5780635d77156c1461082a5780635de1e22c1461083f57806360eba4fe1461085457806362b72cf5146108745780636969a25c146108895780636e47b482146108bb57610502565b806351b4dce3146107ab57806351e80672146107c057806355614fcc146107d5578063565c56b3146107f55780635667515a1461081557610502565b8063300c35671161046d57806343756e5c1161042657806343756e5c1461072057806345cf9daf14610735578063493279b11461074a5780634bf6c8821461076c5780634df6e0c3146107815780635192c82c1461079657610502565b8063300c35671461065b578063321d398a1461067b5780633365af3a1461069b57806335409f7f146106bb5780633b071dcc146106db5780633dffc387146106fe57610502565b8063152ad3b8116104bf578063152ad3b8146105ba5780631e4c1524146105dc5780631ff18069146105fc578063219f22d51461061157806328087028146106265780632a0ffb6e1461063b57610502565b806304c4fec61461050757806307a568471461051e5780630bee7a67146105495780630e2374a51461056b5780631182b8751461058d57610502565b3661050257005b600080fd5b34801561051357600080fd5b5061051c610dc5565b005b34801561052a57600080fd5b50610533610e37565b6040516105409190618ed8565b60405180910390f35b34801561055557600080fd5b5061055e610e3d565b6040516105409190618f02565b34801561057757600080fd5b50610580610e42565b60405161054091906181eb565b34801561059957600080fd5b506105ad6105a83660046180d1565b610e48565b604051610540919061837e565b3480156105c657600080fd5b506105cf611165565b6040516105409190618373565b3480156105e857600080fd5b5061051c6105f7366004617edf565b61116e565b34801561060857600080fd5b50610533611844565b34801561061d57600080fd5b5061055e61184a565b34801561063257600080fd5b5061058061184f565b34801561064757600080fd5b5061051c610656366004617e3f565b611855565b34801561066757600080fd5b5061051c610676366004617e77565b611902565b34801561068757600080fd5b506105cf61069636600461807e565b611c4b565b3480156106a757600080fd5b506105cf6106b636600461807e565b611d1a565b3480156106c757600080fd5b5061051c6106d6366004617e3f565b611dcb565b3480156106e757600080fd5b506106f0611f30565b604051610540929190618289565b34801561070a57600080fd5b5061071361220c565b6040516105409190618f13565b34801561072c57600080fd5b50610580612211565b34801561074157600080fd5b50610533612217565b34801561075657600080fd5b5061075f61221d565b6040516105409190618ec9565b34801561077857600080fd5b50610713612222565b34801561078d57600080fd5b506106f0612227565b3480156107a257600080fd5b506105336123b3565b3480156107b757600080fd5b506105806123b9565b3480156107cc57600080fd5b506105806123bf565b3480156107e157600080fd5b506105cf6107f0366004617e3f565b6123c5565b34801561080157600080fd5b50610533610810366004617e3f565b6123fa565b34801561082157600080fd5b5061071361244b565b34801561083657600080fd5b5061055e612450565b34801561084b57600080fd5b50610533612455565b34801561086057600080fd5b506105ad61086f36600461807e565b61245b565b34801561088057600080fd5b50610533612501565b34801561089557600080fd5b506108a96108a436600461807e565b612507565b60405161054096959493929190618218565b3480156108c757600080fd5b5061058061256b565b3480156108dc57600080fd5b50610713612571565b3480156108f157600080fd5b50610713612576565b34801561090657600080fd5b5061058061257b565b34801561091b57600080fd5b50610533612581565b34801561093057600080fd5b50610713612587565b34801561094557600080fd5b5061053361258c565b34801561095a57600080fd5b50610580612592565b34801561096f57600080fd5b5061055e612598565b34801561098457600080fd5b5061053361259d565b34801561099957600080fd5b5061051c6109a83660046180d1565b6125a3565b3480156109b957600080fd5b50610533612604565b3480156109ce57600080fd5b5061053361260a565b3480156109e357600080fd5b506105cf612610565b3480156109f857600080fd5b50610533612619565b348015610a0d57600080fd5b50610533610a1c366004617e3f565b61261f565b348015610a2d57600080fd5b5061051c61265f565b348015610a4257600080fd5b50610713612773565b348015610a5757600080fd5b50610580612778565b348015610a6c57600080fd5b5061053361277e565b348015610a8157600080fd5b50610533612783565b348015610a9657600080fd5b50610580612788565b348015610aab57600080fd5b506105ad61278e565b348015610ac057600080fd5b506105cf6127ad565b348015610ad557600080fd5b506105806127b6565b348015610aea57600080fd5b506105806127bc565b348015610aff57600080fd5b506105336127c2565b348015610b1457600080fd5b5061055e61244b565b348015610b2957600080fd5b5061051c610b38366004618022565b6127cb565b348015610b4957600080fd5b50610533610b58366004617e3f565b613084565b348015610b6957600080fd5b50610533613096565b348015610b7e57600080fd5b50610b876130a3565b6040516105409190618276565b348015610ba057600080fd5b5061053361318f565b348015610bb557600080fd5b50610533613194565b348015610bca57600080fd5b50610533612571565b348015610bdf57600080fd5b5061058061319a565b348015610bf457600080fd5b506105ad610c0336600461807e565b6131a0565b348015610c1457600080fd5b506105336131ad565b348015610c2957600080fd5b506105336131ec565b348015610c3e57600080fd5b506105336131f8565b348015610c5357600080fd5b506105806131fe565b348015610c6857600080fd5b50610580613204565b348015610c7d57600080fd5b50610533610e3d565b348015610c9257600080fd5b5061051c61320a565b348015610ca757600080fd5b506105336133b9565b348015610cbc57600080fd5b506105cf610ccb366004617fe3565b6133bf565b348015610cdc57600080fd5b5061051c610ceb366004617e3f565b613545565b348015610cfc57600080fd5b5061055e613649565b348015610d1157600080fd5b5061071361364e565b61051c610d28366004617e3f565b613653565b348015610d3957600080fd5b506105336139d2565b348015610d4e57600080fd5b506105806139d8565b348015610d6357600080fd5b5061071361277e565b348015610d7857600080fd5b506105806139de565b348015610d8d57600080fd5b50610da1610d9c36600461807e565b6139e4565b60405161054093929190618ee1565b348015610dbc57600080fd5b50610580613aa6565b6000610dd03361261f565b9050600b8181548110610ddf57fe5b600091825260209091206001601690920201015460ff16610e1b5760405162461bcd60e51b8152600401610e1290618ae4565b60405180910390fd5b6000610e256131ad565b9050610e32338383613aac565b505050565b60095481565b606481565b61200181565b60005460609060ff16610e6d5760405162461bcd60e51b8152600401610e12906185a5565b3361200014610e8e5760405162461bcd60e51b8152600401610e1290618ce5565b600b54610f4c57610e9d6179eb565b60015460005b81811015610f4857600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff1916911515919091179055604086015180518794610f24936000805160206191b0833981519152909101920190617a1a565b506060820151610f3a9060038301906013617a94565b505050806001019050610ea3565b5050505b610f54617ac1565b6000610f9585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7192505050565b9150915080610fb157610fa86064613f2d565b9250505061115e565b815160009060ff16610fd657610fcf83602001518460400151613f8e565b905061112a565b825160ff16600114156111265782602001515160011461101b5760008051602061917083398151915260405161100b9061899d565b60405180910390a1506067611121565b6000836020015160008151811061102e57fe5b602090810291909101810151516001600160a01b0381166000908152600490925260409091205490915080158061108f575060018082038154811061106f57fe5b9060005260206000209060040201600201601c9054906101000a900460ff165b156110cd576040516001600160a01b038316907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a261111a565b60006110dc8360018403615150565b905080611118576040516001600160a01b038416907fe209c46bebf57cf265d5d9009a00870e256d9150f3ed5281ab9d9eb3cec6e4be90600090a25b505b6000925050505b61112a565b5060655b63ffffffff811661114f575050604080516000815260208101909152915061115e9050565b61115881613f2d565b93505050505b9392505050565b60075460ff1681565b33411461118d5760405162461bcd60e51b8152600401610e1290618d34565b3a156111ab5760405162461bcd60e51b8152600401610e1290618a23565b82516040805182815260208084028201019091526060908280156111e957816020015b6111d6617ae5565b8152602001906001900390816111ce5790505b50905060005b82811015611293576040518060c0016040528087838151811061120e57fe5b60200260200101516001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200186838151811061125057fe5b60200260200101516001600160401b03168152602001600015158152602001600081525082828151811061128057fe5b60209081029190910101526001016111ef565b5060405163d31f968d60e01b81526120009063d31f968d906112be906110009060089060040161825a565b60206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190617fc3565b15611631578051601554818111156113b057815b818110156113ae57601580548061133557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055601680548061138857fe5b6001900381819060005260206000200160006113a49190617b1a565b9055600101611322565b505b60005b828110156115f0578181106114d85760158482815181106113d057fe5b602090810291909101810151825460018181018555600094855293839020825160049092020180546001600160a01b039283166001600160a01b0319918216178255938301519481018054958316958516959095179094556040820151600285018054606085015160808601511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590961692909716919091179290921692909217169290921790915560a0015160039091015585516016908790839081106114a057fe5b602090810291909101810151825460018101845560009384529282902081516114d29491909101929190910190617a1a565b506115e8565b8381815181106114e457fe5b6020026020010151601582815481106114f957fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a09091015160039091015585518690829081106115b457fe5b6020026020010151601682815481106115c957fe5b9060005260206000200190805190602001906115e6929190617a1a565b505b6001016113b3565b507fb8e726330a0dad1cf3d04e925663b17e391f1ed547d79b7f4e5f344119b44246826040516116209190618ed8565b60405180910390a150505050610e32565b60608061163e8386615513565b9150915060005b6001548110156117345760006001828154811061165e57fe5b90600052602060002090600402016003015490508060001461172b5760006001838154811061168957fe5b9060005260206000209060040201600301819055506120026001600160a01b031663092193ab82600185815481106116bd57fe5b60009182526020909120600491820201546040516001600160e01b031960e086901b1681526116f8926001600160a01b0390921691016181eb565b6000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b50505050505b50600101611645565b5047156117a2577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d4760405161176a9190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156117a0573d6000803e3d6000fd5b505b600060038190556005558151156117bd576117bd82826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117fa57600080fd5b505af115801561180e573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a150505050505050565b60035481565b606881565b61200581565b33612002146118765760405162461bcd60e51b8152600401610e1290618e92565b60005b6015548110156118fe57816001600160a01b03166015828154811061189a57fe5b60009182526020909120600490910201546001600160a01b031614156118f6576001601582815481106118c957fe5b9060005260206000209060040201600201601c6101000a81548160ff0219169083151502179055506118fe565b600101611879565b5050565b3341146119215760405162461bcd60e51b8152600401610e1290618d34565b60105443116119425760405162461bcd60e51b8152600401610e1290618738565b3a156119605760405162461bcd60e51b8152600401610e1290618a23565b60005460ff166119825760405162461bcd60e51b8152600401610e12906185a5565b60006110023168056bc75e2d631000008111156119b9576119b28168056bc75e2d6310000063ffffffff6161e916565b91506119c0565b5050611c41565b6040516309a99b4f60e41b815261100290639a99b4f0906119e790309086906004016181ff565b602060405180830381600087803b158015611a0157600080fd5b505af1158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190618096565b915081611a47575050611c41565b6000805b84811015611a7557858582818110611a5f57fe5b9050602002013582019150806001019050611a4b565b5080611a8357505050611c41565b6000806000805b89811015611c395784898983818110611a9f57fe5b90506020020135880281611aaf57fe5b0493508a8a82818110611abe57fe5b9050602002016020810190611ad39190617e3f565b6001600160a01b03811660009081526004602052604090205490935091508115611bef576000600180840381548110611b0857fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff1615611b7557836001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8586604051611b689190618ed8565b60405180910390a2611be9565b600354611b88908663ffffffff61622b16565b6003908155810154611ba0908663ffffffff61622b16565b60038201556040516001600160a01b038516907fcb0aad6cf9cd03bdf6137e359f541c42f38b39f007cae8e89e88aa7d8c6617b290611be0908890618ed8565b60405180910390a25b50611c31565b826001600160a01b03167fb9c75cbbfde137c4281689580799ef5f52144e78858f776a5979b2b212137d8585604051611c289190618ed8565b60405180910390a25b600101611a8a565b505050505050505b5050436010555050565b6001546000908210611c5f57506000611d15565b60006001600160a01b031660018381548110611c7757fe5b60009182526020909120600490910201546001600160a01b03161480611ca757506008541580611ca75750600a54155b80611cb6575060085460095410155b80611cc75750611cc582611d1a565b155b80611cf057506000600b8381548110611cdc57fe5b906000526020600020906016020160000154115b80611d0457506001611d006130a3565b5111155b15611d1157506000611d15565b5060015b919050565b6001546000908210611d2e57506000611d15565b600b548210611d6b5760018281548110611d4457fe5b9060005260206000209060040201600201601c9054906101000a900460ff16159050611d15565b60018281548110611d7857fe5b9060005260206000209060040201600201601c9054906101000a900460ff16158015611dc55750600b8281548110611dac57fe5b600091825260209091206001601690920201015460ff16155b92915050565b600b54611e8957611dda6179eb565b60015460005b81811015611e8557600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff1916911515919091179055604086015180518794611e61936000805160206191b0833981519152909101920190617a1a565b506060820151611e779060038301906013617a94565b505050806001019050611de0565b5050505b336110011480611e9a575033612002145b611eb65760405162461bcd60e51b8152600401610e12906185dc565b6001600160a01b03811660009081526004602052604090205480611eda5750611f2d565b6001810390506000600b8281548110611eef57fe5b600091825260209091206001601690920201015460ff169050611f128383615150565b8015611f1b5750805b15610e32576009805460001901905550505b50565b60015460609081906000805b82811015611f835760018181548110611f5157fe5b9060005260206000209060040201600201601c9054906101000a900460ff16611f7b576001909101905b600101611f3c565b50606081604051908082528060200260200182016040528015611fb0578160200160208202803683370190505b509050606082604051908082528060200260200182016040528015611fe957816020015b6060815260200190600190039081611fd45790505b50600b54600094509091508414156121645760005b8481101561215e576001818154811061201357fe5b9060005260206000209060040201600201601c9054906101000a900460ff16612156576001818154811061204357fe5b600091825260209091206004909102015483516001600160a01b039091169084908690811061206e57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600b818154811061209b57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b505050505082858151811061214457fe5b60209081029190910101526001909301925b600101611ffe565b50612200565b60005b848110156121fe576001818154811061217c57fe5b9060005260206000209060040201600201601c9054906101000a900460ff166121f657600181815481106121ac57fe5b600091825260209091206004909102015483516001600160a01b03909116908490869081106121d757fe5b6001600160a01b03909216602092830291909101909101526001909301925b600101612167565b505b909450925050505b9091565b600181565b61100181565b60085481565b606181565b600881565b6060806000600e549050600080600c5411612243576015612247565b600c545b905060606122536130a3565b9050606061226082616250565b905082825111612277579094509250612208915050565b83838351031015612289578282510393505b83156122bf5760c843046122a583838388880360008a8a6163be565b6122bd8383838888038989038a8b8b8b5103016163be565b505b6060836040519080825280602002602001820160405280156122eb578160200160208202803683370190505b50905060608460405190808252806020026020018201604052801561232457816020015b606081526020019060019003908161230f5790505b50905060005b858110156123a55784818151811061233e57fe5b602002602001015183828151811061235257fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083818151811061237e57fe5b602002602001015182828151811061239257fe5b602090810291909101015260010161232a565b509096509450505050509091565b60065481565b61200681565b61200081565b6001600160a01b038116600090815260046020526040812054806123ed576000915050611d15565b6000190161115e81611d1a565b6001600160a01b03811660009081526004602052604081205480612422576000915050611d15565b60018082038154811061243157fe5b906000526020600020906004020160030154915050919050565b600081565b606781565b600f5481565b6012818154811061246857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b505050505081565b60105481565b6001818154811061251457fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b0392831694509082169291821691600160a01b81046001600160401b031691600160e01b90910460ff169086565b61100581565b600281565b601081565b61100881565b6103e881565b600b81565b600c5481565b61200381565b606681565b61271081565b33612000146125c45760405162461bcd60e51b8152600401610e1290618ce5565b7f41ce201247b6ceb957dcdb217d0b8acb50b9ea0e12af9af4f5e7f389021016058383836040516125f793929190618f21565b60405180910390a1505050565b60025481565b60115481565b60145460ff1681565b600a5481565b6001600160a01b038116600090815260046020526040812054806126555760405162461bcd60e51b8152600401610e1290618c6d565b6000190192915050565b600b5461271d5761266e6179eb565b60015460005b8181101561271957600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff19169115159190911790556040860151805187946126f5936000805160206191b0833981519152909101920190617a1a565b50606082015161270b9060038301906013617a94565b505050806001019050612674565b5050505b60085461272a5760036008555b600a54612737576002600a555b60006127423361261f565b905061274d81611c4b565b6127695760405162461bcd60e51b8152600401610e129061895a565b611f2d3382616515565b600981565b61100781565b600381565b60c881565b61100681565b604051806101e001604052806101ab8152602001618fc56101ab913981565b60005460ff1681565b61200281565b61300081565b6402540be40081565b60005460ff166127ed5760405162461bcd60e51b8152600401610e12906185a5565b336110071461280e5760405162461bcd60e51b8152600401610e1290618a51565b61287884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082019091526013815272065787069726554696d655365636f6e6447617606c1b602082015291506165ad9050565b15612915576020811461289d5760405162461bcd60e51b8152600401610e1290618c27565b604080516020601f84018190048102820181019092528281526000916128db9185858083850183828082843760009201919091525061660692505050565b9050606481101580156128f15750620186a08111155b61290d5760405162461bcd60e51b8152600401610e129061884a565b600255613041565b61297584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260098152686275726e526174696f60b81b602082015291506165ad9050565b15612a18576020811461299a5760405162461bcd60e51b8152600401610e12906183c3565b604080516020601f84018190048102820181019092528281526000916129d89185858083850183828082843760009201919091525061660692505050565b90506127106129f2600f548361622b90919063ffffffff16565b1115612a105760405162461bcd60e51b8152600401610e12906183fa565b600655613041565b612a8284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260138152726d61784e756d4f664d61696e7461696e696e6760681b602082015291506165ad9050565b15612b1c5760208114612aa75760405162461bcd60e51b8152600401610e1290618462565b604080516020601f8401819004810282018101909252828152600091612ae59185858083850183828082843760009201919091525061660692505050565b600c5490915080612af4575060155b808210612b135760405162461bcd60e51b8152600401610e12906187a2565b50600855613041565b612b8584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61696e7461696e536c6173685363616c6560701b602082015291506165ad9050565b15612c1e5760208114612baa5760405162461bcd60e51b8152600401610e129061852b565b604080516020601f8401819004810282018101909252828152600091612be89185858083850183828082843760009201919091525061660692505050565b9050600081118015612bfa5750600a81105b612c165760405162461bcd60e51b8152600401610e1290618dc5565b600a55613041565b612c9284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601981527f6d61784e756d4f66576f726b696e6743616e6469646174657300000000000000602082015291506165ad9050565b15612d215760208114612cb75760405162461bcd60e51b8152600401610e12906184df565b604080516020601f8401819004810282018101909252828152600091612cf59185858083850183828082843760009201919091525061660692505050565b9050600d54811115612d195760405162461bcd60e51b8152600401610e12906188c0565b600e55613041565b612d8a84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260128152716d61784e756d4f6643616e6469646174657360701b602082015291506165ad9050565b15612e0c5760208114612daf5760405162461bcd60e51b8152600401610e1290618a9f565b604080516020601f8401819004810282018101909252828152600091612ded9185858083850183828082843760009201919091525061660692505050565b600d819055600e54909150811015612e0657600d54600e555b50613041565b612e7084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600d81526c6e756d4f66436162696e65747360981b602082015291506165ad9050565b15612f1e5760208114612e955760405162461bcd60e51b8152600401610e1290618570565b604080516020601f8401819004810282018101909252828152600091612ed39185858083850183828082843760009201919091525061660692505050565b905060008111612ef55760405162461bcd60e51b8152600401610e129061864a565b6064811115612f165760405162461bcd60e51b8152600401610e1290618692565b600c55613041565b612f8684848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152601181527073797374656d526577617264526174696f60781b602082015291506165ad9050565b156130295760208114612fab5760405162461bcd60e51b8152600401610e1290618d81565b604080516020601f8401819004810282018101909252828152600091612fe99185858083850183828082843760009201919091525061660692505050565b90506127106130036006548361622b90919063ffffffff16565b11156130215760405162461bcd60e51b8152600401610e1290618b88565b600f55613041565b60405162461bcd60e51b8152600401610e1290618e22565b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040516130769493929190618391565b60405180910390a150505050565b60046020526000908152604090205481565b68056bc75e2d6310000081565b6001546060906000805b828110156130d2576130be81611d1a565b156130ca578160010191505b6001016130ad565b506060816040519080825280602002602001820160405280156130ff578160200160208202803683370190505b5090506000915060005b838110156131865761311a81611d1a565b1561317e576001818154811061312c57fe5b600091825260209091206004909102015482516001600160a01b039091169083908590811061315757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508260010192505b600101613109565b50925050505b90565b601581565b61027181565b61100281565b6013818154811061246857fe5b60006131b76130a3565b519050600080600c54116131cc5760156131d0565b600c545b9050808211156131de578091505b816131e857600191505b5090565b67016345785d8a000081565b60055481565b61100381565b61200481565b60005460ff161561322d5760405162461bcd60e51b8152600401610e1290618b51565b613235617ac1565b600061325b604051806101e001604052806101ab8152602001618fc56101ab9139613d71565b915091508061327c5760405162461bcd60e51b8152600401610e1290618ca4565b60005b8260200151518110156133a15760018360200151828151811061329e57fe5b60209081029190910181015182546001818101855560009485528385208351600493840290910180546001600160a01b039283166001600160a01b03199182161782558587015182850180549185169183169190911790556040860151600283018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b199590981692909516919091179290921694909417161790915560a09093015160039093019290925591860151805191850193918590811061337457fe5b602090810291909101810151516001600160a01b031682528101919091526040016000205560010161327f565b50506103e8600255506000805460ff19166001179055565b600d5481565b601354600090815b818110156134c8576134b085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060138054909250859150811061341857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b820191906000526020600020905b81548152906001019060200180831161348957829003601f168201915b505050505061660b565b156134c057600192505050611dc5565b6001016133c7565b5060125460005b818110156135395761352086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060128054909250859150811061341857fe5b156135315760019350505050611dc5565b6001016134cf565b50600095945050505050565b33611001146135665760405162461bcd60e51b8152600401610e1290618e49565b600b54613624576135756179eb565b60015460005b8181101561362057600b8054600181018255600091909152835160008051602061919083398151915260169092029182019081556020808601516000805160206191d08339815191528401805460ff19169115159190911790556040860151805187946135fc936000805160206191b0833981519152909101920190617a1a565b5060608201516136129060038301906013617a94565b50505080600101905061357b565b5050505b600061362f8261666f565b905061363a81611c4b565b156118fe576118fe8282616515565b606581565b601181565b3341146136725760405162461bcd60e51b8152600401610e1290618d34565b60005460ff166136945760405162461bcd60e51b8152600401610e12906185a5565b600034116136b45760405162461bcd60e51b8152600401610e1290618891565b3a156136d25760405162461bcd60e51b8152600401610e1290618a23565b6001600160a01b03811660009081526004602052604090205460145434919060ff1661371257610271600f556103e86006556014805460ff191660011790555b60008211801561372457506000600f54115b156137d6576000613752612710613746600f54346167f290919063ffffffff16565b9063ffffffff61682c16565b905080156137d4576040516110029082156108fc029083906000818181858888f19350505050158015613789573d6000803e3d6000fd5b507f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d816040516137b99190618ed8565b60405180910390a16137d1838263ffffffff6161e916565b92505b505b6000821180156137e857506000600654115b1561388e57600061380a612710613746600654346167f290919063ffffffff16565b9050801561388c5760405161dead9082156108fc029083906000818181858888f19350505050158015613841573d6000803e3d6000fd5b507f627059660ea01c4733a328effb2294d2f86905bf806da763a89cee254de8bee5816040516138719190618ed8565b60405180910390a1613889838263ffffffff6161e916565b92505b505b801561398c5760006001808303815481106138a557fe5b9060005260206000209060040201905080600201601c9054906101000a900460ff161561391257836001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4846040516139059190618ed8565b60405180910390a2613986565b600354613925908463ffffffff61622b16565b600390815581015461393d908463ffffffff61622b16565b60038201556040516001600160a01b038516907f93a090ecc682c002995fad3c85b30c5651d7fd29b0be5da9d784a3302aedc0559061397d908690618ed8565b60405180910390a25b50610e32565b826001600160a01b03167ff177e5d6c5764d79c32883ed824111d9b13f5668cf6ab1cc12dd36791dd955b4836040516139c59190618ed8565b60405180910390a2505050565b600e5481565b61100081565b61dead81565b600b81815481106139f157fe5b6000918252602091829020601691909102018054600180830154600280850180546040805161010096831615969096026000190190911692909204601f810188900488028501880190925281845293965060ff90911694919291830182828015613a9c5780601f10613a7157610100808354040283529160200191613a9c565b820191906000526020600020905b815481529060010190602001808311613a7f57829003601f168201915b5050505050905083565b61100481565b6000600a5460001480613abd575081155b80613ac85750600954155b15613ad55750600061115e565b6000613b0f600a5461374685613746600b8981548110613af157fe5b6000918252602090912060169091020154439063ffffffff6161e916565b90506000806110016001600160a01b0316638256ace66040518163ffffffff1660e01b8152600401604080518083038186803b158015613b4e57600080fd5b505afa158015613b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8691906180ae565b9150915060009350808310613ce557613b9f8787615150565b5060405163436aa28360e11b8152600090612002906386d5450690613bc8908b906004016181eb565b60206040518083038186803b158015613be057600080fd5b505afa158015613bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c189190617e5b565b6001600160a01b031614613c84576040516313d13bdb60e31b815261100190639e89ded890613c4d908a9087906004016181ff565b600060405180830381600087803b158015613c6757600080fd5b505af1158015613c7b573d6000803e3d6000fd5b50505050613cdc565b6040516305bfb49960e41b815261100190635bfb499090613ca9908a906004016181eb565b600060405180830381600087803b158015613cc357600080fd5b505af1158015613cd7573d6000803e3d6000fd5b505050505b60019350613cf7565b818310613cf757613cf58761666f565b505b60098054600019019055600b80546000919088908110613d1357fe5b60009182526020822060169190910201600101805460ff1916921515929092179091556040516001600160a01b038916917fb9d38178dc641ff1817967a63c9078cbcd955a9f1fcd75e0e3636de615d44d3b91a25050509392505050565b613d79617ac1565b6000613d83617ac1565b613d8b617b5e565b613d9c613d978661686e565b616893565b90506000805b613dab836168dd565b15613f1f5780613dd057613dc6613dc1846168fe565b61694c565b60ff168452613f17565b8060011415613f12576060613dec613de7856168fe565b6169cc565b90508051604051908082528060200260200182016040528015613e2957816020015b613e16617ae5565b815260200190600190039081613e0e5790505b5085602001819052508051604051908082528060200260200182016040528015613e6757816020015b6060815260200190600190039081613e525790505b50604086015260005b8151811015613f0757613e81617ae5565b60606000613ea1858581518110613e9457fe5b6020026020010151616a9d565b92509250925080613ec1578860009a509a50505050505050505050613f28565b8289602001518581518110613ed257fe5b60200260200101819052508189604001518581518110613eee57fe5b6020026020010181905250505050806001019050613e70565b506001925050613f17565b613f1f565b600101613da2565b50919350909150505b915091565b604080516001808252818301909252606091829190816020015b6060815260200190600190039081613f47579050509050613f6d8363ffffffff16616bb7565b81600081518110613f7a57fe5b602002602001018190525061115e81616bca565b6000606483511115613fc557600080516020619170833981519152604051613fb5906186ef565b60405180910390a1506066611dc5565b60005b83518110156140635760005b8181101561405a57848181518110613fe857fe5b6020026020010151600001516001600160a01b031685838151811061400957fe5b6020026020010151600001516001600160a01b031614156140525760008051602061917083398151915260405161403f906187ff565b60405180910390a1606692505050611dc5565b600101613fd4565b50600101613fc8565b5060608060606015805480602002602001604051908101604052809291908181526020016000905b828210156141155760008481526020908190206040805160c0810182526004860290920180546001600160a01b039081168452600180830154821685870152600283015491821693850193909352600160a01b81046001600160401b03166060850152600160e01b900460ff16151560808401526003015460a0830152908352909201910161408b565b50505050905060606016805480602002602001604051908101604052809291908181526020016000905b828210156141ea5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156141d65780601f106141ab576101008083540402835291602001916141d6565b820191906000526020600020905b8154815290600101906020018083116141b957829003601f168201915b50505050508152602001906001019061413f565b50505050905060005b82518110156142475782818151811061420857fe5b60200260200101516060015160030283828151811061422357fe5b60209081029190910101516001600160401b039091166060909101526001016141f3565b5060608061425789898686616c54565b915091506142658282615513565b600154604080518281526020808402820101909152929850909650600095508594509250606091508280156142a4578160200160208202803683370190505b50905060005b828110156144355760006001600160a01b03166120026001600160a01b03166386d54506600184815481106142db57fe5b60009182526020909120600491820201546040516001600160e01b031960e085901b168152614316926001600160a01b0390921691016181eb565b60206040518083038186803b15801561432e57600080fd5b505afa158015614342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143669190617e5b565b6001600160a01b0316146143c857600182828151811061438257fe5b602002602001019060ff16908160ff1681525050600181815481106143a357fe5b9060005260206000209060040201600301546000146143c3578360010193505b61442d565b67016345785d8a0000600182815481106143de57fe5b906000526020600020906004020160030154106144005784600101945061442d565b6001818154811061440d57fe5b90600052602060002090600402016003015460001461442d578360010193505b6001016142aa565b50606084604051908082528060200260200182016040528015614462578160200160208202803683370190505b509050606085604051908082528060200260200182016040528015614491578160200160208202803683370190505b5090506060866040519080825280602002602001820160405280156144c0578160200160208202803683370190505b5090506060876040519080825280602002602001820160405280156144ef578160200160208202803683370190505b5090506000606088604051908082528060200260200182016040528015614520578160200160208202803683370190505b50905060608960405190808252806020026020018201604052801561454f578160200160208202803683370190505b50905060009a506000995060006110046001600160a01b031663149d14d96040518163ffffffff1660e01b815260040160206040518083038186803b15801561459757600080fd5b505afa1580156145ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cf9190618096565b905067016345785d8a000081111561461b576000805160206191708339815191526040516145fc90618b10565b60405180910390a160689e505050505050505050505050505050611dc5565b60005b8a8110156149af5789818151811061463257fe5b602002602001015160ff1660011415614728576001818154811061465257fe5b906000526020600020906004020160030154600014614723576001818154811061467857fe5b600091825260209091206004909102015484516001600160a01b039091169085908e9081106146a357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050600181815481106146d057fe5b906000526020600020906004020160030154838d815181106146ee57fe5b60200260200101818152505060018a8d8151811061470857fe5b602002602001019060ff16908160ff16815250508b6001019b505b6149a7565b67016345785d8a00006001828154811061473e57fe5b906000526020600020906004020160030154106148c3576001818154811061476257fe5b906000526020600020906004020160020160009054906101000a90046001600160a01b0316898e8151811061479357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060006402540be400600183815481106147c857fe5b906000526020600020906004020160030154816147e157fe5b06600183815481106147ef57fe5b90600052602060002090600402016003015403905061481783826161e990919063ffffffff16565b898f8151811061482357fe5b6020026020010181815250506001828154811061483c57fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316878f8151811061486d57fe5b60200260200101906001600160a01b031690816001600160a01b03168152505081888f8151811061489a57fe5b60209081029190910101526148b5868263ffffffff61622b16565b95508d6001019d50506149a7565b600181815481106148d057fe5b9060005260206000209060040201600301546000146149a757600181815481106148f657fe5b906000526020600020906004020160010160009054906101000a90046001600160a01b0316848d8151811061492757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001818154811061495457fe5b906000526020600020906004020160030154838d8151811061497257fe5b60200260200101818152505060008a8d8151811061498c57fe5b602002602001019060ff16908160ff16815250508b6001019b505b60010161461e565b5060008415614c25576002546040516303702b2960e51b815261100491636e0565209188916149e9918e918e918d914201906004016182f9565b6020604051808303818588803b158015614a0257600080fd5b505af193505050508015614a33575060408051601f3d908101601f19168201909252614a3091810190617fc3565b60015b614baa576040516000815260443d1015614a4f57506000614aea565b60046000803e60005160e01c6308c379a08114614a70576000915050614aea565b60043d036004833e81513d60248201116001600160401b0382111715614a9b57600092505050614aea565b80830180516001600160401b03811115614abc576000945050505050614aea565b8060208301013d8601811115614ada57600095505050505050614aea565b601f01601f191660405250925050505b80614af55750614b37565b60019150857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf28082604051614b29919061837e565b60405180910390a250614ba5565b3d808015614b61576040519150601f19603f3d011682016040523d82523d6000602084013e614b66565b606091505b5060019150857fbfa884552dd8921b6ce90bfe906952ae5b3b29be0cc1a951d4f62697635a3a4582604051614b9b919061837e565b60405180910390a2505b614c25565b8015614bec577fa217d08e65f80c73121cd9db834d81652d544bfbf452f6d04922b16c90a37b7086604051614bdf9190618ed8565b60405180910390a1614c23565b857fa7cdeed7d0db45e3219a6e5d60838824c16f1d39991fcfe3f963029c844bf280604051614c1a906184a8565b60405180910390a25b505b8015614ddb5760005b8751811015614dd9576000888281518110614c4557fe5b60200260200101519050600060018281548110614c5e57fe5b60009182526020909120600160049092020181015481546001600160a01b03909116916108fc9185908110614c8f57fe5b9060005260206000209060040201600301549081150290604051600060405180830381858888f1935050505090508015614d4b5760018281548110614cd057fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d9185908110614d1f57fe5b906000526020600020906004020160030154604051614d3e9190618ed8565b60405180910390a2614dcf565b60018281548110614d5857fe5b60009182526020909120600160049092020181015481546001600160a01b03909116917f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d9185908110614da757fe5b906000526020600020906004020160030154604051614dc69190618ed8565b60405180910390a25b5050600101614c2e565b505b835115614fd15760005b8451811015614fcf578a8181518110614dfa57fe5b602002602001015160ff1660011415614e99576120026001600160a01b031663092193ab858381518110614e2a57fe5b6020026020010151878481518110614e3e57fe5b60200260200101516040518363ffffffff1660e01b8152600401614e6291906181eb565b6000604051808303818588803b158015614e7b57600080fd5b505af1158015614e8f573d6000803e3d6000fd5b5050505050614fc7565b6000858281518110614ea757fe5b60200260200101516001600160a01b03166108fc868481518110614ec757fe5b60200260200101519081150290604051600060405180830381858888f1935050505090508015614f5d57858281518110614efd57fe5b60200260200101516001600160a01b03167f6c61d60f69a7beb3e1c80db7f39f37b208537cbb19da3174511b477812b2fc7d868481518110614f3b57fe5b6020026020010151604051614f509190618ed8565b60405180910390a2614fc5565b858281518110614f6957fe5b60200260200101516001600160a01b03167f25d0ce7d2f0cec669a8c17efe49d195c13455bb8872b65fa610ac7f53fe4ca7d868481518110614fa757fe5b6020026020010151604051614fbc9190618ed8565b60405180910390a25b505b600101614de5565b505b5050505050505050505050505060005b60015481101561503e5760018181548110614ff857fe5b9060005260206000209060040201600301546000146150365760006001828154811061502057fe5b9060005260206000209060040201600301819055505b600101614fe1565b5047156150ac577f6ecc855f9440a9282c90913bbc91619fd44f5ec0b462af28d127b116f130aa4d476040516150749190618ed8565b60405180910390a1604051611002904780156108fc02916000818181858888f193505050501580156150aa573d6000803e3d6000fd5b505b600060038190556005558151156150c7576150c782826159fa565b6110016001600160a01b031663fc4333cd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561510457600080fd5b505af1158015615118573d6000803e3d6000fd5b50506040517fedd8d7296956dd970ab4de3f2fc03be2b0ffc615d20cd4c72c6e44f928630ebf925060009150a1506000949350505050565b6000806001838154811061516057fe5b9060005260206000209060040201600301549050600060018080549050039050600161518a6130a3565b51116151bf5760006001858154811061519f57fe5b906000526020600020906004020160030181905550600092505050611dc5565b846001600160a01b03167f3b6f9ef90462b512a1293ecec018670bf7b7f1876fb727590a8a6d7643130a70836040516151f89190618ed8565b60405180910390a26001600160a01b038516600090815260046020526040812055835b600154600019018110156153e5576001816001018154811061523957fe5b90600052602060002090600402016001828154811061525457fe5b60009182526020909120825460049092020180546001600160a01b03199081166001600160a01b0393841617825560018085015481840180548416918616919091179055600280860180549185018054909416919095161780835584546001600160401b03600160a01b91829004160267ffffffffffffffff60a01b1990911617808355935460ff600160e01b918290041615150260ff60e01b19909416939093179055600392830154920191909155600b80549091830190811061531557fe5b9060005260206000209060160201600b828154811061533057fe5b600091825260209091208254601690920201908155600180830154818301805460ff909216151560ff1990921691909117905560028084018054615387938386019390821615610100026000190190911604617b7e565b5061539a60038281019084016013617bf3565b509050508060010160046000600184815481106153b357fe5b600091825260208083206004909202909101546001600160a01b0316835282019290925260400190205560010161521b565b5060018054806153f157fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b80548061544457fe5b60008281526020812060166000199093019283020181815560018101805460ff19169055906154766002830182617b1a565b615484600383016000617c1d565b50509055600081838161549357fe5b04905080156155075760015460005b81811015615504576154db83600183815481106154bb57fe5b90600052602060002090600402016003015461622b90919063ffffffff16565b600182815481106154e857fe5b60009182526020909120600360049092020101556001016154a2565b50505b50600195945050505050565b6060806000808080806155246131ad565b6001549091505b801561575357600181039250600b838154811061554457fe5b600091825260209091206001601690920201015460ff166155645761574a565b6001838154811061557157fe5b60009182526020909120600490910201546001600160a01b03169450615598858484613aac565b9350836155a45761574a565b60405163436aa28360e11b81526000908190612002906386d54506906155ce908a906004016181eb565b60206040518083038186803b1580156155e657600080fd5b505afa1580156155fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061561e9190617e5b565b90506001600160a01b038116156156a7576040516302ceee9160e11b81526120029063059ddd22906156549084906004016181eb565b60206040518083038186803b15801561566c57600080fd5b505afa158015615680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906156a49190617e5b565b91505b60005b8c5181101561574657876001600160a01b03168d82815181106156c957fe5b6020026020010151600001516001600160a01b031614806157125750826001600160a01b03168d82815181106156fb57fe5b6020026020010151600001516001600160a01b0316145b1561573e5760018d828151811061572557fe5b6020908102919091010151901515608090910152615746565b6001016156aa565b5050505b6000190161552b565b5060005b89518110156157c05789818151811061576c57fe5b602002602001015160800151806157ac575060006001600160a01b03168a828151811061579557fe5b6020026020010151600001516001600160a01b0316145b156157b8578560010195505b600101615757565b50885185106158a85760408051600180825281830190925290816020015b6157e6617ae5565b8152602001906001900390816157de575050604080516001808252818301909252919850602082015b606081526020019060019003908161580f5790505095508860008151811061583357fe5b60200260200101518760008151811061584857fe5b60200260200101819052508760008151811061586057fe5b60200260200101518660008151811061587557fe5b602002602001018190525060008760008151811061588f57fe5b60209081029190910101519015156080909101526159ed565b848951036040519080825280602002602001820160405280156158e557816020015b6158d2617ae5565b8152602001906001900390816158ca5790505b5096508489510360405190808252806020026020018201604052801561591f57816020015b606081526020019060019003908161590a5790505b5095506000915060005b89518110156159eb5789818151811061593e57fe5b602002602001015160800151158015615981575060006001600160a01b03168a828151811061596957fe5b6020026020010151600001516001600160a01b031614155b156159e35789818151811061599257fe5b60200260200101518884815181106159a657fe5b60200260200101819052508881815181106159bd57fe5b60200260200101518784815181106159d157fe5b60200260200101819052508260010192505b600101615929565b505b50505050505b9250929050565b600154825160005b82811015615b17576001615a14617ae5565b60018381548110615a2157fe5b600091825260208083206040805160c08101825260049490940290910180546001600160a01b0390811685526001820154811693850193909352600281015492831691840191909152600160a01b82046001600160401b03166060840152600160e01b90910460ff16151560808301526003015460a082015291505b84811015615aeb57878181518110615ab157fe5b6020026020010151600001516001600160a01b031682600001516001600160a01b03161415615ae35760009250615aeb565b600101615a9d565b508115615b0d5780516001600160a01b03166000908152600460205260408120555b5050600101615a02565b5080821115615bd657805b82811015615bd4576001805480615b3557fe5b60008281526020812060046000199093019283020180546001600160a01b0319908116825560018201805490911690556002810180546001600160e81b0319169055600301559055600b805480615b8857fe5b60008281526020812060166000199093019283020181815560018101805460ff1916905590615bba6002830182617b1a565b615bc8600383016000617c1d565b50509055600101615b22565b505b6000818310615be55781615be7565b825b905060005b81811015615f8b57615c99868281518110615c0357fe5b602002602001015160018381548110615c1857fe5b60009182526020918290206040805160c08101825260049390930290910180546001600160a01b0390811684526001820154811694840194909452600281015493841691830191909152600160a01b83046001600160401b03166060830152600160e01b90920460ff161515608082015260039091015460a0820152617020565b615e4d578060010160046000888481518110615cb157fe5b6020026020010151600001516001600160a01b03166001600160a01b0316815260200190815260200160002081905550858181518110615ced57fe5b602002602001015160018281548110615d0257fe5b6000918252602091829020835160049092020180546001600160a01b039283166001600160a01b0319918216178255928401516001820180549184169185169190911790556040840151600282018054606087015160808801511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909716929097169190911792909216939093171692909217905560a0909101516003909101558451859082908110615dbd57fe5b6020026020010151600b8281548110615dd257fe5b90600052602060002090601602016002019080519060200190615df6929190617a1a565b506000600b8281548110615e0657fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b805483908110615e3757fe5b6000918252602090912060169091020155615f83565b858181518110615e5957fe5b60200260200101516060015160018281548110615e7257fe5b906000526020600020906004020160020160146101000a8154816001600160401b0302191690836001600160401b03160217905550615f38858281518110615eb657fe5b6020026020010151600b8381548110615ecb57fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134a65780601f1061347b576101008083540402835291602001916134a6565b615f8357848181518110615f4857fe5b6020026020010151600b8281548110615f5d57fe5b90600052602060002090601602016002019080519060200190615f81929190617a1a565b505b600101615bec565b508282111561616357615f9c6179eb565b835b8381101561616057858181518110615fb257fe5b602002602001015182604001819052506001878281518110615fd057fe5b6020908102919091018101518254600181810185556000948552838520835160049093020180546001600160a01b039384166001600160a01b0319918216178255848601518284018054918616918316919091179055604080860151600284018054606089015160808a01511515600160e01b0260ff60e01b196001600160401b03909216600160a01b0267ffffffffffffffff60a01b1995909a1692909616919091179290921696909617169190911790935560a090930151600390930192909255600b80549283018155909352845160169091026000805160206191908339815191528101918255858301516000805160206191d08339815191528201805491151560ff1990921691909117905592850151805186949293616106936000805160206191b083398151915201920190617a1a565b50606082015161611c9060038301906013617a94565b505050806001016004600089848151811061613357fe5b602090810291909101810151516001600160a01b0316825281019190915260400160002055600101615f9e565b50505b61616b61707c565b616173617264565b6000600981905560015493505b838110156161e1576000600b828154811061619757fe5b60009182526020822060169190910201600101805460ff191692151592909217909155600b8054839081106161c857fe5b6000918252602090912060169091020155600101616180565b505050505050565b600061115e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250617452565b60008282018381101561115e5760405162461bcd60e51b8152600401610e1290618613565b60015481516040805182815260208084028201019091526060929190839082801561628f57816020015b606081526020019060019003908161627a5790505b50600b5490915083146162a6579250611d15915050565b60005b828110156163b557600b6001600460008985815181106162c557fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205403815481106162f957fe5b600091825260209182902060026016909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156163915780601f1061636657610100808354040283529160200191616391565b820191906000526020600020905b81548152906001019060200180831161637457829003601f168201915b50505050508282815181106163a257fe5b60209081029190910101526001016162a9565b50949350505050565b60005b8281101561650b57600082878388016040516020016163e19291906181dd565b6040516020818303038152906040528051906020012060001c8161640157fe5b06905080850182870114616502576000898388018151811061641f57fe5b602002602001015190506060898489018151811061643957fe5b602002602001015190508a8388018151811061645157fe5b60200260200101518b858a018151811061646757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050818b8489018151811061649657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505089838801815181106164c457fe5b60200260200101518a858a01815181106164da57fe5b6020026020010181905250808a848901815181106164f457fe5b602002602001018190525050505b506001016163c1565b5050505050505050565b600980546001908101909155600b80548390811061652f57fe5b906000526020600020906016020160010160006101000a81548160ff02191690831515021790555043600b828154811061656557fe5b600091825260208220601690910201919091556040516001600160a01b038416917ff62981a567ec3cec866c6fa93c55bcdf841d6292d18b8d522ececa769375d82d91a25050565b6000816040516020016165c091906181c1565b60405160208183030381529060405280519060200120836040516020016165e791906181c1565b6040516020818303038152906040528051906020012014905092915050565b015190565b8151815160009160019181148083146166275760009250616665565b600160208701838101602088015b6002848385100114156166605780518351146166545760009650600093505b60209283019201616635565b505050505b5090949350505050565b6001600160a01b0381166000908152600460205260408120548061669857506000199050611d15565b6001810390506000600182815481106166ad57fe5b90600052602060002090600402016003015490506000600183815481106166d057fe5b6000918252602090912060036004909202010155600154604051600019909101906001600160a01b038616907f8cd4e147d8af98a9e3b6724021b8bf6aed2e5dac71c38f2dce8161b82585b25d90616729908590618ed8565b60405180910390a28061674157829350505050611d15565b600081838161674c57fe5b04905080156167e85760005b8481101561679a5761677182600183815481106154bb57fe5b6001828154811061677e57fe5b6000918252602090912060036004909202010155600101616758565b50600180549085015b818110156167e5576167bc83600183815481106154bb57fe5b600182815481106167c957fe5b60009182526020909120600360049092020101556001016167a3565b50505b5091949350505050565b60008261680157506000611dc5565b8282028284828161680e57fe5b041461115e5760405162461bcd60e51b8152600401610e12906189e2565b600061115e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061747e565b616876617c2c565b506040805180820190915281518152602082810190820152919050565b61689b617b5e565b6168a4826174b5565b6168ad57600080fd5b60006168bc83602001516174ef565b60208085015160408051808201909152868152920190820152915050919050565b60006168e7617c2c565b505080518051602091820151919092015191011190565b616906617c2c565b61690f826168dd565b61691857600080fd5b6020820151600061692882617552565b80830160209586015260408051808201909152908152938401919091525090919050565b80516000901580159061696157508151602110155b61696a57600080fd5b600061697983602001516174ef565b9050808360000151101561699f5760405162461bcd60e51b8152600401610e1290618bf0565b8251602080850151830180519284900392918310156163b557506020919091036101000a90049392505050565b60606169d7826174b5565b6169e057600080fd5b60006169eb83617633565b9050606081604051908082528060200260200182016040528015616a2957816020015b616a16617c2c565b815260200190600190039081616a0e5790505b5090506000616a3b85602001516174ef565b60208601510190506000805b84811015616a9257616a5883617552565b9150604051806040016040528083815260200184815250848281518110616a7b57fe5b602090810291909101015291810191600101616a47565b509195945050505050565b616aa5617ae5565b60606000616ab1617ae5565b6060616abb617b5e565b616ac487616893565b90506000805b616ad3836168dd565b15616ba85780616afe57616aee616ae9846168fe565b61768f565b6001600160a01b03168552616ba0565b8060011415616b2657616b13616ae9846168fe565b6001600160a01b03166020860152616ba0565b8060021415616b4e57616b3b616ae9846168fe565b6001600160a01b03166040860152616ba0565b8060031415616b7a57616b63613dc1846168fe565b6001600160401b0316606086015260019150616ba0565b8060041415616b9b57616b94616b8f846168fe565b6176a9565b9350616ba0565b616ba8565b600101616aca565b50929791965091945092505050565b6060611dc5616bc583617719565b6177ff565b6060815160001415616beb5750604080516000815260208101909152611d15565b606082600081518110616bfa57fe5b602002602001015190506000600190505b8351811015616c3b57616c3182858381518110616c2457fe5b6020026020010151617851565b9150600101616c0b565b5061115e616c4e825160c060ff166178ce565b82617851565b60608060006120026001600160a01b031663c473318f6040518163ffffffff1660e01b815260040160206040518083038186803b158015616c9457600080fd5b505afa158015616ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616ccc9190618096565b90508085518851011015616ce1575083518651015b606081604051908082528060200260200182016040528015616d1d57816020015b616d0a617ae5565b815260200190600190039081616d025790505b509050606082604051908082528060200260200182016040528015616d5657816020015b6060815260200190600190039081616d415790505b50905060008060005b8b51831080616d6e5750895182105b8015616d7957508581105b1561700e578b51831415616de957898281518110616d9357fe5b6020026020010151858281518110616da757fe5b6020026020010181905250888281518110616dbe57fe5b6020026020010151848281518110616dd257fe5b602090810291909101015260019182019101616d5f565b8951821415616e54578b8381518110616dfe57fe5b6020026020010151858281518110616e1257fe5b60200260200101819052508a8381518110616e2957fe5b6020026020010151848281518110616e3d57fe5b602090810291909101015260019283019201616d5f565b898281518110616e6057fe5b6020026020010151606001516001600160401b03168c8481518110616e8157fe5b6020026020010151606001516001600160401b03161115616efd578b8381518110616ea857fe5b6020026020010151858281518110616ebc57fe5b60200260200101819052508a8381518110616ed357fe5b6020026020010151848281518110616ee757fe5b6020026020010181905250826001019250617006565b898281518110616f0957fe5b6020026020010151606001516001600160401b03168c8481518110616f2a57fe5b6020026020010151606001516001600160401b03161015616fa657898281518110616f5157fe5b6020026020010151858281518110616f6557fe5b6020026020010181905250888281518110616f7c57fe5b6020026020010151848281518110616f9057fe5b6020026020010181905250816001019150617006565b898281518110616fb257fe5b6020026020010151600001516001600160a01b03168c8481518110616fd357fe5b6020026020010151600001516001600160a01b03161015616ffa578b8381518110616ea857fe5b898281518110616d9357fe5b600101616d5f565b50929a91995090975050505050505050565b805182516000916001600160a01b03918216911614801561705a575081602001516001600160a01b031683602001516001600160a01b0316145b801561115e5750506040908101519101516001600160a01b0390811691161490565b601254601354808211156170c757805b828110156170c557601280548061709f57fe5b6001900381819060005260206000200160006170bb9190617b1a565b905560010161708c565b505b60008183106170d657816170d8565b825b905060005b818110156171f057617195601282815481106170f557fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156171835780601f1061715857610100808354040283529160200191617183565b820191906000526020600020905b81548152906001019060200180831161716657829003601f168201915b50505050506013838154811061341857fe5b6171e857601381815481106171a657fe5b90600052602060002001601282815481106171bd57fe5b9060005260206000200190805460018160011615610100020316600290046171e6929190617b7e565b505b6001016170dd565b5082821115610e3257825b8281101561725e5760126013828154811061721257fe5b6000918252602080832084546001818101875595855291909320929091018054617255949390920192909160026101009282161592909202600019011604617b7e565b506001016171fb565b50505050565b601354600b54808211156172af57805b828110156172ad57601380548061728757fe5b6001900381819060005260206000200160006172a39190617b1a565b9055600101617274565b505b60008183106172be57816172c0565b825b905060005b818110156173df5761737d601382815481106172dd57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561736b5780601f106173405761010080835404028352916020019161736b565b820191906000526020600020905b81548152906001019060200180831161734e57829003601f168201915b5050505050600b8381548110615ecb57fe5b6173d757600b818154811061738e57fe5b9060005260206000209060160201600201601382815481106173ac57fe5b9060005260206000200190805460018160011615610100020316600290046173d5929190617b7e565b505b6001016172c5565b5082821115610e3257825b8281101561725e576013600b828154811061740157fe5b60009182526020808320845460018082018755958552919093206016929092029092016002908101805461744995939094019390926000199082161561010002011604617b7e565b506001016173ea565b600081848411156174765760405162461bcd60e51b8152600401610e12919061837e565b505050900390565b6000818361749f5760405162461bcd60e51b8152600401610e12919061837e565b5060008385816174ab57fe5b0495945050505050565b80516000906174c657506000611d15565b6020820151805160001a9060c08210156174e557600092505050611d15565b5060019392505050565b8051600090811a6080811015617509576000915050611d15565b60b8811080617524575060c08110801590617524575060f881105b15617533576001915050611d15565b60c08110156175475760b519019050611d15565b60f519019050611d15565b80516000908190811a608081101561756d576001915061762c565b60b881101561758257607e198101915061762c565b60c08110156175d357600060b78203600186019550806020036101000a8651049150600181018201935050808310156175cd5760405162461bcd60e51b8152600401610e129061892f565b5061762c565b60f88110156175e85760be198101915061762c565b600060f78203600186019550806020036101000a86510491506001810182019350508083101561762a5760405162461bcd60e51b8152600401610e129061892f565b505b5092915050565b805160009061764457506000611d15565b6000809050600061765884602001516174ef565b602085015185519181019250015b808210156176865761767782617552565b82019150826001019250617666565b50909392505050565b80516000906015146176a057600080fd5b611dc58261694c565b80516060906176b757600080fd5b60006176c683602001516174ef565b83516040805191839003808352601f19601f82011683016020019091529192506060908280156176fd576020820181803683370190505b50905060008160200190506163b58487602001510182856179a0565b604080516020808252818301909252606091829190602082018180368337505050602081018490529050600067ffffffffffffffff19841661775d57506018617781565b6fffffffffffffffffffffffffffffffff19841661777d57506010617781565b5060005b60208110156177b75781818151811061779657fe5b01602001516001600160f81b031916156177af576177b7565b600101617781565b60008160200390506060816040519080825280601f01601f1916602001820160405280156177ec576020820181803683370190505b5080830196909652508452509192915050565b6060815160011480156178315750607f60f81b8260008151811061781f57fe5b01602001516001600160f81b03191611155b1561783d575080611d15565b611dc561784f8351608060ff166178ce565b835b6060806040519050835180825260208201818101602087015b8183101561788257805183526020928301920161786a565b50855184518101855292509050808201602086015b818310156178af578051835260209283019201617897565b508651929092011591909101601f01601f191660405250905092915050565b60606801000000000000000083106178f85760405162461bcd60e51b8152600401610e129061877a565b604080516001808252818301909252606091602082018180368337019050509050603784116179525782840160f81b8160008151811061793457fe5b60200101906001600160f81b031916908160001a9053509050611dc5565b606061795d85617719565b90508381510160370160f81b8260008151811061797657fe5b60200101906001600160f81b031916908160001a9053506179978282617851565b95945050505050565b806179aa57610e32565b5b602081106179ca578251825260209283019290910190601f19016179ab565b915181516020939093036101000a6000190180199091169216919091179052565b60405180608001604052806000815260200160001515815260200160608152602001617a15617c46565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617a5b57805160ff1916838001178555617a88565b82800160010185558215617a88579182015b82811115617a88578251825591602001919060010190617a6d565b506131e8929150617c65565b8260138101928215617a885791602002820182811115617a88578251825591602001919060010190617a6d565b6040518060600160405280600060ff16815260200160608152602001606081525090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460018160011615610100020316600290046000825580601f10617b405750611f2d565b601f016020900490600052602060002090810190611f2d9190617c65565b6040518060400160405280617b71617c2c565b8152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10617bb75780548555617a88565b82800160010185558215617a8857600052602060002091601f016020900482015b82811115617a88578254825591600101919060010190617bd8565b8260138101928215617a885791820182811115617a88578254825591600101919060010190617bd8565b50611f2d906013810190617c65565b604051806040016040528060008152602001600081525090565b6040518061026001604052806013906020820280368337509192915050565b61318c91905b808211156131e85760008155600101617c6b565b8035611dc581618faf565b60008083601f840112617c9b578182fd5b5081356001600160401b03811115617cb1578182fd5b60208301915083602080830285010111156159f357600080fd5b6000601f8381840112617cdc578182fd5b8235617cef617cea82618f64565b618f3e565b818152925060208084019085810160005b84811015617d81578135880189603f820112617d1b57600080fd5b838101356001600160401b03811115617d3357600080fd5b617d44818901601f19168601618f3e565b81815260408c81848601011115617d5a57600080fd5b82818501888401375060009181018601919091528552509282019290820190600101617d00565b50505050505092915050565b600082601f830112617d9d578081fd5b8135617dab617cea82618f64565b818152915060208083019084810181840286018201871015617dcc57600080fd5b6000805b85811015617d815782356001600160401b0381168114617dee578283fd5b85529383019391830191600101617dd0565b60008083601f840112617e11578182fd5b5081356001600160401b03811115617e27578182fd5b6020830191508360208285010111156159f357600080fd5b600060208284031215617e50578081fd5b813561115e81618faf565b600060208284031215617e6c578081fd5b815161115e81618faf565b60008060008060408587031215617e8c578283fd5b84356001600160401b0380821115617ea2578485fd5b617eae88838901617c8a565b90965094506020870135915080821115617ec6578384fd5b50617ed387828801617c8a565b95989497509550505050565b600080600060608486031215617ef3578283fd5b83356001600160401b0380821115617f09578485fd5b81860187601f820112617f1a578586fd5b80359250617f2a617cea84618f64565b80848252602080830192508084018b828389028701011115617f4a57898afd5b8994505b86851015617f7457617f608c82617c7f565b845260019490940193928101928101617f4e565b509097508801359350505080821115617f8b578384fd5b617f9787838801617d8d565b93506040860135915080821115617fac578283fd5b50617fb986828701617ccb565b9150509250925092565b600060208284031215617fd4578081fd5b8151801515811461115e578182fd5b60008060208385031215617ff5578182fd5b82356001600160401b0381111561800a578283fd5b61801685828601617e00565b90969095509350505050565b60008060008060408587031215618037578384fd5b84356001600160401b038082111561804d578586fd5b61805988838901617e00565b90965094506020870135915080821115618071578384fd5b50617ed387828801617e00565b60006020828403121561808f578081fd5b5035919050565b6000602082840312156180a7578081fd5b5051919050565b600080604083850312156180c0578182fd5b505080516020909101519092909150565b6000806000604084860312156180e5578081fd5b833560ff811681146180f5578182fd5b925060208401356001600160401b0381111561810f578182fd5b61811b86828701617e00565b9497909650939450505050565b6000815180845260208085019450808401835b838110156181605781516001600160a01b03168752958201959082019060010161813b565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526181ad816020860160208601618f83565b601f01601f19169290920160200192915050565b600082516181d3818460208701618f83565b9190910192915050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03968716815294861660208601529290941660408401526001600160401b03166060830152911515608082015260a081019190915260c00190565b6001600160a01b0392909216825260ff16602082015260400190565b60006020825261115e6020830184618128565b60006040825261829c6040830185618128565b602083820381850152818551808452828401915082838202850101838801865b838110156182ea57601f198784030185526182d8838351618195565b948601949250908501906001016182bc565b50909998505050505050505050565b60006080825261830c6080830187618128565b828103602084810191909152865180835287820192820190845b8181101561834257845183529383019391830191600101618326565b505084810360408601526183568188618128565b93505050506001600160401b038316606083015295945050505050565b901515815260200190565b60006020825261115e6020830184618195565b6000604082526183a560408301868861816b565b82810360208401526183b881858761816b565b979650505050505050565b6020808252601c908201527f6c656e677468206f66206275726e526174696f206d69736d6174636800000000604082015260600190565b60208082526042908201527f746865206275726e526174696f20706c75732073797374656d5265776172645260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b60208082526026908201527f6c656e677468206f66206d61784e756d4f664d61696e7461696e696e67206d696040820152650e6dac2e8c6d60d31b606082015260800190565b6020808252601b908201527f6261746368207472616e736665722072657475726e2066616c73650000000000604082015260600190565b6020808252602c908201527f6c656e677468206f66206d61784e756d4f66576f726b696e6743616e6469646160408201526b0e8cae640dad2e6dac2e8c6d60a31b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61696e7461696e536c6173685363616c65206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252818101527f6c656e677468206f66206e756d4f66436162696e657473206d69736d61746368604082015260600190565b60208082526019908201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604082015260600190565b6020808252601f908201527f6f6e6c7920736c617368206f72207374616b6548756220636f6e747261637400604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526028908201527f746865206e756d4f66436162696e657473206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b60208082526039908201527f746865206e756d4f66436162696e657473206d757374206265206c657373207460408201527f68616e204d41585f4e554d5f4f465f56414c494441544f525300000000000000606082015260800190565b60208082526029908201527f746865206e756d626572206f662076616c696461746f727320657863656564206040820152681d1a19481b1a5b5a5d60ba1b606082015260800190565b60208082526022908201527f63616e206e6f7420646f207468697320747769636520696e206f6e6520626c6f604082015261636b60f01b606082015260800190565b6020808252600e908201526d696e70757420746f6f206c6f6e6760901b604082015260600190565b60208082526037908201527f746865206d61784e756d4f664d61696e7461696e696e67206d7573742062652060408201527f6c657373207468616e206e756d4f66436162696e657473000000000000000000606082015260800190565b6020808252602b908201527f6475706c696361746520636f6e73656e7375732061646472657373206f66207660408201526a185b1a59185d1bdc94d95d60aa1b606082015260800190565b60208082526027908201527f7468652065787069726554696d655365636f6e64476170206973206f7574206f604082015266662072616e676560c81b606082015260800190565b6020808252601590820152746465706f7369742076616c7565206973207a65726f60581b604082015260600190565b60208082526049908201527f746865206d61784e756d4f66576f726b696e6743616e64696461746573206d7560408201527f7374206265206e6f742067726561746572207468616e206d61784e756d4f6643606082015268616e6469646174657360b81b608082015260a00190565b6020808252601190820152706164646974696f6e206f766572666c6f7760781b604082015260600190565b60208082526023908201527f63616e206e6f7420656e7465722054656d706f72617279204d61696e74656e616040820152626e636560e81b606082015260800190565b60208082526025908201527f6c656e677468206f66206a61696c2076616c696461746f7273206d757374206260408201526465206f6e6560d81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601490820152736761737072696365206973206e6f74207a65726f60601b604082015260600190565b6020808252602e908201527f746865206d6573736167652073656e646572206d75737420626520676f76657260408201526d1b985b98d94818dbdb9d1c9858dd60921b606082015260800190565b60208082526025908201527f6c656e677468206f66206d61784e756d4f6643616e64696461746573206d69736040820152640dac2e8c6d60db1b606082015260800190565b6020808252601290820152716e6f7420696e206d61696e74656e616e636560701b604082015260600190565b60208082526021908201527f666565206973206c6172676572207468616e2044555354595f494e434f4d494e6040820152604760f81b606082015260800190565b60208082526019908201527f74686520636f6e747261637420616c726561647920696e697400000000000000604082015260600190565b60208082526042908201527f7468652073797374656d526577617264526174696f20706c7573206275726e5260408201527f6174696f206d757374206265206e6f2067726561746572207468616e20313030606082015261030360f41b608082015260a00190565b6020808252601a908201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604082015260600190565b60208082526026908201527f6c656e677468206f662065787069726554696d655365636f6e64476170206d696040820152650e6dac2e8c6d60d31b606082015260800190565b60208082526017908201527f6f6e6c792063757272656e742076616c696461746f7273000000000000000000604082015260600190565b60208082526021908201527f6661696c656420746f20706172736520696e69742076616c696461746f7253656040820152601d60fa1b606082015260800190565b6020808252602f908201527f746865206d6573736167652073656e646572206d7573742062652063726f737360408201526e0818da185a5b8818dbdb9d1c9858dd608a1b606082015260800190565b6020808252602d908201527f746865206d6573736167652073656e646572206d75737420626520746865206260408201526c3637b1b590383937b23ab1b2b960991b606082015260800190565b60208082526024908201527f6c656e677468206f662073797374656d526577617264526174696f206d69736d6040820152630c2e8c6d60e31b606082015260800190565b6020808252603e908201527f746865206d61696e7461696e536c6173685363616c65206d757374206265206760408201527f726561746572207468616e203020616e64206c657373207468616e2031300000606082015260800190565b6020808252600d908201526c756e6b6e6f776e20706172616d60981b604082015260600190565b60208082526029908201527f746865206d6573736167652073656e646572206d75737420626520736c6173686040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601f908201527f746865206d73672073656e646572206d757374206265207374616b6548756200604082015260600190565b61ffff91909116815260200190565b90815260200190565b60008482528315156020830152606060408301526179976060830184618195565b63ffffffff91909116815260200190565b60ff91909116815260200190565b600060ff851682526040602083015261799760408301848661816b565b6040518181016001600160401b0381118282101715618f5c57600080fd5b604052919050565b60006001600160401b03821115618f79578081fd5b5060209081020190565b60005b83811015618f9e578181015183820152602001618f86565b8381111561725e5750506000910152565b6001600160a01b0381168114611f2d57600080fdfef901a880f901a4f844941284214b9b9c85549ab3d2b972df0deef66ac2c9946ddf42a51534fc98d0c0a3b42c963cace8441ddf946ddf42a51534fc98d0c0a3b42c963cace8441ddf8410000000f84494a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0948081ef03f1d9e0bb4a5bf38f16285c879299f07f948081ef03f1d9e0bb4a5bf38f16285c879299f07f8410000000f8449435552c16704d214347f29fa77f77da6d75d7c75294dc4973e838e3949c77aced16ac2315dc2d7ab11194dc4973e838e3949c77aced16ac2315dc2d7ab1118410000000f84494980a75ecd1309ea12fa2ed87a8744fbfc9b863d594cc6ac05c95a99c1f7b5f88de0e3486c82293b27094cc6ac05c95a99c1f7b5f88de0e3486c82293b2708410000000f84494f474cf03cceff28abc65c9cbae594f725c80e12d94e61a183325a18a173319dd8e19c8d069459e217594e61a183325a18a173319dd8e19c8d069459e21758410000000f84494b71b214cb885500844365e95cd9942c7276e7fd894d22ca3ba2141d23adab65ce4940eb7665ea2b6a794d22ca3ba2141d23adab65ce4940eb7665ea2b6a7841000000070e72399380dcfb0338abc03dc8d47f9f470ada8e769c9a78d644ea97385ecb20175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbaa164736f6c6343000604000a", + Code: feynmanFix.ChapelValidatorContract, }, { ContractAddr: common.HexToAddress(StakeHubContract), CommitUrl: "https://github.com/bnb-chain/bsc-genesis-contract/commit/2d6372ddba77902ef01e45887a425938376d5a5c", - Code: "608060405260043610620003db5760003560e01c806386d545061162000203578063d115a2061162000117578063e992aaf511620000ad578063f80a34021162000078578063f80a34021462000bef578063fb50b31f1462000c14578063fc0c5ff11462000c39578063ff69ab611462000c5157600080fd5b8063e992aaf51462000b6c578063efdbf0e11462000b84578063f1f74d841462000bc0578063f1fad1041462000bd857600080fd5b8063d8ca511f11620000ee578063d8ca511f1462000aff578063daacdb661462000b17578063dbda7fb31462000b2f578063e8f67c3b1462000b5457600080fd5b8063d115a2061462000a9d578063d6ca429d1462000ab5578063d7c2dfc81462000ada57600080fd5b8063b187bd261162000199578063c38fbec81162000164578063c38fbec81462000a1f578063c473318f1462000a44578063c8509d81146200083d578063cbb04d9d1462000a5c57600080fd5b8063b187bd26146200098c578063baa7199e14620009ac578063bdceadf314620009d1578063bff02e2014620009e957600080fd5b8063982ef0a711620001da578063982ef0a714620008f7578063a43569b3146200090e578063aad3ec961462000942578063ac431751146200096757600080fd5b806386d54506146200087a5780638a4d3fa814620008b45780638cd22b2214620008d257600080fd5b80634bf6c88211620002fb578063663706d3116200029157806376e7d6d6116200025c57806376e7d6d6146200080d5780638129fc1c1462000825578063831d65d1146200083d5780638456cb59146200086257600080fd5b8063663706d3146200073a5780636ec01b27146200076b5780636f8e2fa414620007c357806375cc7d8914620007e857600080fd5b80635949187111620002d25780635949187114620006a25780635e7cc1c914620006c757806363a036b514620006ec57806364028fbd146200072357600080fd5b80634bf6c882146200063b5780634d99dd1614620006655780634e6fd6c4146200068a57600080fd5b80631fa8882b1162000371578063449ecfe61162000348578063449ecfe6146200058757806345211bfd14620005ac5780634838d16514620005d15780634a49ac4c146200061657600080fd5b80631fa8882b146200053157806338409988146200054a578063417c73a7146200056257600080fd5b8063092193ab11620003b2578063092193ab146200047c5780630e9fbf5114620004935780631182b87514620004b857806317b4f35314620004ec57600080fd5b8063046f7da214620003fb578063059ddd2214620004135780630661806e146200045557600080fd5b36620003f65760345460ff16600114620003f457600080fd5b005b600080fd5b3480156200040857600080fd5b50620003f462000c69565b3480156200042057600080fd5b50620004386200043236600462009440565b62000cfb565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156200046257600080fd5b506200046d60365481565b6040519081526020016200044c565b620003f46200048d36600462009440565b62001110565b348015620004a057600080fd5b50620003f4620004b2366004620094a4565b6200174e565b348015620004c557600080fd5b50620004dd620004d7366004620094e9565b62001a7a565b6040516200044c91906200959c565b348015620004f957600080fd5b50620004386200050b36600462009692565b80516020818301810180516045825292820191909301209152546001600160a01b031681565b3480156200053e57600080fd5b506200046d6201518081565b3480156200055757600080fd5b506200046d60375481565b3480156200056f57600080fd5b50620003f46200058136600462009440565b62001ded565b3480156200059457600080fd5b50620003f4620005a636600462009440565b62001e6f565b348015620005b957600080fd5b50620003f4620005cb36600462009440565b62002054565b348015620005de57600080fd5b5062000605620005f036600462009440565b60016020526000908152604090205460ff1681565b60405190151581526020016200044c565b3480156200062357600080fd5b50620003f46200063536600462009440565b62002231565b3480156200064857600080fd5b5062000652600881565b60405160ff90911681526020016200044c565b3480156200067257600080fd5b50620003f462000684366004620096e7565b620022ad565b3480156200069757600080fd5b506200043861dead81565b348015620006af57600080fd5b50620003f4620006c136600462009725565b620028ca565b348015620006d457600080fd5b50620003f4620006e636600462009795565b6200369c565b348015620006f957600080fd5b50620007116200070b366004620097b5565b620038a4565b6040516200044c94939291906200981e565b620003f462000734366004620098da565b62003f36565b3480156200074757600080fd5b506200046d6200075936600462009440565b60446020526000908152604090205481565b3480156200077857600080fd5b50620007906200078a36600462009440565b62004580565b6040805182516001600160401b03908116825260208085015182169083015292820151909216908201526060016200044c565b348015620007d057600080fd5b50620004dd620007e236600462009440565b6200462a565b348015620007f557600080fd5b50620003f46200080736600462009440565b62004a43565b3480156200081a57600080fd5b506200046d603d5481565b3480156200083257600080fd5b50620003f462004c15565b3480156200084a57600080fd5b50620003f46200085c366004620094e9565b62004f2c565b3480156200086f57600080fd5b50620003f462004f96565b3480156200088757600080fd5b50620004386200089936600462009440565b6043602052600090815260409020546001600160a01b031681565b348015620008c157600080fd5b506200046d670de0b6b3a764000081565b348015620008df57600080fd5b506200046d620008f1366004620096e7565b6200502e565b620003f462000908366004620099b2565b620050e7565b3480156200091b57600080fd5b50620009336200092d36600462009440565b62005771565b6040516200044c9190620099f0565b3480156200094f57600080fd5b50620003f462000961366004620096e7565b62005a5e565b3480156200097457600080fd5b50620003f46200098636600462009a6d565b62005acb565b3480156200099957600080fd5b5060005462010000900460ff1662000605565b348015620009b957600080fd5b50620003f4620009cb36600462009b26565b6200696a565b348015620009de57600080fd5b506200046d603c5481565b348015620009f657600080fd5b5062000a0e62000a08366004620097b5565b62006b37565b6040516200044c9392919062009b82565b34801562000a2c57600080fd5b50620003f462000a3e36600462009440565b62006d13565b34801562000a5157600080fd5b506200046d60385481565b34801562000a6957600080fd5b5062000a8162000a7b36600462009440565b62006fd5565b604080519384529115156020840152908201526060016200044c565b34801562000aaa57600080fd5b506200046d61271081565b34801562000ac257600080fd5b50620003f462000ad436600462009bdf565b62007405565b34801562000ae757600080fd5b50620003f462000af936600462009cc8565b62007609565b34801562000b0c57600080fd5b506200046d603b5481565b34801562000b2457600080fd5b506200046d60495481565b34801562000b3c57600080fd5b506200043862000b4e36600462009440565b620076ff565b34801562000b6157600080fd5b506200046d60355481565b34801562000b7957600080fd5b506200046d603a5481565b34801562000b9157600080fd5b506200046d62000ba336600462009692565b805160208183018101805160468252928201919093012091525481565b34801562000bcd57600080fd5b506200046d603e5481565b34801562000be557600080fd5b5062000652601181565b34801562000bfc57600080fd5b506200046d62000c0e366004620096e7565b62007b16565b34801562000c2157600080fd5b50620003f462000c3336600462009a6d565b62007b87565b34801562000c4657600080fd5b506200046d60395481565b34801562000c5e57600080fd5b506200046d604a5481565b600054630100000090046001600160a01b0316331462000c9c576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff1662000cc657604051636cd6020160e01b815260040160405180910390fd5b6000805462ff0000191681556040517f62451d457bc659158be6e6247f56ec1df424a5c7597f71c20c2bc44e0965c8f99190a1565b6001600160a01b038082166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054929384939091608084019162000d669062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000d949062009d2e565b801562000de55780601f1062000db95761010080835404028352916020019162000de5565b820191906000526020600020905b81548152906001019060200180831162000dc757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462000e109062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000e3e9062009d2e565b801562000e8f5780601f1062000e635761010080835404028352916020019162000e8f565b820191906000526020600020905b81548152906001019060200180831162000e7157829003601f168201915b5050505050815260200160018201805462000eaa9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000ed89062009d2e565b801562000f295780601f1062000efd5761010080835404028352916020019162000f29565b820191906000526020600020905b81548152906001019060200180831162000f0b57829003601f168201915b5050505050815260200160028201805462000f449062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462000f729062009d2e565b801562000fc35780601f1062000f975761010080835404028352916020019162000fc3565b820191906000526020600020905b81548152906001019060200180831162000fa557829003601f168201915b5050505050815260200160038201805462000fde9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200100c9062009d2e565b80156200105d5780601f1062001031576101008083540402835291602001916200105d565b820191906000526020600020905b8154815290600101906020018083116200103f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620010e9575050509190925250509051949350505050565b33611000146200113c57604051630f22c43960e41b815261100060048201526024015b60405180910390fd5b6001600160a01b03808216600090815260436020908152604080832054841680845260418352818420825161016081018452815487168152600182015487169481019490945260028101549095169183019190915260038401546060830152600484018054919491608084019190620011b59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e39062009d2e565b8015620012345780601f10620012085761010080835404028352916020019162001234565b820191906000526020600020905b8154815290600101906020018083116200121657829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200125f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d9062009d2e565b8015620012de5780601f10620012b257610100808354040283529160200191620012de565b820191906000526020600020905b815481529060010190602001808311620012c057829003601f168201915b50505050508152602001600182018054620012f99062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620013279062009d2e565b8015620013785780601f106200134c5761010080835404028352916020019162001378565b820191906000526020600020905b8154815290600101906020018083116200135a57829003601f168201915b50505050508152602001600282018054620013939062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620013c19062009d2e565b8015620014125780601f10620013e65761010080835404028352916020019162001412565b820191906000526020600020905b815481529060010190602001808311620013f457829003601f168201915b505050505081526020016003820180546200142d9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200145b9062009d2e565b8015620014ac5780601f106200148057610100808354040283529160200191620014ac565b820191906000526020600020905b8154815290600101906020018083116200148e57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162001538575050509190925250505060408101519091506001600160a01b031615806200157557508060e001515b156200163257604051611002903490600081818185875af1925050503d8060008114620015bf576040519150601f19603f3d011682016040523d82523d6000602084013e620015c4565b606091505b505050816001600160a01b03167ffc8bff675087dd2da069cc3fb517b9ed001e19750c0865241a5542dba1ba170d604051620016259060208082526011908201527024a72b20a624a22fab20a624a220aa27a960791b604082015260600190565b60405180910390a2505050565b60408181015160c0830151519151632f303ebb60e11b81526001600160401b0390921660048301526001600160a01b031690635e607d769034906024016000604051808303818588803b1580156200168957600080fd5b505af11580156200169e573d6000803e3d6000fd5b5050505050816001600160a01b03167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea634604051620016df91815260200190565b60405180910390a26040808201519051633041949b60e01b815261200591633041949b91620017149190869060040162009d64565b600060405180830381600087803b1580156200172f57600080fd5b505af115801562001744573d6000803e3d6000fd5b5050505050505b50565b33611001146200177657604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff1615620017a157604051631785c68160e01b815260040160405180910390fd5b600060458383604051620017b792919062009d7e565b908152604051908190036020019020546001600160a01b03169050620017df603f8262007ddb565b620017fd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062001825620151804262009da4565b604a546000828152604b602052604090205491925011620018595760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b602052604081208054600192906200187a90849062009dc7565b909155505060405160469062001894908790879062009d7e565b908152602001604051809103902054600014158015620018e55750426201518060468787604051620018c892919062009d7e565b908152602001604051809103902054620018e3919062009dc7565b105b156200190457604051631898eb6b60e01b815260040160405180910390fd5b6000806200191485600262007dfe565b91509150816200193757604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af11580156200198a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b0919062009ddd565b9050620019be858362007e88565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb283836002604051620019fe9392919062009e0d565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162001a3c916001600160a01b0316908a9060040162009d64565b600060405180830381600087803b15801562001a5757600080fd5b505af115801562001a6c573d6000803e3d6000fd5b505050505050505050505050565b6060336120001462001aa457604051630f22c43960e41b8152612000600482015260240162001133565b60005462010000900460ff161562001acf57604051631785c68160e01b815260040160405180910390fd5b6034805460ff19166001179055604080516020601f8501819004810282018101909252838152600091829162001b209187908790819084018382808284376000920191909152506200804f92505050565b915091508062001b435760405163035ede3560e21b815260040160405180910390fd5b816060015160000362001b69575050604080516000815260208101909152905062001ddc565b606082015160405163e04c83a760e01b81526000916110049163e04c83a79162001b999160040190815260200190565b6020604051808303816000875af115801562001bb9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bdf919062009e3c565b90508062001c865782602001516001600160a01b031683600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a8560600151600160405162001c3b92919062009e5c565b60405180910390a385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965062001ddc95505050505050565b600062001c9384620081b2565b9050600081600481111562001cac5762001cac62009df7565b0362001cce575050604080516000815260208101909152925062001ddc915050565b6040516000906110049047908381818185875af1925050503d806000811462001d14576040519150601f19603f3d011682016040523d82523d6000602084013e62001d19565b606091505b505090508062001d3c576040516312171d8360e31b815260040160405180910390fd5b84602001516001600160a01b031685600001516001600160a01b03167fa9084c89a291b43bc984e045671d394974730a159b9a826b577bb148ab504c3a87606001518560405162001d8f92919062009e5c565b60405180910390a387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092985062001ddc975050505050505050565b6034805460ff191690559392505050565b600054630100000090046001600160a01b0316331462001e20576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f7fd26be6fc92aff63f1f4409b2b2ddeb272a888031d7f55ec830485ec61941869190a250565b60005462010000900460ff161562001e9a57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562001ecc5760405163b1d02c3d60e01b815260040160405180910390fd5b8062001eda603f8262007ddb565b62001ef85760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166000908152604160205260409020600a81015460ff1662001f3657604051634b6b857d60e01b815260040160405180910390fd5b6036546002820154604051630913db4760e01b81526001600160a01b03868116600483015290911690630913db4790602401602060405180830381865afa15801562001f86573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fac919062009ddd565b101562001fcc576040516317b204bf60e11b815260040160405180910390fd5b4281600b0154111562001ff25760405163170cb76760e21b815260040160405180910390fd5b600a8101805460ff1916905560498054600191906000906200201690849062009e83565b90915550506040516001600160a01b038416907f9390b453426557da5ebdc31f19a37753ca04addf656d32f35232211bb2af3f1990600090a2505050565b60005462010000900460ff16156200207f57604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620020b15760405163b1d02c3d60e01b815260040160405180910390fd5b33620020bf603f8262007ddb565b620020dd5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0382166200210557604051636520611b60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260436020526040902054161515806200214657506001600160a01b03821660009081526047602052604090205460ff165b156200216557604051631e6f587560e11b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200218b90620151809062009dc7565b1115620021ab57604051631f92cdbd60e11b815260040160405180910390fd5b80546001600160a01b039081166000908152604460209081526040808320429081905585548986166001600160a01b031991821681178855600c88019290925581855260439093528184208054958816959093168517909255519092917f6e4e747ca35203f16401c69805c7dd52fff67ef60b0ebc5c7fe16890530f223591a350505050565b600054630100000090046001600160a01b0316331462002264576040516306fbb1e360e01b815260040160405180910390fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe0db3499b7fdc3da4cddff5f45d694549c19835e7f719fb5606d3ad1a5de40119190a250565b60005462010000900460ff1615620022d857604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff16156200230a5760405163b1d02c3d60e01b815260040160405180910390fd5b8162002318603f8262007ddb565b620023365760405163056e881160e01b815260040160405180910390fd5b816000036200235857604051639811e0c760e01b815260040160405180910390fd5b6001600160a01b0380841660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620023c09062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620023ee9062009d2e565b80156200243f5780601f1062002413576101008083540402835291602001916200243f565b820191906000526020600020905b8154815290600101906020018083116200242157829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200246a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620024989062009d2e565b8015620024e95780601f10620024bd57610100808354040283529160200191620024e9565b820191906000526020600020905b815481529060010190602001808311620024cb57829003601f168201915b50505050508152602001600182018054620025049062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620025329062009d2e565b8015620025835780601f10620025575761010080835404028352916020019162002583565b820191906000526020600020905b8154815290600101906020018083116200256557829003601f168201915b505050505081526020016002820180546200259e9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620025cc9062009d2e565b80156200261d5780601f10620025f1576101008083540402835291602001916200261d565b820191906000526020600020905b815481529060010190602001808311620025ff57829003601f168201915b50505050508152602001600382018054620026389062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620026669062009d2e565b8015620026b75780601f106200268b57610100808354040283529160200191620026b7565b820191906000526020600020905b8154815290600101906020018083116200269957829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002743575050509190925250505060408082015190516326ccee8b60e11b81526001600160a01b0385811660048301526024820188905292935060009290911690634d99dd16906044016020604051808303816000875af1158015620027bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e3919062009ddd565b9050826001600160a01b0316866001600160a01b03167f3aace7340547de7b9156593a7652dc07ee900cea3fd8f82cb6c9d38b40829802878460405162002834929190918252602082015260400190565b60405180910390a3856001600160a01b0316836001600160a01b0316036200286157620028618662008808565b6040808301519051633041949b60e01b815261200591633041949b916200288e9190879060040162009d64565b600060405180830381600087803b158015620028a957600080fd5b505af1158015620028be573d6000803e3d6000fd5b50505050505050505050565b60005462010000900460ff1615620028f557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620029275760405163b1d02c3d60e01b815260040160405180910390fd5b8362002935603f8262007ddb565b620029535760405163056e881160e01b815260040160405180910390fd5b8362002961603f8262007ddb565b6200297f5760405163056e881160e01b815260040160405180910390fd5b6034805460ff191660011790556000849003620029af57604051639811e0c760e01b815260040160405180910390fd5b846001600160a01b0316866001600160a01b031603620029e25760405163f0e3e62960e01b815260040160405180910390fd5b6001600160a01b038087166000908152604160209081526040808320815161016081018352815486168152600182015486169381019390935260028101549094169082015260038301546060820152600483018054339491608084019162002a4a9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002a789062009d2e565b801562002ac95780601f1062002a9d5761010080835404028352916020019162002ac9565b820191906000526020600020905b81548152906001019060200180831162002aab57829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002af49062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002b229062009d2e565b801562002b735780601f1062002b475761010080835404028352916020019162002b73565b820191906000526020600020905b81548152906001019060200180831162002b5557829003601f168201915b5050505050815260200160018201805462002b8e9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002bbc9062009d2e565b801562002c0d5780601f1062002be15761010080835404028352916020019162002c0d565b820191906000526020600020905b81548152906001019060200180831162002bef57829003601f168201915b5050505050815260200160028201805462002c289062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002c569062009d2e565b801562002ca75780601f1062002c7b5761010080835404028352916020019162002ca7565b820191906000526020600020905b81548152906001019060200180831162002c8957829003601f168201915b5050505050815260200160038201805462002cc29062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002cf09062009d2e565b801562002d415780601f1062002d155761010080835404028352916020019162002d41565b820191906000526020600020905b81548152906001019060200180831162002d2357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162002dcd57505050919092525050506001600160a01b0380891660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162002e589062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002e869062009d2e565b801562002ed75780601f1062002eab5761010080835404028352916020019162002ed7565b820191906000526020600020905b81548152906001019060200180831162002eb957829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462002f029062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002f309062009d2e565b801562002f815780601f1062002f555761010080835404028352916020019162002f81565b820191906000526020600020905b81548152906001019060200180831162002f6357829003601f168201915b5050505050815260200160018201805462002f9c9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462002fca9062009d2e565b80156200301b5780601f1062002fef576101008083540402835291602001916200301b565b820191906000526020600020905b81548152906001019060200180831162002ffd57829003601f168201915b50505050508152602001600282018054620030369062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620030649062009d2e565b8015620030b55780601f106200308957610100808354040283529160200191620030b5565b820191906000526020600020905b8154815290600101906020018083116200309757829003601f168201915b50505050508152602001600382018054620030d09062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620030fe9062009d2e565b80156200314f5780601f1062003123576101008083540402835291602001916200314f565b820191906000526020600020905b8154815290600101906020018083116200313157829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620031db5750505050508152505090508060e0015180156200321e5750876001600160a01b0316836001600160a01b031614155b156200323d57604051636468920360e01b815260040160405180910390fd5b60408083015190516352e82ce560e11b81526001600160a01b038581166004830152602482018a9052600092169063a5d059ca906044016020604051808303816000875af115801562003294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032ba919062009ddd565b9050603754811015620032e05760405163dc6f0bdd60e01b815260040160405180910390fd5b896001600160a01b0316846001600160a01b03161480156200337557506036546040808501519051630913db4760e01b81526001600160a01b038d8116600483015290911690630913db4790602401602060405180830381865afa1580156200334d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003373919062009ddd565b105b1562003394576040516317b204bf60e11b815260040160405180910390fd5b6000612710603a5483620033a9919062009e99565b620033b5919062009da4565b9050600083604001516001600160a01b03168260405160006040518083038185875af1925050503d80600081146200340a576040519150601f19603f3d011682016040523d82523d6000602084013e6200340f565b606091505b505090508062003432576040516312171d8360e31b815260040160405180910390fd5b6200343e828462009e83565b60408086015190516317066a5760e21b81526001600160a01b03898116600483015292955060009290911690635c19a95c90869060240160206040518083038185885af115801562003494573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620034bb919062009ddd565b9050866001600160a01b03168c6001600160a01b03168e6001600160a01b03167ffdac6e81913996d95abcc289e90f2d8bd235487ce6fe6f821e7d21002a1915b48e858960405162003520939291909283526020830191909152604082015260600190565b60405180910390a460408051600280825260608201835260009260208301908036833701905050905086604001518160008151811062003564576200356462009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250508560400151816001815181106200359f576200359f62009eb3565b6001600160a01b0390921660209283029190910190910152604051634484077560e01b815261200590634484077590620035e09084908c9060040162009ec9565b600060405180830381600087803b158015620035fb57600080fd5b505af115801562003610573d6000803e3d6000fd5b505050508a1562003682576120056001600160a01b031663e5ed5b1e898f6040518363ffffffff1660e01b81526004016200364d92919062009d64565b600060405180830381600087803b1580156200366857600080fd5b505af11580156200367d573d6000803e3d6000fd5b505050505b50506034805460ff19169055505050505050505050505050565b60005462010000900460ff1615620036c757604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620036f95760405163b1d02c3d60e01b815260040160405180910390fd5b3362003707603f8262007ddb565b620037255760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c81015442906200374b90620151809062009dc7565b11156200376b57604051631f92cdbd60e11b815260040160405180910390fd5b60098101546001600160401b03600160401b90910481169085161115620037a55760405163dc81db8560e01b815260040160405180910390fd5b60098101546000906001600160401b039081169086161015620037e3576009820154620037dd9086906001600160401b031662009ef5565b620037fd565b6009820154620037fd906001600160401b03168662009ef5565b60098301546001600160401b039182169250600160801b900416811115620038385760405163dc81db8560e01b815260040160405180910390fd5b60098201805467ffffffffffffffff19166001600160401b03871690811790915542600c8401556040519081526001600160a01b038416907f78cdd96edf59e09cfd4d26ef6ef6c92d166effe6a40970c54821206d541932cb9060200160405180910390a25050505050565b60608060606000620038b7603f6200892e565b90508086101562003f2d578415620038d05784620038d2565b805b9450600085620038e3888462009e83565b11620038fb57620038f5878362009e83565b620038fd565b855b9050806001600160401b038111156200391a576200391a620095b1565b60405190808252806020026020018201604052801562003944578160200160208202803683370190505b509450806001600160401b03811115620039625762003962620095b1565b6040519080825280602002602001820160405280156200398c578160200160208202803683370190505b509350806001600160401b03811115620039aa57620039aa620095b1565b604051908082528060200260200182016040528015620039df57816020015b6060815260200190600190039081620039c95790505b50925060005b8181101562003f2a57600062003a0962003a00838b62009dc7565b603f9062008939565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549495509193909291608084019162003a769062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003aa49062009d2e565b801562003af55780601f1062003ac95761010080835404028352916020019162003af5565b820191906000526020600020905b81548152906001019060200180831162003ad757829003601f168201915b505050505081526020016005820160405180608001604052908160008201805462003b209062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003b4e9062009d2e565b801562003b9f5780601f1062003b735761010080835404028352916020019162003b9f565b820191906000526020600020905b81548152906001019060200180831162003b8157829003601f168201915b5050505050815260200160018201805462003bba9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003be89062009d2e565b801562003c395780601f1062003c0d5761010080835404028352916020019162003c39565b820191906000526020600020905b81548152906001019060200180831162003c1b57829003601f168201915b5050505050815260200160028201805462003c549062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003c829062009d2e565b801562003cd35780601f1062003ca75761010080835404028352916020019162003cd3565b820191906000526020600020905b81548152906001019060200180831162003cb557829003601f168201915b5050505050815260200160038201805462003cee9062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462003d1c9062009d2e565b801562003d6d5780601f1062003d415761010080835404028352916020019162003d6d565b820191906000526020600020905b81548152906001019060200180831162003d4f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162003df9575050505050815250509050806000015188848151811062003e325762003e3262009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250508060e0015162003ecb5780604001516001600160a01b03166315d1f8986040518163ffffffff1660e01b8152600401602060405180830381865afa15801562003e9f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003ec5919062009ddd565b62003ece565b60005b87848151811062003ee35762003ee362009eb3565b602002602001018181525050806080015186848151811062003f095762003f0962009eb3565b602002602001018190525050508062003f229062009f18565b9050620039e5565b50505b92959194509250565b60005462010000900460ff161562003f6157604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562003f935760405163b1d02c3d60e01b815260040160405180910390fd5b3362003fa1603f8262007ddb565b1562003fc057604051635f28f62b60e01b815260040160405180910390fd5b6001600160a01b03888116600090815260436020526040902054161515806200400157506001600160a01b03881660009081526047602052604090205460ff165b156200402057604051631e6f587560e11b815260040160405180910390fd5b60006001600160a01b0316604588886040516200403f92919062009d7e565b908152604051908190036020019020546001600160a01b0316141580620040895750604887876040516200407592919062009d7e565b9081526040519081900360200190205460ff165b15620040a8576040516311fdb94760e01b815260040160405180910390fd5b6000620040b6838062009f34565b604051602001620040c992919062009d7e565b60408051601f1981840301815291815281516020928301206000818152604290935291205490915060ff1615620041135760405163c0bf414360e01b815260040160405180910390fd5b600062004129670de0b6b3a76400003462009e83565b90506036548110156200414f576040516317b204bf60e11b815260040160405180910390fd5b6001600160a01b038a166200417757604051636520611b60e11b815260040160405180910390fd5b6113886200418c604087016020880162009795565b6001600160401b03161180620041d25750620041af604086016020870162009795565b6001600160401b0316620041c7602087018762009795565b6001600160401b0316115b80620042115750620041eb604086016020870162009795565b6001600160401b031662004206606087016040880162009795565b6001600160401b0316115b15620042305760405163dc81db8560e01b815260040160405180910390fd5b6200427b62004240858062009f34565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506200894792505050565b6200429957604051635dba5ad760e01b815260040160405180910390fd5b620042a8838a8a8a8a62008ae9565b620042c657604051631647e3cb60e11b815260040160405180910390fd5b60006200431484620042d9878062009f34565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062008c1992505050565b905062004323603f8562008d1a565b506000838152604260209081526040808320805460ff191660019081179091556001600160a01b0380891680865260419094529190932080548f83166001600160a01b031991821617825593810180548516909317909255600282018054918516919093161790915542600382015560048101620043a38b8d8362009fdc565b508560058201620043b582826200a0a4565b5087905060098201620043c982826200a1dd565b505042600c8201556001600160a01b038c81166000908152604360205260409081902080546001600160a01b0319169288169290921790915551859060459062004417908e908e9062009d7e565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316856001600160a01b03168d6001600160a01b03167faecd9fb95e79c75a3a1de93362c6be5fe6ab65770d8614be583884161cd8228d8e8e6040516200449a9291906200a2ad565b60405180910390a460408051848152602081018590526001600160a01b0387169182916000805160206200b7b4833981519152910160405180910390a360408051670de0b6b3a7640000808252602082015261dead916001600160a01b038816916000805160206200b7b4833981519152910160405180910390a3604051633041949b60e01b815261200590633041949b906200453e908590899060040162009d64565b600060405180830381600087803b1580156200455957600080fd5b505af11580156200456e573d6000803e3d6000fd5b50505050505050505050505050505050565b604080516060810182526000808252602082018190529181019190915281620045ab603f8262007ddb565b620045c95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602090815260409182902082516060810184526009909101546001600160401b038082168352600160401b8204811693830193909352600160801b90049091169181019190915291505b50919050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082810191909152600484018054919491608084019190620046979062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620046c59062009d2e565b8015620047165780601f10620046ea5761010080835404028352916020019162004716565b820191906000526020600020905b815481529060010190602001808311620046f857829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620047419062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200476f9062009d2e565b8015620047c05780601f106200479457610100808354040283529160200191620047c0565b820191906000526020600020905b815481529060010190602001808311620047a257829003601f168201915b50505050508152602001600182018054620047db9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620048099062009d2e565b80156200485a5780601f106200482e576101008083540402835291602001916200485a565b820191906000526020600020905b8154815290600101906020018083116200483c57829003601f168201915b50505050508152602001600282018054620048759062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620048a39062009d2e565b8015620048f45780601f10620048c857610100808354040283529160200191620048f4565b820191906000526020600020905b815481529060010190602001808311620048d657829003601f168201915b505050505081526020016003820180546200490f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200493d9062009d2e565b80156200498e5780601f1062004962576101008083540402835291602001916200498e565b820191906000526020600020905b8154815290600101906020018083116200497057829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162004a1a5750505091909252505050608001519392505050565b336110011462004a6b57604051630f22c43960e41b8152611001600482015260240162001133565b6001600160a01b038082166000908152604360205260409020541662004a93603f8262007ddb565b62004ab15760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038181166000908152604160205260408082206002810154603b54925163045bc4d160e41b81526004810193909352909316906345bc4d10906024016020604051808303816000875af115801562004b14573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004b3a919062009ddd565b90506000603d544262004b4e919062009dc7565b905062004b5c838262007e88565b836001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28284600160405162004b9c9392919062009e0d565b60405180910390a26002830154604051633041949b60e01b815261200591633041949b9162004bda916001600160a01b031690889060040162009d64565b600060405180830381600087803b15801562004bf557600080fd5b505af115801562004c0a573d6000803e3d6000fd5b505050505050505050565b600054610100900460ff161580801562004c365750600054600160ff909116105b8062004c525750303b15801562004c52575060005460ff166001145b62004cb75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162001133565b6000805460ff19166001179055801562004cdb576000805461ff0019166101001790555b33411462004cfc5760405163022d8c9560e31b815260040160405180910390fd5b3a1562004d1c576040516383f1b1d360e01b815260040160405180910390fd5b611388603555686c6b935b8bbd400000603655670de0b6b3a7640000603755600960385562093a806039556002603a819055678ac7230489e80000603b55680ad78ebc5ac6200000603c556202a300603d5562069780603e55604a5560408051610220810190915261020080825260609182916200b5b4602083013980602001905181019062004dad91906200a2e9565b915060405180610360016040528061034081526020016200b7d4610340913980602001905181019062004de191906200a38d565b905060005b825181101562004e505760016047600085848151811062004e0b5762004e0b62009eb3565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905562004e488162009f18565b905062004de6565b5060005b815181101562004ec1576001604883838151811062004e775762004e7762009eb3565b602002602001015160405162004e8e91906200a48a565b908152604051908190036020019020805491151560ff1990921691909117905562004eb98162009f18565b905062004e54565b5062004ee17330151da466ec8ab345bef3d6983023e050fb067362008d31565b505080156200174b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b336120001462004f5457604051630f22c43960e41b8152612000600482015260240162001133565b7faa5ba621c8b3d7d05bb9e51a7506108251d4d5dbe542ca66fc7bb52aacb02b6583838360405162004f89939291906200a4a8565b60405180910390a1505050565b600054630100000090046001600160a01b0316331462004fc9576040516306fbb1e360e01b815260040160405180910390fd5b60005462010000900460ff161562004ff457604051631785c68160e01b815260040160405180910390fd5b6000805462ff00001916620100001781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006200503d603f8462007ddb565b6200505b5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b0383811660009081526041602052604090819020600201549051636bbf224960e01b815260048101859052911690636bbf2249906024015b602060405180830381865afa158015620050b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620050de919062009ddd565b90505b92915050565b60005462010000900460ff16156200511257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620051445760405163b1d02c3d60e01b815260040160405180910390fd5b8162005152603f8262007ddb565b620051705760405163056e881160e01b815260040160405180910390fd5b6037543490811015620051965760405163dc6f0bdd60e01b815260040160405180910390fd5b6001600160a01b0380851660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180543394916080840191620051fe9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200522c9062009d2e565b80156200527d5780601f1062005251576101008083540402835291602001916200527d565b820191906000526020600020905b8154815290600101906020018083116200525f57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620052a89062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620052d69062009d2e565b8015620053275780601f10620052fb5761010080835404028352916020019162005327565b820191906000526020600020905b8154815290600101906020018083116200530957829003601f168201915b50505050508152602001600182018054620053429062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620053709062009d2e565b8015620053c15780601f106200539557610100808354040283529160200191620053c1565b820191906000526020600020905b815481529060010190602001808311620053a357829003601f168201915b50505050508152602001600282018054620053dc9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200540a9062009d2e565b80156200545b5780601f106200542f576101008083540402835291602001916200545b565b820191906000526020600020905b8154815290600101906020018083116200543d57829003601f168201915b50505050508152602001600382018054620054769062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620054a49062009d2e565b8015620054f55780601f10620054c957610100808354040283529160200191620054f5565b820191906000526020600020905b815481529060010190602001808311620054d757829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620055815750505050508152505090508060e001518015620055c45750856001600160a01b0316826001600160a01b031614155b15620055e357604051636468920360e01b815260040160405180910390fd5b60408082015190516317066a5760e21b81526001600160a01b0384811660048301526000921690635c19a95c90869060240160206040518083038185885af115801562005634573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906200565b919062009ddd565b9050826001600160a01b0316876001600160a01b03166000805160206200b7b483398151915283876040516200569b929190918252602082015260400190565b60405180910390a36040808301519051633041949b60e01b815261200591633041949b91620056d09190879060040162009d64565b600060405180830381600087803b158015620056eb57600080fd5b505af115801562005700573d6000803e3d6000fd5b50505050851562001744576040516372f6ad8f60e11b81526120059063e5ed5b1e90620057349086908b9060040162009d64565b600060405180830381600087803b1580156200574f57600080fd5b505af115801562005764573d6000803e3d6000fd5b5050505050505050505050565b6200579d6040518060800160405280606081526020016060815260200160608152602001606081525090565b81620057ab603f8262007ddb565b620057c95760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03831660009081526041602052604090819020815160808101909252600501805482908290620058009062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200582e9062009d2e565b80156200587f5780601f1062005853576101008083540402835291602001916200587f565b820191906000526020600020905b8154815290600101906020018083116200586157829003601f168201915b505050505081526020016001820180546200589a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620058c89062009d2e565b8015620059195780601f10620058ed5761010080835404028352916020019162005919565b820191906000526020600020905b815481529060010190602001808311620058fb57829003601f168201915b50505050508152602001600282018054620059349062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620059629062009d2e565b8015620059b35780601f106200598757610100808354040283529160200191620059b3565b820191906000526020600020905b8154815290600101906020018083116200599557829003601f168201915b50505050508152602001600382018054620059ce9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620059fc9062009d2e565b801562005a4d5780601f1062005a215761010080835404028352916020019162005a4d565b820191906000526020600020905b81548152906001019060200180831162005a2f57829003601f168201915b505050505081525050915050919050565b60005462010000900460ff161562005a8957604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562005abb5760405163b1d02c3d60e01b815260040160405180910390fd5b62005ac7828262008dca565b5050565b336110071462005af357604051630f22c43960e41b8152611007600482015260240162001133565b62005b606040518060400160405280601081526020016f1d1c985b9cd9995c91d85cd31a5b5a5d60821b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005c1b576020811462005b925783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005bd591858580838501838280828437600092019190915250929392505062008f339050565b90506108fc81108062005be9575061271081115b1562005c125784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60355562006925565b62005c8c6040518060400160405280601481526020017336b4b729b2b6332232b632b3b0ba34b7b721272160611b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005d56576020811462005cbe5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005d0191858580838501838280828437600092019190915250929392505062008f339050565b9050683635c9adc5dea0000081108062005d24575069152d02c7e14af680000081115b1562005d4d5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60365562006925565b62005dc9604051806040016040528060168152602001756d696e44656c65676174696f6e424e424368616e676560501b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005e90576020811462005dfb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005e3e91858580838501838280828437600092019190915250929392505062008f339050565b905067016345785d8a000081108062005e5e5750678ac7230489e8000081115b1562005e875784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60375562006925565b62005f01604051806040016040528060148152602001736d6178456c656374656456616c696461746f727360601b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b1562005fb9576020811462005f335783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f840181900481028201810190925282815260009162005f7691858580838501838280828437600092019190915250929392505062008f339050565b905080158062005f8757506101f481115b1562005fb05784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60385562006925565b620060226040518060400160405280600c81526020016b1d5b989bdb9914195c9a5bd960a21b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620060df5760208114620060545783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200609791858580838501838280828437600092019190915250929392505062008f339050565b90506203f480811080620060ad575062278d0081115b15620060d65784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b60395562006925565b6200614d60405180604001604052806011815260200170726564656c65676174654665655261746560781b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620061fa57602081146200617f5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f8401819004810282018101909252828152600091620061c291858580838501838280828437600092019190915250929392505062008f339050565b90506064811115620061f15784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603a5562006925565b6200626a60405180604001604052806013815260200172191bdddb9d1a5b5954db185cda105b5bdd5b9d606a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b156200632b57602081146200629c5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f8401819004810282018101909252828152600091620062df91858580838501838280828437600092019190915250929392505062008f339050565b9050674563918244f40000811080620062f95750603c5481115b15620063225784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603b5562006925565b620063996040518060400160405280601181526020017019995b1bdb9e54db185cda105b5bdd5b9d607a1b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b156200645c5760208114620063cb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200640e91858580838501838280828437600092019190915250929392505062008f339050565b905068056bc75e2d631000008110806200642a5750603b548111155b15620064535784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603c5562006925565b620064c96040518060400160405280601081526020016f646f776e74696d654a61696c54696d6560801b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620065865760208114620064fb5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200653e91858580838501838280828437600092019190915250929392505062008f339050565b90506202a300811080620065545750603e548110155b156200657d5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603d5562006925565b620065f16040518060400160405280600e81526020016d66656c6f6e794a61696c54696d6560901b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620066ae5760208114620066235783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200666691858580838501838280828437600092019190915250929392505062008f339050565b9050620d2f008110806200667c5750603d548111155b15620066a55784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b603e5562006925565b620067286040518060400160405280601c81526020017f6d617846656c6f6e794265747765656e42726561746865426c6f636b0000000081525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620067d457602081146200675a5783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b604080516020601f84018190048102820181019092528281526000916200679d91858580838501838280828437600092019190915250929392505062008f339050565b905080600003620067cb5784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b604a5562006925565b620068426040518060400160405280601181526020017039ba30b5b2a43ab1283937ba32b1ba37b960791b81525085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008ed69050565b15620069025760148114620068745783838383604051630a5a604160e01b81526004016200113394939291906200a4c7565b6000620068bc601484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505062008f339050565b90506001600160a01b038116620068f05784848484604051630a5a604160e01b81526004016200113394939291906200a4c7565b620068fb8162008f38565b5062006925565b838383836040516325ee20d560e21b81526004016200113394939291906200a4c7565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e633848484846040516200695c94939291906200a4c7565b60405180910390a150505050565b60005462010000900460ff16156200699557604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620069c75760405163b1d02c3d60e01b815260040160405180910390fd5b816000816001600160401b03811115620069e557620069e5620095b1565b60405190808252806020026020018201604052801562006a0f578160200160208202803683370190505b5090506000805b8381101562006b0d5762006a5887878381811062006a385762006a3862009eb3565b905060200201602081019062006a4f919062009440565b603f9062007ddb565b62006a765760405163056e881160e01b815260040160405180910390fd5b6041600088888481811062006a8f5762006a8f62009eb3565b905060200201602081019062006aa6919062009440565b6001600160a01b039081168252602082019290925260400160002060020154845191169250829084908390811062006ae25762006ae262009eb3565b6001600160a01b039092166020928302919091019091015262006b058162009f18565b905062006a16565b50604051634484077560e01b8152612005906344840775906200288e908590889060040162009ec9565b606080600062006b48603f6200892e565b90508085101562006d0c57831562006b61578362006b63565b805b935060008462006b74878462009e83565b1162006b8c5762006b86868362009e83565b62006b8e565b845b9050806001600160401b0381111562006bab5762006bab620095b1565b60405190808252806020026020018201604052801562006bd5578160200160208202803683370190505b509350806001600160401b0381111562006bf35762006bf3620095b1565b60405190808252806020026020018201604052801562006c1d578160200160208202803683370190505b50925060005b8181101562006d095762006c3c62003a00828962009dc7565b85828151811062006c515762006c5162009eb3565b60200260200101906001600160a01b031690816001600160a01b0316815250506041600086838151811062006c8a5762006c8a62009eb3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160009054906101000a90046001600160a01b031684828151811062006cde5762006cde62009eb3565b6001600160a01b039092166020928302919091019091015262006d018162009f18565b905062006c23565b50505b9250925092565b336110011462006d3b57604051630f22c43960e41b8152611001600482015260240162001133565b60005462010000900460ff161562006d6657604051631785c68160e01b815260040160405180910390fd5b6001600160a01b038082166000908152604360205260409020541662006d8e603f8262007ddb565b62006dac5760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03811660009081526041602052604081209062006dd4620151804262009da4565b604a546000828152604b60205260409020549192501162006e085760405163bd52fcdb60e01b815260040160405180910390fd5b6000818152604b6020526040812080546001929062006e2990849062009dc7565b90915550506001600160a01b0384166000908152604460205260409020541580159062006e7e57506001600160a01b038416600090815260446020526040902054429062006e7c90620151809062009dc7565b105b1562006e9d576040516330abb81d60e21b815260040160405180910390fd5b60008062006ead85600062007dfe565b915091508162006ed057604051631b919bb160e11b815260040160405180910390fd5b6002840154603c5460405163045bc4d160e41b815260048101919091526000916001600160a01b0316906345bc4d10906024016020604051808303816000875af115801562006f23573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062006f49919062009ddd565b905062006f57858362007e88565b856001600160a01b03167f6e9a2ee7aee95665e3a774a212eb11441b217e3e4656ab9563793094689aabb28383600060405162006f979392919062009e0d565b60405180910390a26002850154604051633041949b60e01b815261200591633041949b9162005734916001600160a01b0316908a9060040162009d64565b6001600160a01b0380821660009081526041602090815260408083208151610160810183528154861681526001820154861693810193909352600281015490941690820152600383015460608201526004830180549293849384938493909291608084019190620070469062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620070749062009d2e565b8015620070c55780601f106200709957610100808354040283529160200191620070c5565b820191906000526020600020905b815481529060010190602001808311620070a757829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620070f09062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200711e9062009d2e565b80156200716f5780601f1062007143576101008083540402835291602001916200716f565b820191906000526020600020905b8154815290600101906020018083116200715157829003601f168201915b505050505081526020016001820180546200718a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620071b89062009d2e565b8015620072095780601f10620071dd5761010080835404028352916020019162007209565b820191906000526020600020905b815481529060010190602001808311620071eb57829003601f168201915b50505050508152602001600282018054620072249062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620072529062009d2e565b8015620072a35780601f106200727757610100808354040283529160200191620072a3565b820191906000526020600020905b8154815290600101906020018083116200728557829003601f168201915b50505050508152602001600382018054620072be9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620072ec9062009d2e565b80156200733d5780601f1062007311576101008083540402835291602001916200733d565b820191906000526020600020905b8154815290600101906020018083116200731f57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620073c95750505091909252505050606081015160e0820151610100909201519097919650945092505050565b60005462010000900460ff16156200743057604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620074625760405163b1d02c3d60e01b815260040160405180910390fd5b3362007470603f8262007ddb565b6200748e5760405163056e881160e01b815260040160405180910390fd5b336000818152604160205260409020600c8101544290620074b490620151809062009dc7565b1115620074d457604051631f92cdbd60e11b815260040160405180910390fd5b600581018054620074e59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620075139062009d2e565b8015620075645780601f10620075385761010080835404028352916020019162007564565b820191906000526020600020905b8154815290600101906020018083116200754657829003601f168201915b50505082875250859160058401915081906200758190826200a4f2565b50602082015160018201906200759890826200a4f2565b5060408201516002820190620075af90826200a4f2565b5060608201516003820190620075c690826200a4f2565b505042600c830155506040516001600160a01b038316907f85d6366b336ade7f106987ec7a8eac1e8799e508aeab045a39d2f63e0dc969d990600090a250505050565b60005462010000900460ff16156200763457604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff1615620076665760405163b1d02c3d60e01b815260040160405180910390fd5b82811462007687576040516341abc80160e01b815260040160405180910390fd5b60005b83811015620076f857620076e5858583818110620076ac57620076ac62009eb3565b9050602002016020810190620076c3919062009440565b848484818110620076d857620076d862009eb3565b9050602002013562008dca565b620076f08162009f18565b90506200768a565b5050505050565b6001600160a01b03808216600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492938493909160808401916200776a9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620077989062009d2e565b8015620077e95780601f10620077bd57610100808354040283529160200191620077e9565b820191906000526020600020905b815481529060010190602001808311620077cb57829003601f168201915b5050505050815260200160058201604051806080016040529081600082018054620078149062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620078429062009d2e565b8015620078935780601f10620078675761010080835404028352916020019162007893565b820191906000526020600020905b8154815290600101906020018083116200787557829003601f168201915b50505050508152602001600182018054620078ae9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620078dc9062009d2e565b80156200792d5780601f1062007901576101008083540402835291602001916200792d565b820191906000526020600020905b8154815290600101906020018083116200790f57829003601f168201915b50505050508152602001600282018054620079489062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620079769062009d2e565b8015620079c75780601f106200799b57610100808354040283529160200191620079c7565b820191906000526020600020905b815481529060010190602001808311620079a957829003601f168201915b50505050508152602001600382018054620079e29062009d2e565b80601f016020809104026020016040519081016040528092919081815260200182805462007a109062009d2e565b801562007a615780601f1062007a355761010080835404028352916020019162007a61565b820191906000526020600020905b81548152906001019060200180831162007a4357829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b81548152602001906001019080831162007aed5750505091909252505050604001519392505050565b600062007b25603f8462007ddb565b62007b435760405163056e881160e01b815260040160405180910390fd5b6001600160a01b038381166000908152604160205260409081902060020154905163aa1966cd60e01b81526004810185905291169063aa1966cd906024016200509a565b60005462010000900460ff161562007bb257604051631785c68160e01b815260040160405180910390fd5b3360009081526001602052604090205460ff161562007be45760405163b1d02c3d60e01b815260040160405180910390fd5b3362007bf2603f8262007ddb565b62007c105760405163056e881160e01b815260040160405180910390fd5b3362007c20818787878762008ae9565b62007c3e57604051631647e3cb60e11b815260040160405180910390fd5b60006001600160a01b03166045878760405162007c5d92919062009d7e565b908152604051908190036020019020546001600160a01b031614158062007ca757506048868660405162007c9392919062009d7e565b9081526040519081900360200190205460ff165b1562007cc6576040516311fdb94760e01b815260040160405180910390fd5b6001600160a01b0381166000908152604160205260409020600c810154429062007cf590620151809062009dc7565b111562007d1557604051631f92cdbd60e11b815260040160405180910390fd5b4260468260040160405162007d2b91906200a5ba565b908152604051908190036020019020556004810162007d4c87898362009fdc565b5042600c820155604051829060459062007d6a908a908a9062009d7e565b90815260405190819003602001812080546001600160a01b039384166001600160a01b0319909116179055908316907f783156582145bd0ff7924fae6953ba054cf1233eb60739a200ddb10de068ff0d9062007dca908a908a906200a2ad565b60405180910390a250505050505050565b6001600160a01b03811660009081526001830160205260408120541515620050de565b6000806000848460405160200162007e189291906200a638565b60408051601f1981840301815291815281516020928301206000818152604c9093529120549091504281111562007e585760008093509350505062007e81565b603e5462007e67904262009dc7565b6000928352604c6020526040909220829055506001925090505b9250929050565b8154604051631507fdb760e11b81526001600160a01b03909116600482015261100090632a0ffb6e90602401600060405180830381600087803b15801562007ecf57600080fd5b505af115801562007ee4573d6000803e3d6000fd5b505050506000600162007ef8603f6200892e565b62007f04919062009e83565b604954108015915062007fc25760405163d31f968d60e01b81526110006004820152600860248201526120009063d31f968d90604401602060405180830381865afa15801562007f58573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062007f7e919062009e3c565b62007fc25760018301546040516001600160a01b03909116907f2afdc18061ac21cff7d9f11527ab9c8dec6fabd4edf6f894ed634bebd6a20d4590600090a2505050565b82600b015482111562007fd757600b83018290555b600a83015460ff166200804a57600a8301805460ff19166001908117909155604980546000906200800a90849062009dc7565b909155505060018301546040516001600160a01b03909116907f4905ac32602da3fb8b4b7b00c285e5fc4c6c2308cc908b4a1e4e9625a29c90a390600090a25b505050565b60408051608080820183526000808352602080840182905283850182905260608085018390528551938401865282845283820183905283860183905283018290528451808601865282815281018290528451808601909552855185528581019085015291928290620080c19062008fa4565b90506000805b620080d28362009017565b15620081a557806000036200810757620080f6620080f0846200903d565b620090a1565b6001600160a01b0316845262008192565b8060010362008133576200811f620080f0846200903d565b6001600160a01b0316602085015262008192565b806002036200815f576200814b620080f0846200903d565b6001600160a01b0316604085015262008192565b806003036200818c576200817d62008177846200903d565b620090b9565b60608501526001915062008192565b620081a5565b6200819d8162009f18565b9050620080c7565b5091959194509092505050565b6020808201516001600160a01b031660009081526001909152604081205460ff1680620081ea575060208201516001600160a01b0316155b15620081f857506004919050565b81516200820890603f9062007ddb565b6200821557506002919050565b81516001600160a01b03908116600090815260416020908152604080832081516101608101835281548616815260018201548616938101939093526002810154909416908201526003830154606082015260048301805492939192608084019190620082819062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620082af9062009d2e565b8015620083005780601f10620082d45761010080835404028352916020019162008300565b820191906000526020600020905b815481529060010190602001808311620082e257829003601f168201915b50505050508152602001600582016040518060800160405290816000820180546200832b9062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620083599062009d2e565b8015620083aa5780601f106200837e57610100808354040283529160200191620083aa565b820191906000526020600020905b8154815290600101906020018083116200838c57829003601f168201915b50505050508152602001600182018054620083c59062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620083f39062009d2e565b8015620084445780601f10620084185761010080835404028352916020019162008444565b820191906000526020600020905b8154815290600101906020018083116200842657829003601f168201915b505050505081526020016002820180546200845f9062009d2e565b80601f01602080910402602001604051908101604052809291908181526020018280546200848d9062009d2e565b8015620084de5780601f10620084b257610100808354040283529160200191620084de565b820191906000526020600020905b815481529060010190602001808311620084c057829003601f168201915b50505050508152602001600382018054620084f99062009d2e565b80601f0160208091040260200160405190810160405280929190818152602001828054620085279062009d2e565b8015620085785780601f106200854c5761010080835404028352916020019162008578565b820191906000526020600020905b8154815290600101906020018083116200855a57829003601f168201915b505050919092525050508152604080516060808201835260098501546001600160401b038082168452600160401b82048116602080860191909152600160801b9092041683850152840191909152600a84015460ff16151582840152600b84015490830152600c8301546080830152805161028081019182905260a09092019190600d84019060149082845b815481526020019060010190808311620086045750505050508152505090508060e0015180156200864f575082600001516001600160a01b031683602001516001600160a01b031614155b156200865e5750600392915050565b6040808201516060850151602086015192516317066a5760e21b81526001600160a01b03938416600482015260009390921691635c19a95c919060240160206040518083038185885af1158015620086ba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190620086e1919062009ddd565b905083602001516001600160a01b031684600001516001600160a01b03166000805160206200b7b48339815191528387606001516040516200872d929190918252602082015260400190565b60405180910390a383602001516001600160a01b031684600001516001600160a01b03167f607b17598da6bdca05650a2fc08bd2bc8e38c3236806a0fa8e0daabc1d6cb1d883876060015160405162008790929190918252602082015260400190565b60405180910390a360408083015160208601519151633041949b60e01b815261200592633041949b92620087ca9290919060040162009d64565b600060405180830381600087803b158015620087e557600080fd5b505af1158015620087fa573d6000803e3d6000fd5b506000979650505050505050565b6001600160a01b0381166000908152604160205260409020600a81015460ff161562008832575050565b6036546002820154604051630913db4760e01b81526001600160a01b03858116600483015290911690630913db4790602401602060405180830381865afa15801562008882573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620088a8919062009ddd565b101562005ac757620088ca81603d5442620088c4919062009dc7565b62007e88565b80546040516335409f7f60e01b81526001600160a01b039091166004820152611000906335409f7f90602401600060405180830381600087803b1580156200891157600080fd5b505af115801562008926573d6000803e3d6000fd5b505050505050565b6000620050e1825490565b6000620050de838362009191565b6000808290506003815110806200895f575060098151115b156200896e5750600092915050565b60418160008151811062008986576200898662009eb3565b016020015160f81c1080620089b85750605a81600081518110620089ae57620089ae62009eb3565b016020015160f81c115b15620089c75750600092915050565b60015b815181101562008adf576030828281518110620089eb57620089eb62009eb3565b016020015160f81c108062008a1c5750603982828151811062008a125762008a1262009eb3565b016020015160f81c115b801562008a6c5750604182828151811062008a3b5762008a3b62009eb3565b016020015160f81c108062008a6c5750605a82828151811062008a625762008a6262009eb3565b016020015160f81c115b801562008abc5750606182828151811062008a8b5762008a8b62009eb3565b016020015160f81c108062008abc5750607a82828151811062008ab25762008ab262009eb3565b016020015160f81c115b1562008acc575060009392505050565b62008ad78162009f18565b9050620089ca565b5060019392505050565b600060308414158062008afd575060608214155b1562008b0c5750600062008c10565b60008686864660405160200162008b2794939291906200a676565b60408051808303601f1901815282825280516020918201208184528383019092529092506000919060208201818036833701905050905081602082015260008186868a8a60405160200162008b819594939291906200a6a3565b60408051808303601f190181526001808452838301909252925060009190602082018180368337019050509050815160016020830182602086016066600019fa62008bcb57600080fd5b5060008160008151811062008be45762008be462009eb3565b016020015160f81c90506001811462008c065760009550505050505062008c10565b6001955050505050505b95945050505050565b60008061200361dead60405162008c30906200941c565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562008c73573d6000803e3d6000fd5b509050806001600160a01b031663f399e22e3486866040518463ffffffff1660e01b815260040162008ca79291906200a6db565b6000604051808303818588803b15801562008cc157600080fd5b505af115801562008cd6573d6000803e3d6000fd5b50506040516001600160a01b038086169450881692507fd481492e4e93bb36b4c12a5af93f03be3bf04b454dfbc35dd2663fa26f44d5b09150600090a39392505050565b6000620050de836001600160a01b038416620091be565b600054610100900460ff1662008d9e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162001133565b600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b8162008dd8603f8262007ddb565b62008df65760405163056e881160e01b815260040160405180910390fd5b6001600160a01b03838116600090815260416020526040808220600201549051635569f64b60e11b8152336004820152602481018690529192169063aad3ec96906044016020604051808303816000875af115801562008e5a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062008e80919062009ddd565b9050336001600160a01b0316846001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926838360405162008ec891815260200190565b60405180910390a350505050565b60008160405160200162008eeb91906200a48a565b604051602081830303815290604052805190602001208360405160200162008f1491906200a48a565b6040516020818303038152906040528051906020012014905092915050565b015190565b600080546040516001600160a01b0380851693630100000090930416917f44fc1b38a4abaa91ebd1b628a5b259a698f86238c8217d68f516e87769c60c0b91a3600080546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b604080516080810182526000918101828152606082018390528152602081019190915262008fd28262009210565b62008fdc57600080fd5b600062008fed836020015162009243565b836020015162008ffe919062009dc7565b6040805180820190915293845260208401525090919050565b805180516020820151600092916200902f9162009dc7565b836020015110915050919050565b60408051808201909152600080825260208201526200905c8262009017565b6200906657600080fd5b602082015160006200907882620092d2565b905062009086818362009dc7565b60209485015260408051808201909152908152928301525090565b8051600090601514620090b357600080fd5b620050e1825b805160009015801590620090cf57508151602110155b620090d957600080fd5b6000620090ea836020015162009243565b90508083600001511015620091425760405162461bcd60e51b815260206004820152601a60248201527f6c656e677468206973206c657373207468616e206f6666736574000000000000604482015260640162001133565b82516000906200915490839062009e83565b90506000808386602001516200916b919062009dc7565b90508051915060208310156200918857826020036101000a820491505b50949350505050565b6000826000018281548110620091ab57620091ab62009eb3565b9060005260206000200154905092915050565b60008181526001830160205260408120546200920757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620050e1565b506000620050e1565b805160009081036200922457506000919050565b6020820151805160001a9060c082101562008adf575060009392505050565b8051600090811a60808110156200925d5750600092915050565b60b88110806200927a575060c081108015906200927a575060f881105b15620092895750600192915050565b60c0811015620092c457620092a1600160b86200a701565b620092b09060ff168262009e83565b620092bd90600162009dc7565b9392505050565b620092a1600160f86200a701565b80516000908190811a6080811015620092ef576001915062009415565b60b88110156200931b576200930660808262009e83565b6200931390600162009dc7565b915062009415565b60c08110156200939457600060b78203600186019550806020036101000a8651049150600181018201935050808310156200938d5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b5062009415565b60f8811015620093ab576200930660c08262009e83565b600060f78203600186019550806020036101000a865104915060018101820193505080831015620094135760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015260640162001133565b505b5092915050565b610e96806200a71e83390190565b6001600160a01b03811681146200174b57600080fd5b6000602082840312156200945357600080fd5b8135620092bd816200942a565b60008083601f8401126200947357600080fd5b5081356001600160401b038111156200948b57600080fd5b60208301915083602082850101111562007e8157600080fd5b60008060208385031215620094b857600080fd5b82356001600160401b03811115620094cf57600080fd5b620094dd8582860162009460565b90969095509350505050565b600080600060408486031215620094ff57600080fd5b833560ff811681146200951157600080fd5b925060208401356001600160401b038111156200952d57600080fd5b6200953b8682870162009460565b9497909650939450505050565b60005b83811015620095655781810151838201526020016200954b565b50506000910152565b600081518084526200958881602086016020860162009548565b601f01601f19169290920160200192915050565b602081526000620050de60208301846200956e565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620095ec57620095ec620095b1565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200961d576200961d620095b1565b604052919050565b60006001600160401b03821115620096415762009641620095b1565b50601f01601f191660200190565b600062009666620096608462009625565b620095f2565b90508281528383830111156200967b57600080fd5b828260208301376000602084830101529392505050565b600060208284031215620096a557600080fd5b81356001600160401b03811115620096bc57600080fd5b8201601f81018413620096ce57600080fd5b620096df848235602084016200964f565b949350505050565b60008060408385031215620096fb57600080fd5b823562009708816200942a565b946020939093013593505050565b80151581146200174b57600080fd5b600080600080608085870312156200973c57600080fd5b843562009749816200942a565b935060208501356200975b816200942a565b9250604085013591506060850135620097748162009716565b939692955090935050565b6001600160401b03811681146200174b57600080fd5b600060208284031215620097a857600080fd5b8135620092bd816200977f565b60008060408385031215620097c957600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015620098135781516001600160a01b031687529582019590820190600101620097ec565b509495945050505050565b608081526000620098336080830187620097d8565b82810360208481019190915286518083528782019282019060005b818110156200986c578451835293830193918301916001016200984e565b5050848103604086015286518082528282019350600581901b8201830183890160005b83811015620098c157601f19858403018752620098ae8383516200956e565b968601969250908501906001016200988f565b5050809550505050505082606083015295945050505050565b600080600080600080600087890360e0811215620098f757600080fd5b883562009904816200942a565b975060208901356001600160401b03808211156200992157600080fd5b6200992f8c838d0162009460565b909950975060408b01359150808211156200994957600080fd5b620099578c838d0162009460565b90975095508591506060605f19840112156200997257600080fd5b60608b01945060c08b01359250808311156200998d57600080fd5b505088016080818b031215620099a257600080fd5b8091505092959891949750929550565b60008060408385031215620099c657600080fd5b8235620099d3816200942a565b91506020830135620099e58162009716565b809150509250929050565b60208152600082516080602084015262009a0e60a08401826200956e565b90506020840151601f198085840301604086015262009a2e83836200956e565b9250604086015191508085840301606086015262009a4d83836200956e565b925060608601519150808584030160808601525062008c1082826200956e565b6000806000806040858703121562009a8457600080fd5b84356001600160401b038082111562009a9c57600080fd5b62009aaa8883890162009460565b9096509450602087013591508082111562009ac457600080fd5b5062009ad38782880162009460565b95989497509550505050565b60008083601f84011262009af257600080fd5b5081356001600160401b0381111562009b0a57600080fd5b6020830191508360208260051b850101111562007e8157600080fd5b60008060006040848603121562009b3c57600080fd5b83356001600160401b0381111562009b5357600080fd5b62009b618682870162009adf565b909450925050602084013562009b77816200942a565b809150509250925092565b60608152600062009b976060830186620097d8565b828103602084015262009bab8186620097d8565b915050826040830152949350505050565b600082601f83011262009bce57600080fd5b620050de838335602085016200964f565b60006020828403121562009bf257600080fd5b81356001600160401b038082111562009c0a57600080fd5b908301906080828603121562009c1f57600080fd5b62009c29620095c7565b82358281111562009c3957600080fd5b62009c478782860162009bbc565b82525060208301358281111562009c5d57600080fd5b62009c6b8782860162009bbc565b60208301525060408301358281111562009c8457600080fd5b62009c928782860162009bbc565b60408301525060608301358281111562009cab57600080fd5b62009cb98782860162009bbc565b60608301525095945050505050565b6000806000806040858703121562009cdf57600080fd5b84356001600160401b038082111562009cf757600080fd5b62009d058883890162009adf565b9096509450602087013591508082111562009d1f57600080fd5b5062009ad38782880162009adf565b600181811c9082168062009d4357607f821691505b6020821081036200462457634e487b7160e01b600052602260045260246000fd5b6001600160a01b0392831681529116602082015260400190565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60008262009dc257634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620050e157620050e162009d8e565b60006020828403121562009df057600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b83815260208101839052606081016003831062009e2e5762009e2e62009df7565b826040830152949350505050565b60006020828403121562009e4f57600080fd5b8151620092bd8162009716565b828152604081016005831062009e765762009e7662009df7565b8260208301529392505050565b81810381811115620050e157620050e162009d8e565b8082028115828204841417620050e157620050e162009d8e565b634e487b7160e01b600052603260045260246000fd5b60408152600062009ede6040830185620097d8565b905060018060a01b03831660208301529392505050565b6001600160401b0382811682821603908082111562009415576200941562009d8e565b60006001820162009f2d5762009f2d62009d8e565b5060010190565b6000808335601e1984360301811262009f4c57600080fd5b8301803591506001600160401b0382111562009f6757600080fd5b60200191503681900382131562007e8157600080fd5b601f8211156200804a57600081815260208120601f850160051c8101602086101562009fa65750805b601f850160051c820191505b81811015620089265782815560010162009fb2565b600019600383901b1c191660019190911b1790565b6001600160401b0383111562009ff65762009ff6620095b1565b6200a00e836200a007835462009d2e565b8362009f7d565b6000601f8411600181146200a04157600085156200a02c5750838201355b6200a038868262009fc7565b845550620076f8565b600083815260209020601f19861690835b828110156200a07457868501358255602094850194600190920191016200a052565b50868210156200a0925760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6200a0b0828362009f34565b6001600160401b038111156200a0ca576200a0ca620095b1565b6200a0e2816200a0db855462009d2e565b8562009f7d565b6000601f8211600181146200a11557600083156200a1005750838201355b6200a10c848262009fc7565b8655506200a172565b600085815260209020601f19841690835b828110156200a14857868501358255602094850194600190920191016200a126565b50848210156200a1665760001960f88660031b161c19848701351681555b505060018360011b0185555b505050506200a185602083018362009f34565b6200a19581836001860162009fdc565b50506200a1a6604083018362009f34565b6200a1b681836002860162009fdc565b50506200a1c7606083018362009f34565b6200a1d781836003860162009fdc565b50505050565b81356200a1ea816200977f565b6001600160401b03811690508154816001600160401b0319821617835560208401356200a217816200977f565b6fffffffffffffffff0000000000000000604091821b166fffffffffffffffffffffffffffffffff198316841781178555908501356200a257816200977f565b6001600160c01b0319929092169092179190911760809190911b67ffffffffffffffff60801b1617905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000620096df6020830184866200a284565b60006001600160401b038211156200a2df576200a2df620095b1565b5060051b60200190565b600060208083850312156200a2fd57600080fd5b82516001600160401b038111156200a31457600080fd5b8301601f810185136200a32657600080fd5b80516200a33762009660826200a2c3565b81815260059190911b820183019083810190878311156200a35757600080fd5b928401925b828410156200a3825783516200a372816200942a565b825292840192908401906200a35c565b979650505050505050565b600060208083850312156200a3a157600080fd5b82516001600160401b03808211156200a3b957600080fd5b818501915085601f8301126200a3ce57600080fd5b81516200a3df62009660826200a2c3565b81815260059190911b830184019084810190888311156200a3ff57600080fd5b8585015b838110156200a47d578051858111156200a41d5760008081fd5b8601603f81018b136200a4305760008081fd5b8781015160406200a445620096608362009625565b8281528d828486010111156200a45b5760008081fd5b6200a46c838c830184870162009548565b86525050509186019186016200a403565b5098975050505050505050565b600082516200a49e81846020870162009548565b9190910192915050565b60ff8416815260406020820152600062008c106040830184866200a284565b6040815260006200a4dd6040830186886200a284565b82810360208401526200a3828185876200a284565b81516001600160401b038111156200a50e576200a50e620095b1565b6200a526816200a51f845462009d2e565b8462009f7d565b602080601f8311600181146200a55a57600084156200a5455750858301515b6200a551858262009fc7565b86555062008926565b600085815260208120601f198616915b828110156200a58b578886015182559484019460019091019084016200a56a565b50858210156200a5aa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008083546200a5ca8162009d2e565b600182811680156200a5e557600181146200a5fb576200a62c565b60ff19841687528215158302870194506200a62c565b8760005260208060002060005b858110156200a6235781548a8201529084019082016200a608565b50505082870194505b50929695505050505050565b6bffffffffffffffffffffffff198360601b1681526000600383106200a662576200a66262009df7565b5060f89190911b6014820152601501919050565b6bffffffffffffffffffffffff198560601b16815282846014830137601492019182015260340192915050565b600086516200a6b7818460208b0162009548565b82018587823760009086019081528385823760009301928352509095945050505050565b6001600160a01b0383168152604060208201819052600090620096df908301846200956e565b60ff8281168282160390811115620050e157620050e162009d8e56fe608060405260405162000e9638038062000e96833981016040819052620000269162000497565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ca565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b620001691760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000e6f60279139620002f8565b9392505050565b60006200018060008051602062000e4f83398151915260001b6200037760201b620001951760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e4f83398151915260001b6200037760201b620001951760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a816200037a60201b620001981760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6200037760201b620001951760201c565b6060600080856001600160a01b03168560405162000317919062000577565b600060405180830381855af49150503d806000811462000354576040519150601f19603f3d011682016040523d82523d6000602084013e62000359565b606091505b5090925090506200036d8683838762000389565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620003fd578251600003620003f5576001600160a01b0385163b620003f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001f1565b508162000409565b62000409838362000411565b949350505050565b815115620004225781518083602001fd5b8060405162461bcd60e51b8152600401620001f1919062000595565b80516001600160a01b03811681146200045657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200048e57818101518382015260200162000474565b50506000910152565b600080600060608486031215620004ad57600080fd5b620004b8846200043e565b9250620004c8602085016200043e565b60408501519092506001600160401b0380821115620004e657600080fd5b818601915086601f830112620004fb57600080fd5b8151818111156200051057620005106200045b565b604051601f8201601f19908116603f011681019083821181831017156200053b576200053b6200045b565b816040528281528960208487010111156200055557600080fd5b6200056883602083016020880162000471565b80955050505050509250925092565b600082516200058b81846020870162000471565b9190910192915050565b6020815260008251806020840152620005b681604085016020870162000471565b601f01601f19169190910160400192915050565b61087580620005da6000396000f3fe60806040523661001357610011610017565b005b6100115b61001f6101a7565b6001600160a01b0316330361015f5760606001600160e01b0319600035166364d3180d60e11b810161005a576100536101da565b9150610157565b63587086bd60e11b6001600160e01b031982160161007a57610053610231565b63070d7c6960e41b6001600160e01b031982160161009a57610053610277565b621eb96f60e61b6001600160e01b03198216016100b9576100536102a8565b63a39f25e560e01b6001600160e01b03198216016100d9576100536102e8565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101676102fc565b565b606061018e83836040518060600160405280602781526020016108426027913961030c565b9392505050565b90565b6001600160a01b03163b151590565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101e4610384565b60006101f33660048184610695565b81019061020091906106db565b905061021d8160405180602001604052806000815250600061038f565b505060408051602081019091526000815290565b60606000806102433660048184610695565b810190610250919061070c565b915091506102608282600161038f565b604051806020016040528060008152509250505090565b6060610281610384565b60006102903660048184610695565b81019061029d91906106db565b905061021d816103bb565b60606102b2610384565b60006102bc6101a7565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102f2610384565b60006102bc610412565b610167610307610412565b610421565b6060600080856001600160a01b03168560405161032991906107f2565b600060405180830381855af49150503d8060008114610364576040519150601f19603f3d011682016040523d82523d6000602084013e610369565b606091505b509150915061037a86838387610445565b9695505050505050565b341561016757600080fd5b610398836104c6565b6000825111806103a55750805b156103b6576103b48383610169565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103e46101a7565b604080516001600160a01b03928316815291841660208301520160405180910390a161040f81610506565b50565b600061041c6105af565b905090565b3660008037600080366000845af43d6000803e808015610440573d6000f35b3d6000fd5b606083156104b45782516000036104ad576001600160a01b0385163b6104ad5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014e565b50816104be565b6104be83836105d7565b949350505050565b6104cf81610601565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661056b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014e565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101cb565b8151156105e75781518083602001fd5b8060405162461bcd60e51b815260040161014e919061080e565b6001600160a01b0381163b61066e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014e565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61058e565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b80356001600160a01b03811681146106d657600080fd5b919050565b6000602082840312156106ed57600080fd5b61018e826106bf565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561071f57600080fd5b610728836106bf565b9150602083013567ffffffffffffffff8082111561074557600080fd5b818501915085601f83011261075957600080fd5b81358181111561076b5761076b6106f6565b604051601f8201601f19908116603f01168101908382118183101715610793576107936106f6565b816040528281528860208487010111156107ac57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156107e95781810151838201526020016107d1565b50506000910152565b600082516108048184602087016107ce565b9190910192915050565b602081526000825180602084015261082d8160408501602087016107ce565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000811000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000001284214b9b9c85549ab3d2b972df0deef66ac2c9000000000000000000000000a2959d3f95eae5dc7d70144ce1b73b403b7eb6e0000000000000000000000000980a75ecd1309ea12fa2ed87a8744fbfc9b863d5000000000000000000000000b71b214cb885500844365e95cd9942c7276e7fd800000000000000000000000035552c16704d214347f29fa77f77da6d75d7c752000000000000000000000000f474cf03cceff28abc65c9cbae594f725c80e12d00000000000000000000000096c5d20b2a975c050e4220be276ace4892f4b41a00000000000000000000000047788386d0ed6c748e03a53160b4b30ed3748cc5000000000000000000000000bdfbc016c1bd481f5d8ca6f754f4b200a7ed66ce000000000000000000000000372e4887005ec21a5aff9ff62eda9e7713e3643700000000000000000000000055c968cf3430f3ba0534ef49ff4b3fbc9086c7ce000000000000000000000000136bd6343049c9690569db79dcd9208a57d342ad000000000000000000000000977ecef7de795cd248d77fd0d080ce3a35dec013000000000000000000000000b334ced91dff560bc9b5b3c30ae613bf335f181324d7bda8602b916d64417f0dbfe2e2e88ec9b1157bd9f596dfdb91ba26624e040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000308e82934ca974fdcd97f3309de967d3c9c43fa711a8d673af5d75465844bf8969c8d1948d903748ac7b8b1720fa64e50c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b973c2d38487e58fd6e145491b110080fb14ac915a0411fc78f19e09a399ddee0d20c63a75d8f930f1694544ad2dc01b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003089037a9ace3b590165ea1c0c5ac72bf600b7c88c1e435f41932c1132aae1bfa0bb68e46b96ccb12c3415e4d82af717d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a2750ec6dded3dcdc2f351782310b0eadc077db59abca0f0cd26776e2e7acb9f3bce40b1fa5221fd1561226c6263cc5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b742ad4855bae330426b823e742da31f816cc83bc16d69a9134be0cfb4a1d17ec34f1b5b32d5c20440b8536b1e88f0f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003096c9b86c3400e529bfe184056e257c07940bb664636f689e8d2027c834681f8f878b73445261034e946bb2d901b4b87800000000000000000000000000000000a164736f6c6343000811000a", + Code: feynmanFix.ChapelStakeHubContract, }, }, } diff --git a/core/systemcontracts/upgrade_test.go b/core/systemcontracts/upgrade_test.go new file mode 100644 index 0000000000..15183c098e --- /dev/null +++ b/core/systemcontracts/upgrade_test.go @@ -0,0 +1,42 @@ +package systemcontracts + +import ( + "crypto/sha256" + "testing" + + "github.com/ethereum/go-ethereum/common" + "github.com/stretchr/testify/require" +) + +func TestAllCodesHash(t *testing.T) { + upgradesList := [13]map[string]*Upgrade{ + ramanujanUpgrade, + nielsUpgrade, + mirrorUpgrade, + brunoUpgrade, + eulerUpgrade, + gibbsUpgrade, + moranUpgrade, + planckUpgrade, + lubanUpgrade, + platoUpgrade, + keplerUpgrade, + feynmanUpgrade, + feynmanFixUpgrade} + + allCodes := make([]byte, 0, 10_000_000) + for _, hardfork := range upgradesList { + for _, network := range []string{mainNet, chapelNet, rialtoNet} { + allCodes = append(allCodes, []byte(network)...) + if hardfork[network] != nil { + for _, addressConfig := range hardfork[network].Configs { + allCodes = append(allCodes, addressConfig.ContractAddr[:]...) + allCodes = append(allCodes, addressConfig.Code[:]...) + } + } + } + } + allCodeHash := sha256.Sum256(allCodes) + + require.Equal(t, allCodeHash[:], common.Hex2Bytes("3d68c07faa6b9385e981a45bd539f15d4cbb712426c604b9cab22591af446fc8")) +} diff --git a/core/types/vote.go b/core/types/vote.go index 1aebe2a8e2..75f8166b3e 100644 --- a/core/types/vote.go +++ b/core/types/vote.go @@ -6,7 +6,7 @@ import ( "sync/atomic" "github.com/pkg/errors" - "github.com/prysmaticlabs/prysm/v4/crypto/bls" + "github.com/prysmaticlabs/prysm/v5/crypto/bls" "github.com/ethereum/go-ethereum/common" ) diff --git a/core/vm/contracts.go b/core/vm/contracts.go index 5988bb15f7..5749682f3b 100644 --- a/core/vm/contracts.go +++ b/core/vm/contracts.go @@ -24,7 +24,7 @@ import ( "fmt" "math/big" - "github.com/prysmaticlabs/prysm/v4/crypto/bls" + "github.com/prysmaticlabs/prysm/v5/crypto/bls" "golang.org/x/crypto/ripemd160" "github.com/ethereum/go-ethereum/common" diff --git a/core/vote/vote_pool_test.go b/core/vote/vote_pool_test.go index ed905e0f3a..bb8374e90f 100644 --- a/core/vote/vote_pool_test.go +++ b/core/vote/vote_pool_test.go @@ -29,10 +29,10 @@ import ( "time" "github.com/google/uuid" - "github.com/prysmaticlabs/prysm/v4/crypto/bls" - "github.com/prysmaticlabs/prysm/v4/validator/accounts" - "github.com/prysmaticlabs/prysm/v4/validator/accounts/iface" - "github.com/prysmaticlabs/prysm/v4/validator/keymanager" + "github.com/prysmaticlabs/prysm/v5/crypto/bls" + "github.com/prysmaticlabs/prysm/v5/validator/accounts" + "github.com/prysmaticlabs/prysm/v5/validator/accounts/iface" + "github.com/prysmaticlabs/prysm/v5/validator/keymanager" keystorev4 "github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4" "github.com/ethereum/go-ethereum/common" diff --git a/core/vote/vote_signer.go b/core/vote/vote_signer.go index ac17518272..d45047a4be 100644 --- a/core/vote/vote_signer.go +++ b/core/vote/vote_signer.go @@ -7,11 +7,11 @@ import ( "github.com/pkg/errors" - "github.com/prysmaticlabs/prysm/v4/crypto/bls" - validatorpb "github.com/prysmaticlabs/prysm/v4/proto/prysm/v1alpha1/validator-client" - "github.com/prysmaticlabs/prysm/v4/validator/accounts/iface" - "github.com/prysmaticlabs/prysm/v4/validator/accounts/wallet" - "github.com/prysmaticlabs/prysm/v4/validator/keymanager" + "github.com/prysmaticlabs/prysm/v5/crypto/bls" + validatorpb "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1/validator-client" + "github.com/prysmaticlabs/prysm/v5/validator/accounts/iface" + "github.com/prysmaticlabs/prysm/v5/validator/accounts/wallet" + "github.com/prysmaticlabs/prysm/v5/validator/keymanager" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/log" diff --git a/eth/backend.go b/eth/backend.go index 9078cce1d4..542e38e0c3 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -69,6 +69,8 @@ import ( const ( ChainDBNamespace = "eth/db/chaindata/" + JournalFileName = "trie.journal" + ChainData = "chaindata" ) // Config contains the configuration options of the ETH protocol. @@ -137,8 +139,7 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) { } // Assemble the Ethereum object - chainDb, err := stack.OpenAndMergeDatabase("chaindata", config.DatabaseCache, config.DatabaseHandles, - config.DatabaseFreezer, config.DatabaseDiff, ChainDBNamespace, false, config.PersistDiff, config.PruneAncientData) + chainDb, err := stack.OpenAndMergeDatabase(ChainData, ChainDBNamespace, false, config) if err != nil { return nil, err } @@ -250,6 +251,16 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) { rawdb.WriteDatabaseVersion(chainDb, core.BlockChainVersion) } } + var ( + journalFilePath string + path string + ) + if stack.CheckIfMultiDataBase() { + path = ChainData + "/state" + } else { + path = ChainData + } + journalFilePath = stack.ResolvePath(path) + "/" + JournalFileName var ( vmConfig = vm.Config{ EnablePreimageRecording: config.EnablePreimageRecording, @@ -267,6 +278,8 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) { StateHistory: config.StateHistory, StateScheme: config.StateScheme, PathSyncFlush: config.PathSyncFlush, + JournalFilePath: journalFilePath, + JournalFile: config.JournalFileEnabled, } ) bcOps := make([]core.BlockChainOption, 0) diff --git a/eth/catalyst/api.go b/eth/catalyst/api.go index 1cd8c51b25..4d6dfcb83c 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -351,7 +351,7 @@ func (api *ConsensusAPI) forkchoiceUpdated(update engine.ForkchoiceStateV1, payl return engine.STATUS_INVALID, engine.InvalidForkChoiceState.With(errors.New("final block not in canonical chain")) } // Set the finalized block - // api.eth.BlockChain().SetFinalized(finalBlock.Header()) + api.eth.BlockChain().SetFinalized(finalBlock.Header()) } // Check if the safe block hash is in our canonical tree, if not something is wrong if update.SafeBlockHash != (common.Hash{}) { diff --git a/eth/ethconfig/config.go b/eth/ethconfig/config.go index 95a311914e..7878daa3d0 100644 --- a/eth/ethconfig/config.go +++ b/eth/ethconfig/config.go @@ -117,8 +117,9 @@ type Config struct { // State scheme represents the scheme used to store ethereum states and trie // nodes on top. It can be 'hash', 'path', or none which means use the scheme // consistent with persistent state. - StateScheme string `toml:",omitempty"` // State scheme used to store ethereum state and merkle trie nodes on top - PathSyncFlush bool `toml:",omitempty"` // State scheme used to store ethereum state and merkle trie nodes on top + StateScheme string `toml:",omitempty"` // State scheme used to store ethereum state and merkle trie nodes on top + PathSyncFlush bool `toml:",omitempty"` // State scheme used to store ethereum state and merkle trie nodes on top + JournalFileEnabled bool // Whether the TrieJournal is stored using journal file // RequiredBlocks is a set of block number -> hash mappings which must be in the // canonical chain of all remote peers. Setting the option makes geth verify the diff --git a/eth/fetcher/block_fetcher.go b/eth/fetcher/block_fetcher.go index 26c58d7143..033e6081a1 100644 --- a/eth/fetcher/block_fetcher.go +++ b/eth/fetcher/block_fetcher.go @@ -363,7 +363,6 @@ func (f *BlockFetcher) loop() { } // Import any queued blocks that could potentially fit height := f.chainHeight() - finalizedHeight := f.chainFinalizedHeight() for !f.queue.Empty() { op := f.queue.PopItem() hash := op.hash() @@ -380,6 +379,7 @@ func (f *BlockFetcher) loop() { break } // Otherwise if fresh and still unknown, try and import + finalizedHeight := f.chainFinalizedHeight() if (number+maxUncleDist < height) || number <= finalizedHeight || (f.light && f.getHeader(hash) != nil) || (!f.light && f.getBlock(hash) != nil) { f.forgetBlock(hash) continue diff --git a/eth/gasprice/feehistory.go b/eth/gasprice/feehistory.go index d657eb6d99..086e763e1a 100644 --- a/eth/gasprice/feehistory.go +++ b/eth/gasprice/feehistory.go @@ -42,6 +42,7 @@ const ( // maxBlockFetchers is the max number of goroutines to spin up to pull blocks // for the fee history calculation (mostly relevant for LES). maxBlockFetchers = 4 + maxQueryLimit = 100 ) // blockFees represents a single block for processing @@ -219,6 +220,9 @@ func (oracle *Oracle) FeeHistory(ctx context.Context, blocks uint64, unresolvedL if len(rewardPercentiles) != 0 { maxFeeHistory = oracle.maxBlockHistory } + if len(rewardPercentiles) > maxQueryLimit { + return common.Big0, nil, nil, nil, fmt.Errorf("%w: over the query limit %d", errInvalidPercentile, maxQueryLimit) + } if blocks > maxFeeHistory { log.Warn("Sanitizing fee history length", "requested", blocks, "truncated", maxFeeHistory) blocks = maxFeeHistory diff --git a/eth/protocols/trust/peer.go b/eth/protocols/trust/peer.go index 45d67c69eb..b47341c3cb 100644 --- a/eth/protocols/trust/peer.go +++ b/eth/protocols/trust/peer.go @@ -37,7 +37,7 @@ func (p *Peer) ID() string { return p.id } -// Version retrieves the peer's negoatiated `trust` protocol version. +// Version retrieves the peer's negotiated `trust` protocol version. func (p *Peer) Version() uint { return p.version } diff --git a/ethdb/database.go b/ethdb/database.go index 463b5bb164..daff198e32 100644 --- a/ethdb/database.go +++ b/ethdb/database.go @@ -180,12 +180,26 @@ type StateStoreReader interface { StateStoreReader() Reader } +type BlockStore interface { + BlockStore() Database + SetBlockStore(block Database) +} + +type BlockStoreReader interface { + BlockStoreReader() Reader +} + +type BlockStoreWriter interface { + BlockStoreWriter() Writer +} + // Reader contains the methods required to read data from both key-value as well as // immutable ancient data. type Reader interface { KeyValueReader AncientReader StateStoreReader + BlockStoreReader } // Writer contains the methods required to write data to both key-value as well as @@ -193,6 +207,7 @@ type Reader interface { type Writer interface { KeyValueWriter AncientWriter + BlockStoreWriter } // Stater contains the methods required to retrieve states from both key-value as well as @@ -227,6 +242,7 @@ type Database interface { Writer DiffStore StateStore + BlockStore Batcher Iteratee Stater diff --git a/ethdb/remotedb/remotedb.go b/ethdb/remotedb/remotedb.go index 8e2135c2b1..18890f2227 100644 --- a/ethdb/remotedb/remotedb.go +++ b/ethdb/remotedb/remotedb.go @@ -32,6 +32,22 @@ type Database struct { remote *rpc.Client } +func (db *Database) BlockStoreReader() ethdb.Reader { + return db +} + +func (db *Database) BlockStoreWriter() ethdb.Writer { + return db +} + +func (db *Database) BlockStore() ethdb.Database { + return db +} + +func (db *Database) SetBlockStore(block ethdb.Database) { + panic("not supported") +} + func (db *Database) Has(key []byte) (bool, error) { if _, err := db.Get(key); err != nil { return false, nil diff --git a/go.mod b/go.mod index c660fbb6d8..6ff9d4e3e4 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.21.5 require ( github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0 github.com/Microsoft/go-winio v0.6.1 - github.com/VictoriaMetrics/fastcache v1.12.1 + github.com/VictoriaMetrics/fastcache v1.12.2 github.com/aws/aws-sdk-go-v2 v1.21.2 github.com/aws/aws-sdk-go-v2/config v1.18.45 github.com/aws/aws-sdk-go-v2/credentials v1.13.43 @@ -23,7 +23,7 @@ require ( github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 github.com/crate-crypto/go-kzg-4844 v0.7.0 github.com/davecgh/go-spew v1.1.1 - github.com/deckarep/golang-set/v2 v2.1.0 + github.com/deckarep/golang-set/v2 v2.5.0 github.com/dop251/goja v0.0.0-20230806174421-c933cf95e127 github.com/ethereum/c-kzg-4844 v0.4.0 github.com/fatih/color v1.13.0 @@ -38,9 +38,9 @@ require ( github.com/golang/protobuf v1.5.4 github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb github.com/google/gofuzz v1.2.0 - github.com/google/pprof v0.0.0-20231023181126-ff6d637d2a7b - github.com/google/uuid v1.3.0 - github.com/gorilla/websocket v1.5.0 + github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5 + github.com/google/uuid v1.4.0 + github.com/gorilla/websocket v1.5.1 github.com/graph-gophers/graphql-go v1.3.0 github.com/hashicorp/go-bexpr v0.1.10 github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d @@ -65,7 +65,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/prometheus/tsdb v0.10.0 github.com/protolambda/bls12-381-util v0.0.0-20220416220906-d8552aa452c7 - github.com/prysmaticlabs/prysm/v4 v4.2.0 + github.com/prysmaticlabs/prysm/v5 v5.0.3 github.com/rs/cors v1.8.2 github.com/shirou/gopsutil v3.21.11+incompatible github.com/status-im/keycard-go v0.2.0 @@ -77,17 +77,17 @@ require ( github.com/tendermint/tendermint v0.31.15 github.com/tidwall/wal v1.1.7 github.com/tyler-smith/go-bip39 v1.1.0 - github.com/urfave/cli/v2 v2.25.7 + github.com/urfave/cli/v2 v2.26.0 github.com/wealdtech/go-eth2-wallet-encryptor-keystorev4 v1.1.3 github.com/willf/bitset v1.1.3 go.uber.org/automaxprocs v1.5.2 - golang.org/x/crypto v0.17.0 - golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611 - golang.org/x/sync v0.5.0 - golang.org/x/sys v0.16.0 + golang.org/x/crypto v0.19.0 + golang.org/x/exp v0.0.0-20240213143201-ec583247a57a + golang.org/x/sync v0.6.0 + golang.org/x/sys v0.17.0 golang.org/x/text v0.14.0 - golang.org/x/time v0.3.0 - golang.org/x/tools v0.16.0 + golang.org/x/time v0.5.0 + golang.org/x/tools v0.18.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -97,7 +97,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect github.com/BurntSushi/toml v1.3.2 // indirect - github.com/DataDog/zstd v1.5.2 // indirect + github.com/DataDog/zstd v1.5.5 // indirect github.com/aristanetworks/goarista v0.0.0-20200805130819-fd197cf57d96 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect @@ -110,19 +110,19 @@ require ( github.com/aws/smithy-go v1.15.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bits-and-blooms/bitset v1.10.0 // indirect + github.com/bits-and-blooms/bitset v1.11.0 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v1.5.1 // indirect - github.com/cockroachdb/errors v1.9.1 // indirect + github.com/cockroachdb/errors v1.11.1 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect - github.com/cockroachdb/redact v1.1.3 // indirect + github.com/cockroachdb/redact v1.1.5 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/containerd/cgroups v1.1.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/cosmos/gogoproto v1.4.1 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/deepmap/oapi-codegen v1.8.2 // indirect @@ -133,14 +133,14 @@ require ( github.com/elastic/gosigar v0.14.2 // indirect github.com/etcd-io/bbolt v1.3.3 // indirect github.com/ferranbt/fastssz v0.0.0-20210905181407-59cf6761a7d5 // indirect - github.com/flynn/noise v1.0.0 // indirect + github.com/flynn/noise v1.1.0 // indirect github.com/francoispqt/gojay v1.2.13 // indirect github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61 // indirect - github.com/getsentry/sentry-go v0.18.0 // indirect + github.com/getsentry/sentry-go v0.25.0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect @@ -151,7 +151,7 @@ require ( github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gopacket v1.1.19 // indirect github.com/gorilla/mux v1.8.0 // indirect @@ -173,15 +173,15 @@ require ( github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a // indirect github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213 // indirect github.com/kilic/bls12-381 v0.1.0 // indirect - github.com/klauspost/compress v1.17.2 // indirect - github.com/klauspost/cpuid/v2 v2.2.5 // indirect + github.com/klauspost/compress v1.17.6 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/koron/go-ssdp v0.0.4 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/leodido/go-urn v1.2.3 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-flow-metrics v0.1.0 // indirect - github.com/libp2p/go-libp2p v0.32.1 // indirect + github.com/libp2p/go-libp2p v0.33.1 // indirect github.com/libp2p/go-libp2p-asn-util v0.4.1 // indirect github.com/libp2p/go-libp2p-mplex v0.9.0 // indirect github.com/libp2p/go-libp2p-pubsub v0.10.0 // indirect @@ -194,9 +194,9 @@ require ( github.com/lunixbochs/vtclean v1.0.0 // indirect github.com/manifoldco/promptui v0.7.0 // indirect github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect - github.com/mattn/go-runewidth v0.0.14 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/miekg/dns v1.1.56 // indirect + github.com/miekg/dns v1.1.58 // indirect github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect @@ -212,7 +212,7 @@ require ( github.com/mr-tron/base58 v1.2.0 // indirect github.com/multiformats/go-base32 v0.1.0 // indirect github.com/multiformats/go-base36 v0.2.0 // indirect - github.com/multiformats/go-multiaddr v0.12.1 // indirect + github.com/multiformats/go-multiaddr v0.12.2 // indirect github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect github.com/multiformats/go-multibase v0.2.0 // indirect @@ -221,32 +221,31 @@ require ( github.com/multiformats/go-multistream v0.5.0 // indirect github.com/multiformats/go-varint v0.0.7 // indirect github.com/naoina/go-stringutil v0.1.0 // indirect - github.com/onsi/ginkgo/v2 v2.13.0 // indirect - github.com/opencontainers/runtime-spec v1.1.0 // indirect + github.com/onsi/ginkgo/v2 v2.15.0 // indirect + github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.14.0 // indirect - github.com/prometheus/client_model v0.4.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect + github.com/prometheus/client_golang v1.18.0 // indirect + github.com/prometheus/client_model v0.6.0 // indirect + github.com/prometheus/common v0.47.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/prometheus/prom2json v1.3.0 // indirect github.com/prysmaticlabs/eth2-types v0.0.0-20210303084904-c9735a06829d // indirect github.com/prysmaticlabs/fastssz v0.0.0-20221107182844-78142813af44 // indirect github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7 // indirect - github.com/prysmaticlabs/gohashtree v0.0.3-alpha // indirect + github.com/prysmaticlabs/gohashtree v0.0.4-beta // indirect github.com/prysmaticlabs/prombbolt v0.0.0-20210126082820-9b7adba6db7c // indirect github.com/prysmaticlabs/prysm v0.0.0-20220124113610-e26cde5e091b // indirect github.com/quic-go/qpack v0.4.0 // indirect - github.com/quic-go/qtls-go1-20 v0.3.4 // indirect - github.com/quic-go/quic-go v0.39.4 // indirect + github.com/quic-go/quic-go v0.42.0 // indirect github.com/quic-go/webtransport-go v0.6.0 // indirect github.com/raulk/go-watchdog v1.3.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rivo/uniseg v0.4.4 // indirect - github.com/rogpeppe/go-internal v1.9.0 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/schollz/progressbar/v3 v3.3.4 // indirect @@ -258,26 +257,26 @@ require ( github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tidwall/tinylru v1.1.0 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/tklauser/go-sysconf v0.3.13 // indirect + github.com/tklauser/numcpus v0.7.0 // indirect github.com/trailofbits/go-mutexasserts v0.0.0-20230328101604-8cdbc5f3d279 // indirect github.com/uber/jaeger-client-go v2.25.0+incompatible // indirect github.com/wealdtech/go-bytesutil v1.1.1 // indirect github.com/wealdtech/go-eth2-types/v2 v2.5.2 // indirect github.com/wealdtech/go-eth2-util v1.6.3 // 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.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/dig v1.17.1 // indirect go.uber.org/fx v1.20.1 // indirect - go.uber.org/mock v0.3.0 // indirect + go.uber.org/mock v0.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.26.0 // indirect - golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/oauth2 v0.7.0 // indirect - golang.org/x/term v0.15.0 // indirect + go.uber.org/zap v1.27.0 // indirect + golang.org/x/mod v0.15.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/term v0.17.0 // indirect google.golang.org/api v0.44.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect diff --git a/go.sum b/go.sum index db1a5cc097..07635b0ee5 100644 --- a/go.sum +++ b/go.sum @@ -96,12 +96,9 @@ github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbi github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= -github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= -github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= -github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= +github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= +github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= @@ -112,20 +109,18 @@ github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/sarama v1.26.1/go.mod h1:NbSGBSSndYaIhRcBtY9V0U7AyH+x71bG668AuWys/yU= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= -github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40= -github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o= +github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= +github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -191,7 +186,6 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsP github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/bazelbuild/rules_go v0.23.2 h1:Wxu7JjqnF78cKZbsBsARLSXx/jlGaSLCnUV3mTlyHvM= github.com/bazelbuild/rules_go v0.23.2/go.mod h1:MC23Dc/wkXEyk3Wpq6lCqz0ZAYOZDw2DR5y3N1q2i7M= github.com/benbjohnson/clock v1.0.2/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= @@ -206,8 +200,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= -github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/bits-and-blooms/bitset v1.11.0 h1:RMyy2mBBShArUAhfVRZJ2xyBO58KCBCtZFShw3umo6k= +github.com/bits-and-blooms/bitset v1.11.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/bnb-chain/fastssz v0.1.2 h1:vTcXw5SwCtRYnl/BEclujiml7GXiVOZ74tub4GHpvlM= @@ -275,22 +269,19 @@ github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnht github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= -github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= -github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= +github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 h1:aPEJyR4rPBvDmeyi+l/FS/VtA00IWvjeFvjen1m1l1A= github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593/go.mod h1:6hk1eMY/u5t+Cf18q5lFMUA1Rc+Sm5I6Ra1QuPyxXCo= -github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= -github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= github.com/cometbft/cometbft-db v0.7.0 h1:uBjbrBx4QzU0zOEnU8KxoDl18dMNgDh+zZRUE0ucsbo= github.com/cometbft/cometbft-db v0.7.0/go.mod h1:yiKJIm2WKrt6x8Cyxtq9YTEcIMPcEe4XPxhgX59Fzf0= github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= @@ -324,8 +315,8 @@ github.com/cosmos/gogoproto v1.4.1/go.mod h1:Ac9lzL4vFpBMcptJROQ6dQ4M3pOEK5Z/l0Q github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/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/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ= github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= @@ -346,8 +337,8 @@ github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set v1.7.1/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= -github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.5.0 h1:hn6cEZtQ0h3J8kFrHR/NrzyOoTnjgW1+FmNJzQ7y/sA= +github.com/deckarep/golang-set/v2 v2.5.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= @@ -358,7 +349,6 @@ github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0 github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU= github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= -github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= github.com/dgraph-io/badger v1.6.1/go.mod h1:FRmFw3uxvcpa8zG3Rxs0th+hCLIuaQg8HlNV5bjgnuU= github.com/dgraph-io/badger v1.6.2 h1:mNw0qs90GVgGGWylh0umH5iag1j6n/PeJtNvL6KY/x8= github.com/dgraph-io/badger v1.6.2/go.mod h1:JW2yswe3V058sS0kZ2h/AXeDSqFjxnZcRrVH//y2UQE= @@ -398,7 +388,6 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/elastic/gosigar v0.12.0/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= github.com/elastic/gosigar v0.14.2/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= @@ -421,7 +410,6 @@ github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1 github.com/ethereum/go-ethereum v1.10.13/go.mod h1:W3yfrFyL9C1pHcwY5hmRHVDaorTiQxhYBkKyu5mEDHw= github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= @@ -437,8 +425,9 @@ github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+ github.com/fjl/memsize v0.0.2 h1:27txuSD9or+NZlnOWdKUxeBzTAUkWCVh+4Gf2dWFOzA= github.com/fjl/memsize v0.0.2/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= +github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg= +github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= @@ -457,7 +446,6 @@ github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61 h1:IZqZOB2fydHte3kUgx github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8= github.com/garyburd/redigo v1.1.1-0.20170914051019-70e1b1943d4f/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= -github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= 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= @@ -465,17 +453,13 @@ github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 h1:BAIP2Gihuqh github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46/go.mod h1:QNpY22eby74jVhqH4WhDLDwxc/vqsern6pW+u2kbkpc= 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/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= -github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= -github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= +github.com/getsentry/sentry-go v0.25.0 h1:q6Eo+hS+yoJlTO3uu/azhQadsD8V+jQn2D8VvX1eOyI= +github.com/getsentry/sentry-go v0.25.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= -github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= @@ -500,9 +484,8 @@ github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7 github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.2.1/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= @@ -539,9 +522,6 @@ github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEe github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/go-yaml/yaml v2.1.0+incompatible h1:RYi2hDdss1u4YE7GwixGzWwVo47T8UQwnTLB6vQiq+o= github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -553,16 +533,13 @@ github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= @@ -589,7 +566,6 @@ github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -619,7 +595,6 @@ github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= -github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= @@ -638,8 +613,8 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= @@ -670,8 +645,8 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= -github.com/google/pprof v0.0.0-20231023181126-ff6d637d2a7b h1:RMpPgZTSApbPf7xaVel+QkoGPRLFLrwFO89uDUHEGf0= -github.com/google/pprof v0.0.0-20231023181126-ff6d637d2a7b/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5 h1:E/LAvt58di64hlYjx7AsNS6C/ysHWYo+2qPCZKTQhRo= +github.com/google/pprof v0.0.0-20240207164012-fb44976bdcd5/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -679,8 +654,9 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -698,10 +674,9 @@ github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/graph-gophers/graphql-go v0.0.0-20201113091052-beb923fada29/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY41SORZyNJ0= github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= @@ -780,13 +755,11 @@ github.com/huin/goupnp v1.0.2/go.mod h1:0dxJBVBHqTMjIUMkESDTNgOOx/Mw5wYIfyFmdzSa github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= -github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/ianlancetaylor/cgosymbolizer v0.0.0-20200424224625-be1b05b0b279/go.mod h1:a5aratAVTWyz+nJMmDsN8O4XTfaLfdAsB1ysCmZX5Bw= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/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-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/inconshreveable/log15 v0.0.0-20170622235902-74a0988b5f80/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= @@ -837,11 +810,6 @@ github.com/ipfs/go-log/v2 v2.3.0/go.mod h1:QqGoj30OTpnKaG/LKTGTxoP2mmQtjVMEnK72g github.com/ipfs/go-log/v2 v2.4.0/go.mod h1:nPZnh7Cj7lwS3LpRU5Mwr2ol1c2gXIEXuF6aywqrtmo= github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= -github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= -github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= -github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= -github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= -github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= @@ -889,18 +857,12 @@ github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4d github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= -github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213 h1:qGQQKEcAR99REcMpsXCp3lJ03zYT1PkRd3kQGPn9GVg= github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213/go.mod h1:vNUNkEQ1e29fT/6vq2aBdFsgNPmy8qMdSay1npru+Sw= github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0= github.com/karalabe/usb v0.0.0-20211005121534-4c5740d64559/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/karalabe/usb v0.0.3-0.20230711191512-61db3e06439c h1:AqsttAyEyIEsNz5WLRwuRwjiT5CMDUfLk6cFJDVPebs= 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/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= -github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= -github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= -github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= github.com/kevinms/leakybucket-go v0.0.0-20200115003610-082473db97ca/go.mod h1:ph+C5vpnCcQvKBwJwKLTK3JLNGnBXYlG7m7JjoC/zYA= github.com/kilic/bls12-381 v0.1.0 h1:encrdjqKMEvabVQ7qYOKu1OvhqpK4s47wDYtNiPtlp4= github.com/kilic/bls12-381 v0.1.0/go.mod h1:vDTTHJONJ6G+P2R74EhnyotQDTliQDnFEwhdmfzw1ig= @@ -910,20 +872,17 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.10.1/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= -github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.6 h1:60eq2E/jlfwQXtvZEeBUYADs+BwKBWURIY+Gj2eRGjI= +github.com/klauspost/compress v1.17.6/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= -github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= @@ -952,7 +911,6 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= -github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= @@ -977,8 +935,8 @@ github.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= github.com/libp2p/go-flow-metrics v0.1.0/go.mod h1:4Xi8MX8wj5aWNDAZttg6UPmc0ZrnFNsMtpsYUClFtro= github.com/libp2p/go-libp2p v0.17.0/go.mod h1:Fkin50rsGdv5mm5BshBUtPRZknt9esfmYXBOYcwOTgw= -github.com/libp2p/go-libp2p v0.32.1 h1:wy1J4kZIZxOaej6NveTWCZmHiJ/kY7GoAqXgqNCnPps= -github.com/libp2p/go-libp2p v0.32.1/go.mod h1:hXXC3kXPlBZ1eu8Q2hptGrMB4mZ3048JUoS4EKaHW5c= +github.com/libp2p/go-libp2p v0.33.1 h1:tvJl9b9M6nSLBtZSXSguq+/lRhRj2oLRkyhBmQNMFLA= +github.com/libp2p/go-libp2p v0.33.1/go.mod h1:zOUTMjG4I7TXwMndNyOBn/CNtVBLlvBlnxfi+8xzx+E= github.com/libp2p/go-libp2p-asn-util v0.1.0/go.mod h1:wu+AnM9Ii2KgO5jMmS1rz9dvzTdj8BXqsPR9HR0XB7I= github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl950SO9L6n94= github.com/libp2p/go-libp2p-asn-util v0.4.1/go.mod h1:d/NI6XZ9qxw67b4e+NgpQexCIiFYJjErASrYW4PFDN8= @@ -1127,7 +1085,6 @@ github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= @@ -1136,7 +1093,6 @@ github.com/mattn/go-isatty v0.0.2/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= @@ -1149,23 +1105,20 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= -github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= -github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= -github.com/miekg/dns v1.1.56 h1:5imZaSeoRNvpM9SzWNhEcP9QliKiz20/dA2QabIGVnE= -github.com/miekg/dns v1.1.56/go.mod h1:cRm6Oo2C8TY9ZS/TqsSrseAcncm74lfK5G+ikN2SWWY= +github.com/miekg/dns v1.1.58 h1:ca2Hdkz+cDg/7eNF6V56jjzuZ4aCAE+DbVkILdQWG/4= +github.com/miekg/dns v1.1.58/go.mod h1:Ypv+3b/KadlvW9vJfXOTf300O4UqaHFzFCuHz+rPkBY= github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c h1:bzE/A84HN25pxAuk9Eej1Kz9OUelF97nAc82bDquQI8= github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms= github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= @@ -1216,7 +1169,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= github.com/mr-tron/base58 v1.1.1/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= @@ -1241,8 +1193,8 @@ github.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4 github.com/multiformats/go-multiaddr v0.3.1/go.mod h1:uPbspcUPd5AfaP6ql3ujFY+QWzmBD8uLLL4bXW0XfGc= github.com/multiformats/go-multiaddr v0.3.3/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0= github.com/multiformats/go-multiaddr v0.4.0/go.mod h1:YcpyLH8ZPudLxQlemYBPhSm0/oCXAT8Z4mzFpyoPyRc= -github.com/multiformats/go-multiaddr v0.12.1 h1:vm+BA/WZA8QZDp1pF1FWhi5CT3g1tbi5GJmqpb6wnlk= -github.com/multiformats/go-multiaddr v0.12.1/go.mod h1:7mPkiBMmLeFipt+nNSq9pHZUeJSt8lHBgH6yhj0YQzE= +github.com/multiformats/go-multiaddr v0.12.2 h1:9G9sTY/wCYajKa9lyfWPmpZAwe6oV+Wb1zcmMS1HG24= +github.com/multiformats/go-multiaddr v0.12.2/go.mod h1:GKyaTYjZRdcUhyOetrxTk9z0cW+jA/YrnqTOvKgi44M= github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= @@ -1309,7 +1261,6 @@ github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= @@ -1318,8 +1269,8 @@ github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvw github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= -github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= +github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -1327,14 +1278,14 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= -github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/openconfig/gnmi v0.0.0-20190823184014-89b2bf29312c/go.mod h1:t+O9It+LKzfOAhKTT5O0ehDix+MTqbtT0T9t+7zzOvc= github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696/go.mod h1:ym2A+zigScwkSEb/cVQB0/ZMpU3rqiH6X7WRRsxgOGw= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= -github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= +github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -1401,16 +1352,16 @@ github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU= github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -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.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= +github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -1424,8 +1375,8 @@ github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16 github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= +github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -1437,8 +1388,8 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/prometheus/prom2json v1.3.0 h1:BlqrtbT9lLH3ZsOVhXPsHzFrApCTKRifB7gjJuypu6Y= github.com/prometheus/prom2json v1.3.0/go.mod h1:rMN7m0ApCowcoDlypBHlkNbp5eJQf/+1isKykIP5ZnM= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= @@ -1453,8 +1404,8 @@ github.com/prysmaticlabs/fastssz v0.0.0-20221107182844-78142813af44/go.mod h1:MA github.com/prysmaticlabs/go-bitfield v0.0.0-20210108222456-8e92c3709aa0/go.mod h1:hCwmef+4qXWjv0jLDbQdWnL0Ol7cS7/lCSS26WR+u6s= github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7 h1:0tVE4tdWQK9ZpYygoV7+vS6QkDvQVySboMVEIxBJmXw= github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7/go.mod h1:wmuf/mdK4VMD+jA9ThwcUKjg3a2XWM9cVfFYjDyY4j4= -github.com/prysmaticlabs/gohashtree v0.0.3-alpha h1:1EVinCWdb3Lorq7xn8DYQHf48nCcdAM3Vb18KsFlRWY= -github.com/prysmaticlabs/gohashtree v0.0.3-alpha/go.mod h1:4pWaT30XoEx1j8KNJf3TV+E3mQkaufn7mf+jRNb/Fuk= +github.com/prysmaticlabs/gohashtree v0.0.4-beta h1:H/EbCuXPeTV3lpKeXGPpEV9gsUpkqOOVnWapUyeWro4= +github.com/prysmaticlabs/gohashtree v0.0.4-beta/go.mod h1:BFdtALS+Ffhg3lGQIHv9HDWuHS8cTvHZzrHWxwOtGOs= github.com/prysmaticlabs/grpc-gateway/v2 v2.3.1-0.20210702154020-550e1cd83ec1 h1:xcu59yYL6AWWTl6jtejBfE0y8uF35fArCBeZjRlvJss= github.com/prysmaticlabs/grpc-gateway/v2 v2.3.1-0.20210702154020-550e1cd83ec1/go.mod h1:IOyTYjcIO0rkmnGBfJTL0NJ11exy/Tc2QEuv7hCXp24= github.com/prysmaticlabs/prombbolt v0.0.0-20210126082820-9b7adba6db7c h1:9PHRCuO/VN0s9k+RmLykho7AjDxblNYI5bYKed16NPU= @@ -1464,14 +1415,12 @@ github.com/prysmaticlabs/protoc-gen-go-cast v0.0.0-20230228205207-28762a7b9294 h github.com/prysmaticlabs/protoc-gen-go-cast v0.0.0-20230228205207-28762a7b9294/go.mod h1:ZVEbRdnMkGhp/pu35zq4SXxtvUwWK0J1MATtekZpH2Y= github.com/prysmaticlabs/prysm v0.0.0-20220124113610-e26cde5e091b h1:XULhE6PdzCYSe5OEVFhuixNqL3mYVOq/3M+SUGnKr1Y= github.com/prysmaticlabs/prysm v0.0.0-20220124113610-e26cde5e091b/go.mod h1:bFzDfaj4xtisRey9RPkMJOhOJVwmtH3FChV7NPKV1Nk= -github.com/prysmaticlabs/prysm/v4 v4.2.0 h1:87QoRT3Azs7c1Y6SnIq0+CNtQRbAt0sVKGj2OxRT1Rw= -github.com/prysmaticlabs/prysm/v4 v4.2.0/go.mod h1:PQrQtHJeeqTz4K3udN/EX1Gs2xhWR4j93gSj0OQZ1f4= +github.com/prysmaticlabs/prysm/v5 v5.0.3 h1:hUi0gu6v7aXmMQkl2GbrLoWcMhDNIbkVxRwrZchKbxU= +github.com/prysmaticlabs/prysm/v5 v5.0.3/go.mod h1:v5Oz4A4cWljfxUmW7SDk/VBzoYnei+lzwJogvSqUZVs= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= -github.com/quic-go/qtls-go1-20 v0.3.4 h1:MfFAPULvst4yoMgY9QmtpYmfij/em7O8UUi+bNVm7Cg= -github.com/quic-go/qtls-go1-20 v0.3.4/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k= -github.com/quic-go/quic-go v0.39.4 h1:PelfiuG7wXEffUT2yceiqz5V6Pc0TA5ruOd1LcmFc1s= -github.com/quic-go/quic-go v0.39.4/go.mod h1:T09QsDQWjLiQ74ZmacDfqZmhY/NLnw5BC40MANNNZ1Q= +github.com/quic-go/quic-go v0.42.0 h1:uSfdap0eveIl8KXnipv9K7nlwZ5IqLlYOpJ58u5utpM= +github.com/quic-go/quic-go v0.42.0/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M= github.com/quic-go/webtransport-go v0.6.0 h1:CvNsKqc4W2HljHJnoT+rMmbRJybShZ0YPFDD3NxaZLY= github.com/quic-go/webtransport-go v0.6.0/go.mod h1:9KjU4AEBqEQidGHNDkZrb8CAa1abRaosM2yGOyiikEc= github.com/r3labs/sse v0.0.0-20210224172625-26fe804710bc/go.mod h1:S8xSOnV3CgpNrWd0GQ/OoQfMtlg2uPRSuTzcSGrzwK8= @@ -1490,9 +1439,9 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= @@ -1501,12 +1450,10 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/schollz/progressbar/v3 v3.3.4 h1:nMinx+JaEm/zJz4cEyClQeAw5rsYSB5th3xv+5lV6Vg= github.com/schollz/progressbar/v3 v3.3.4/go.mod h1:Rp5lZwpgtYmlvmGo1FyDwXMqagyRBQYSDwzlP9QDu84= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= @@ -1636,11 +1583,11 @@ github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpY github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tjfoc/gmsm v1.3.0/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4= +github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= +github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trailofbits/go-mutexasserts v0.0.0-20200708152505-19999e7d3cef/go.mod h1:+SV/613m53DNAmlXPTWGZhIyt4E/qDvn9g/lOPRiy0A= @@ -1652,22 +1599,16 @@ github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2n github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U= github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= -github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/urfave/cli/v2 v2.26.0 h1:3f3AMg3HpThFNT4I++TKOejZO8yU55t3JnnSr4S4QEI= +github.com/urfave/cli/v2 v2.26.0/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/wealdtech/go-bytesutil v1.1.1 h1:ocEg3Ke2GkZ4vQw5lp46rmO+pfqCCTgq35gqOy8JKVc= @@ -1691,9 +1632,6 @@ github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPyS github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= @@ -1701,10 +1639,6 @@ github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRT github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/xtaci/kcp-go v5.4.20+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE= github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae/go.mod h1:gXtu8J62kEgmN++bm9BVICuT/e8yiLI2KFobd/TRFsE= -github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= -github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= -github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= -github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1712,8 +1646,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/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/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= @@ -1752,10 +1686,10 @@ go.uber.org/fx v1.20.1/go.mod h1:iSYNbHf2y55acNCwCXKx7LbWb5WG1Bnue5RDXz1OREg= go.uber.org/goleak v1.0.0/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= -go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= -go.uber.org/mock v0.3.0 h1:3mUxI1No2/60yUYax92Pt8eNOEecx2D3lcXZh2NEZJo= -go.uber.org/mock v0.3.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= +go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= @@ -1772,8 +1706,8 @@ go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= -go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1793,7 +1727,6 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1810,8 +1743,8 @@ golang.org/x/crypto v0.0.0-20210813211128-0a44fdfbc16e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1827,8 +1760,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/exp v0.0.0-20200513190911-00229845015e/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611 h1:qCEDpW1G+vcj3Y7Fy52pEM1AWm3abj8WimGYejI3SC4= -golang.org/x/exp v0.0.0-20231214170342-aacd6d4b4611/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= +golang.org/x/exp v0.0.0-20240213143201-ec583247a57a h1:HinSgX1tJRX3KsL//Gxynpw5CTOAIPhgL4W8PNiIpVE= +golang.org/x/exp v0.0.0-20240213143201-ec583247a57a/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1844,7 +1777,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -1858,8 +1790,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1877,7 +1809,6 @@ golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1923,12 +1854,11 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.0.0-20170912212905-13449ad91cb2/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1946,8 +1876,8 @@ golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g= -golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20170517211232-f52d1811a629/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1962,8 +1892,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/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.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2065,11 +1995,8 @@ golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/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-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2079,15 +2006,14 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2109,8 +2035,8 @@ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -2119,14 +2045,12 @@ golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181130052023-1c3d964395ce/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -2183,12 +2107,11 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= 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.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= -golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= +golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2239,7 +2162,6 @@ google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20170918111702-1e559d0a00ee/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -2294,11 +2216,9 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210426193834-eac7f76ac494/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/grpc v1.2.1-0.20170921194603-d4b75ebd4f9f/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -2328,7 +2248,6 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= @@ -2364,18 +2283,14 @@ gopkg.in/d4l3k/messagediff.v1 v1.2.1/go.mod h1:EUzikiKadqXWcD1AzJLagx0j/BeeWGtn+ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= @@ -2399,7 +2314,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/internal/ethapi/api_mev.go b/internal/ethapi/api_mev.go index d6e6d66e57..057b6a3dc1 100644 --- a/internal/ethapi/api_mev.go +++ b/internal/ethapi/api_mev.go @@ -7,10 +7,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" -) - -const ( - TransferTxGasLimit = 25000 + "github.com/ethereum/go-ethereum/params" ) // MevAPI implements the interfaces that defined in the BEP-322. @@ -65,33 +62,18 @@ func (m *MevAPI) SendBid(ctx context.Context, args types.BidArgs) (common.Hash, return common.Hash{}, types.NewInvalidBidError("builder fee should not be less than 0") } - if builderFee.Cmp(common.Big0) == 0 { - if len(args.PayBidTx) != 0 || args.PayBidTxGasUsed != 0 { - return common.Hash{}, types.NewInvalidPayBidTxError("payBidTx should be nil when builder fee is 0") - } - } - if builderFee.Cmp(rawBid.GasFee) >= 0 { return common.Hash{}, types.NewInvalidBidError("builder fee must be less than gas fee") } + } - if builderFee.Cmp(common.Big0) > 0 { - // payBidTx can be nil when validator and builder take some other settlement - - if args.PayBidTxGasUsed > TransferTxGasLimit { - return common.Hash{}, types.NewInvalidBidError( - fmt.Sprintf("transfer tx gas used must be no more than %v", TransferTxGasLimit)) - } + if len(args.PayBidTx) == 0 || args.PayBidTxGasUsed == 0 { + return common.Hash{}, types.NewInvalidPayBidTxError("payBidTx and payBidTxGasUsed are must-have") + } - if (len(args.PayBidTx) == 0 && args.PayBidTxGasUsed != 0) || - (len(args.PayBidTx) != 0 && args.PayBidTxGasUsed == 0) { - return common.Hash{}, types.NewInvalidPayBidTxError("non-aligned payBidTx and payBidTxGasUsed") - } - } - } else { - if len(args.PayBidTx) != 0 || args.PayBidTxGasUsed != 0 { - return common.Hash{}, types.NewInvalidPayBidTxError("payBidTx should be nil when builder fee is nil") - } + if args.PayBidTxGasUsed > params.PayBidTxGasLimit { + return common.Hash{}, types.NewInvalidBidError( + fmt.Sprintf("transfer tx gas used must be no more than %v", params.PayBidTxGasLimit)) } return m.b.SendBid(ctx, &args) diff --git a/internal/flags/flags.go b/internal/flags/flags.go index bf62c53adf..36fdded9ed 100644 --- a/internal/flags/flags.go +++ b/internal/flags/flags.go @@ -270,7 +270,7 @@ func (f *BigFlag) IsSet() bool { return f.HasBeenSet } func (f *BigFlag) String() string { return cli.FlagStringer(f) } func (f *BigFlag) Apply(set *flag.FlagSet) error { - // Set default value so that environment wont be able to overwrite it + // Set default value so that environment won't be able to overwrite it if f.Value != nil { f.defaultValue = new(big.Int).Set(f.Value) } diff --git a/miner/bid_simulator.go b/miner/bid_simulator.go index 5f9d2588b0..fd4c912257 100644 --- a/miner/bid_simulator.go +++ b/miner/bid_simulator.go @@ -11,6 +11,8 @@ import ( "sync/atomic" "time" + mapset "github.com/deckarep/golang-set/v2" + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/bidutil" "github.com/ethereum/go-ethereum/consensus" @@ -28,8 +30,6 @@ const ( // maxBidPerBuilderPerBlock is the max bid number per builder maxBidPerBuilderPerBlock = 3 - commitInterruptBetterBid = 1 - // leftOverTimeRate is the rate of left over time to simulate a bid leftOverTimeRate = 11 // leftOverTimeScale is the scale of left over time to simulate a bid @@ -61,9 +61,10 @@ var ( } ) -type WorkPreparer interface { +type bidWorker interface { prepareWork(params *generateParams) (*environment, error) etherbase() common.Address + fillTransactions(interruptCh chan int32, env *environment, stopTimer *time.Timer, bidTxs mapset.Set[common.Hash]) (err error) } // simBidReq is the request for simulating a bid @@ -79,7 +80,8 @@ type bidSimulator struct { delayLeftOver time.Duration chain *core.BlockChain chainConfig *params.ChainConfig - workPreparer WorkPreparer + engine consensus.Engine + bidWorker bidWorker running atomic.Bool // controlled by miner exitCh chan struct{} @@ -112,16 +114,18 @@ type bidSimulator struct { func newBidSimulator( config *MevConfig, delayLeftOver time.Duration, - chainConfig *params.ChainConfig, chain *core.BlockChain, - workPreparer WorkPreparer, + chainConfig *params.ChainConfig, + engine consensus.Engine, + bidWorker bidWorker, ) *bidSimulator { b := &bidSimulator{ config: config, delayLeftOver: delayLeftOver, - chainConfig: chainConfig, chain: chain, - workPreparer: workPreparer, + chainConfig: chainConfig, + engine: engine, + bidWorker: bidWorker, exitCh: make(chan struct{}), chainHeadCh: make(chan core.ChainHeadEvent, chainHeadChanSize), builders: make(map[common.Address]*builderclient.Client), @@ -245,6 +249,12 @@ func (b *bidSimulator) SetBestBid(prevBlockHash common.Hash, bid *BidRuntime) { b.bestBidMu.Lock() defer b.bestBidMu.Unlock() + // must discard the environment of the last best bid, otherwise it will cause memory leak + last := b.bestBid[prevBlockHash] + if last != nil && last.env != nil { + last.env.discard() + } + b.bestBid[prevBlockHash] = bid } @@ -312,6 +322,8 @@ func (b *bidSimulator) newBidLoop() { } if time.Until(b.bidMustBefore(bidRuntime.bid.ParentHash)) <= simDuration*leftOverTimeRate/leftOverTimeScale { + log.Debug("BidSimulator: abort commit, not enough time to simulate", + "builder", bidRuntime.bid.Builder, "bidHash", bidRuntime.bid.Hash().Hex()) return } @@ -323,6 +335,7 @@ func (b *bidSimulator) newBidLoop() { interruptCh = make(chan int32, 1) select { case b.simBidCh <- &simBidReq{interruptCh: interruptCh, bid: bidRuntime}: + log.Debug("BidSimulator: commit", "builder", bidRuntime.bid.Builder, "bidHash", bidRuntime.bid.Hash().Hex()) case <-b.exitCh: return } @@ -343,6 +356,8 @@ func (b *bidSimulator) newBidLoop() { if expectedValidatorReward.Cmp(big.NewInt(0)) < 0 { // damage self profit, ignore + log.Debug("BidSimulator: invalid bid, validator reward is less than 0, ignore", + "builder", newBid.Builder, "bidHash", newBid.Hash().Hex()) continue } @@ -354,8 +369,6 @@ func (b *bidSimulator) newBidLoop() { packedValidatorReward: big.NewInt(0), } - // TODO(renee-) opt bid comparation - simulatingBid := b.GetSimulatingBid(newBid.ParentHash) // simulatingBid is nil means there is no bid in simulation if simulatingBid == nil { @@ -367,24 +380,27 @@ func (b *bidSimulator) newBidLoop() { } // if bestBid is not nil, check if newBid is better than bestBid - if bidRuntime.expectedBlockReward.Cmp(bestBid.expectedBlockReward) > 0 && - bidRuntime.expectedValidatorReward.Cmp(bestBid.expectedValidatorReward) > 0 { + if bidRuntime.expectedBlockReward.Cmp(bestBid.expectedBlockReward) >= 0 && + bidRuntime.expectedValidatorReward.Cmp(bestBid.expectedValidatorReward) >= 0 { // if both reward are better than last simulating newBid, commit for simulation commit(commitInterruptBetterBid, bidRuntime) continue } + log.Debug("BidSimulator: lower reward, ignore", + "builder", bidRuntime.bid.Builder, "bidHash", newBid.Hash().Hex()) continue } // simulatingBid must be better than bestBid, if newBid is better than simulatingBid, commit for simulation - if bidRuntime.expectedBlockReward.Cmp(simulatingBid.expectedBlockReward) > 0 && - bidRuntime.expectedValidatorReward.Cmp(simulatingBid.expectedValidatorReward) > 0 { + if bidRuntime.expectedBlockReward.Cmp(simulatingBid.expectedBlockReward) >= 0 && + bidRuntime.expectedValidatorReward.Cmp(simulatingBid.expectedValidatorReward) >= 0 { // if both reward are better than last simulating newBid, commit for simulation commit(commitInterruptBetterBid, bidRuntime) continue } + log.Debug("BidSimulator: lower reward, ignore", "builder", newBid.Builder, "bidHash", newBid.Hash().Hex()) case <-b.exitCh: return } @@ -500,8 +516,13 @@ func (b *bidSimulator) simBid(interruptCh chan int32, bidRuntime *BidRuntime) { blockNumber = bidRuntime.bid.BlockNumber parentHash = bidRuntime.bid.ParentHash builder = bidRuntime.bid.Builder - err error - success bool + + bidTxs = bidRuntime.bid.Txs + bidTxLen = len(bidTxs) + payBidTx = bidTxs[bidTxLen-1] + + err error + success bool ) // ensure simulation exited then start next simulation @@ -526,24 +547,35 @@ func (b *bidSimulator) simBid(interruptCh chan int32, bidRuntime *BidRuntime) { if err != nil { logCtx = append(logCtx, "err", err) - log.Debug("bid simulation failed", logCtx...) + log.Info("BidSimulator: simulation failed", logCtx...) go b.reportIssue(bidRuntime, err) } + b.RemoveSimulatingBid(parentHash) + bidSimTimer.UpdateSince(start) + if success { bidRuntime.duration = time.Since(simStart) - } - b.RemoveSimulatingBid(parentHash) - bidSimTimer.UpdateSince(start) + // only recommit self bid when newBidCh is empty + if len(b.newBidCh) > 0 { + return + } + + select { + case b.newBidCh <- bidRuntime.bid: + log.Debug("BidSimulator: recommit", "builder", bidRuntime.bid.Builder, "bidHash", bidRuntime.bid.Hash().Hex()) + default: + } + } }(time.Now()) // prepareWork will configure header with a suitable time according to consensus // prepareWork will start trie prefetching - if bidRuntime.env, err = b.workPreparer.prepareWork(&generateParams{ + if bidRuntime.env, err = b.bidWorker.prepareWork(&generateParams{ parentHash: bidRuntime.bid.ParentHash, - coinbase: b.workPreparer.etherbase(), + coinbase: b.bidWorker.etherbase(), }); err != nil { return } @@ -552,6 +584,7 @@ func (b *bidSimulator) simBid(interruptCh chan int32, bidRuntime *BidRuntime) { if bidRuntime.env.gasPool == nil { bidRuntime.env.gasPool = new(core.GasPool).AddGas(gasLimit) bidRuntime.env.gasPool.SubGas(params.SystemTxsGas) + bidRuntime.env.gasPool.SubGas(params.PayBidTxGasLimit) } if bidRuntime.bid.GasUsed > bidRuntime.env.gasPool.Gas() { @@ -572,8 +605,9 @@ func (b *bidSimulator) simBid(interruptCh chan int32, bidRuntime *BidRuntime) { default: } - // Start executing the transaction - bidRuntime.env.state.SetTxContext(tx.Hash(), bidRuntime.env.tcount) + if bidRuntime.env.tcount == bidTxLen-1 { + break + } err = bidRuntime.commitTransaction(b.chain, b.chainConfig, tx) if err != nil { @@ -581,8 +615,6 @@ func (b *bidSimulator) simBid(interruptCh chan int32, bidRuntime *BidRuntime) { err = fmt.Errorf("invalid tx in bid, %v", err) return } - - bidRuntime.env.tcount++ } bidRuntime.packReward(b.config.ValidatorCommission) @@ -593,6 +625,35 @@ func (b *bidSimulator) simBid(interruptCh chan int32, bidRuntime *BidRuntime) { return } + // fill transactions from mempool + if b.config.GreedyMergeTx { + delay := b.engine.Delay(b.chain, bidRuntime.env.header, &b.delayLeftOver) + if delay != nil && *delay > 0 { + stopTimer := time.NewTimer(*delay) + + bidTxsSet := mapset.NewSet[common.Hash]() + for _, tx := range bidRuntime.bid.Txs { + bidTxsSet.Add(tx.Hash()) + } + + fillErr := b.bidWorker.fillTransactions(interruptCh, bidRuntime.env, stopTimer, bidTxsSet) + log.Trace("BidSimulator: greedy merge stopped", "block", bidRuntime.env.header.Number, + "builder", bidRuntime.bid.Builder, "tx count", bidRuntime.env.tcount-bidTxLen+1, "err", fillErr) + + // recalculate the packed reward + bidRuntime.packReward(b.config.ValidatorCommission) + } + } + + bidRuntime.env.gasPool.AddGas(params.PayBidTxGasLimit) + err = bidRuntime.commitTransaction(b.chain, b.chainConfig, payBidTx) + if err != nil { + log.Error("BidSimulator: failed to commit tx", "builder", bidRuntime.bid.Builder, + "bidHash", bidRuntime.bid.Hash(), "tx", payBidTx.Hash(), "err", err) + err = fmt.Errorf("invalid tx in bid, %v", err) + return + } + bestBid := b.GetBestBid(parentHash) if bestBid == nil { @@ -602,11 +663,22 @@ func (b *bidSimulator) simBid(interruptCh chan int32, bidRuntime *BidRuntime) { } // this is the simplest strategy: best for all the delegators. - if bidRuntime.packedBlockReward.Cmp(bestBid.packedBlockReward) > 0 { + if bidRuntime.packedBlockReward.Cmp(bestBid.packedBlockReward) >= 0 { b.SetBestBid(bidRuntime.bid.ParentHash, bidRuntime) success = true return } + + // only recommit last best bid when newBidCh is empty + if len(b.newBidCh) > 0 { + return + } + + select { + case b.newBidCh <- bestBid.bid: + log.Debug("BidSimulator: recommit last bid", "builder", bidRuntime.bid.Builder, "bidHash", bidRuntime.bid.Hash().Hex()) + default: + } } // reportIssue reports the issue to the mev-sentry @@ -615,11 +687,16 @@ func (b *bidSimulator) reportIssue(bidRuntime *BidRuntime, err error) { cli := b.builders[bidRuntime.bid.Builder] if cli != nil { - cli.ReportIssue(context.Background(), &types.BidIssue{ + err = cli.ReportIssue(context.Background(), &types.BidIssue{ Validator: bidRuntime.env.header.Coinbase, Builder: bidRuntime.bid.Builder, + BidHash: bidRuntime.bid.Hash(), Message: err.Error(), }) + + if err != nil { + log.Error("BidSimulator: failed to report issue", "builder", bidRuntime.bid.Builder, "err", err) + } } } @@ -658,8 +735,11 @@ func (r *BidRuntime) commitTransaction(chain *core.BlockChain, chainConfig *para sc *types.BlobSidecar ) + // Start executing the transaction + r.env.state.SetTxContext(tx.Hash(), r.env.tcount) + if tx.Type() == types.BlobTxType { - sc := types.NewBlobSidecarFromTx(tx) + sc = types.NewBlobSidecarFromTx(tx) if sc == nil { return errors.New("blob transaction without blobs in miner") } @@ -692,5 +772,7 @@ func (r *BidRuntime) commitTransaction(chain *core.BlockChain, chainConfig *para env.receipts = append(env.receipts, receipt) } + r.env.tcount++ + return nil } diff --git a/miner/miner.go b/miner/miner.go index 18a267ab83..665e409462 100644 --- a/miner/miner.go +++ b/miner/miner.go @@ -102,7 +102,7 @@ func New(eth Backend, config *Config, chainConfig *params.ChainConfig, mux *even worker: newWorker(config, chainConfig, engine, eth, mux, isLocalBlock, false), } - miner.bidSimulator = newBidSimulator(&config.Mev, config.DelayLeftOver, chainConfig, eth.BlockChain(), miner.worker) + miner.bidSimulator = newBidSimulator(&config.Mev, config.DelayLeftOver, eth.BlockChain(), chainConfig, engine, miner.worker) miner.worker.setBestBidFetcher(miner.bidSimulator) miner.wg.Add(1) diff --git a/miner/miner_mev.go b/miner/miner_mev.go index 8f5315d178..f4ced7f8d5 100644 --- a/miner/miner_mev.go +++ b/miner/miner_mev.go @@ -18,10 +18,11 @@ type BuilderConfig struct { type MevConfig struct { Enabled bool // Whether to enable Mev or not + GreedyMergeTx bool // Whether to merge local transactions to the bid BuilderFeeCeil string // The maximum builder fee of a bid SentryURL string // The url of Mev sentry Builders []BuilderConfig // The list of builders - ValidatorCommission uint64 // 100 means 1% + ValidatorCommission uint64 // 100 means the validator claims 1% from block reward BidSimulationLeftOver time.Duration } diff --git a/miner/worker.go b/miner/worker.go index 09d7fedf03..ca866bc6e1 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -24,6 +24,7 @@ import ( "sync/atomic" "time" + mapset "github.com/deckarep/golang-set/v2" lru "github.com/hashicorp/golang-lru" "github.com/holiman/uint256" @@ -72,10 +73,11 @@ var ( writeBlockTimer = metrics.NewRegisteredTimer("worker/writeblock", nil) finalizeBlockTimer = metrics.NewRegisteredTimer("worker/finalizeblock", nil) - errBlockInterruptedByNewHead = errors.New("new head arrived while building block") - errBlockInterruptedByRecommit = errors.New("recommit interrupt while building block") - errBlockInterruptedByTimeout = errors.New("timeout while building block") - errBlockInterruptedByOutOfGas = errors.New("out of gas while building block") + errBlockInterruptedByNewHead = errors.New("new head arrived while building block") + errBlockInterruptedByRecommit = errors.New("recommit interrupt while building block") + errBlockInterruptedByTimeout = errors.New("timeout while building block") + errBlockInterruptedByOutOfGas = errors.New("out of gas while building block") + errBlockInterruptedByBetterBid = errors.New("better bid arrived while building block") ) // environment is the worker's current environment and holds all @@ -114,6 +116,7 @@ func (env *environment) copy() *environment { if env.sidecars != nil { cpy.sidecars = make(types.BlobSidecars, len(env.sidecars)) copy(cpy.sidecars, env.sidecars) + cpy.blobs = env.blobs } return cpy @@ -143,6 +146,7 @@ const ( commitInterruptResubmit commitInterruptTimeout commitInterruptOutOfGas + commitInterruptBetterBid ) // newWorkReq represents a request for new sealing work submitting with relative interrupt notifier. @@ -1045,7 +1049,7 @@ func (w *worker) prepareWork(genParams *generateParams) (*environment, error) { // fillTransactions retrieves the pending transactions from the txpool and fills them // into the given sealing block. The transaction selection and ordering strategy can // be customized with the plugin in the future. -func (w *worker) fillTransactions(interruptCh chan int32, env *environment, stopTimer *time.Timer) (err error) { +func (w *worker) fillTransactions(interruptCh chan int32, env *environment, stopTimer *time.Timer, bidTxs mapset.Set[common.Hash]) (err error) { w.mu.RLock() tip := w.tip w.mu.RUnlock() @@ -1066,6 +1070,26 @@ func (w *worker) fillTransactions(interruptCh chan int32, env *environment, stop filter.OnlyPlainTxs, filter.OnlyBlobTxs = false, true pendingBlobTxs := w.eth.TxPool().Pending(filter) + if bidTxs != nil { + filterBidTxs := func(commonTxs map[common.Address][]*txpool.LazyTransaction) { + for acc, txs := range commonTxs { + for i := len(txs) - 1; i >= 0; i-- { + if bidTxs.Contains(txs[i].Hash) { + if i == len(txs)-1 { + delete(commonTxs, acc) + } else { + commonTxs[acc] = txs[i+1:] + } + break + } + } + } + } + + filterBidTxs(pendingPlainTxs) + filterBidTxs(pendingBlobTxs) + } + // Split the pending transactions into locals and remotes. localPlainTxs, remotePlainTxs := make(map[common.Address][]*txpool.LazyTransaction), pendingPlainTxs localBlobTxs, remoteBlobTxs := make(map[common.Address][]*txpool.LazyTransaction), pendingBlobTxs @@ -1080,6 +1104,7 @@ func (w *worker) fillTransactions(interruptCh chan int32, env *environment, stop localBlobTxs[account] = txs } } + // Fill the block with all available pending transactions. // we will abort when: // 1.new block was imported @@ -1116,7 +1141,7 @@ func (w *worker) generateWork(params *generateParams) *newPayloadResult { defer work.discard() if !params.noTxs { - err := w.fillTransactions(nil, work, nil) + err := w.fillTransactions(nil, work, nil, nil) if errors.Is(err, errBlockInterruptedByTimeout) { log.Warn("Block building is interrupted", "allowance", common.PrettyDuration(w.newpayloadTimeout)) } @@ -1216,7 +1241,7 @@ LOOP: // Fill pending transactions from the txpool into the block. fillStart := time.Now() - err = w.fillTransactions(interruptCh, work, stopTimer) + err = w.fillTransactions(interruptCh, work, stopTimer, nil) fillDuration := time.Since(fillStart) switch { case errors.Is(err, errBlockInterruptedByNewHead): @@ -1307,15 +1332,27 @@ LOOP: if w.bidFetcher != nil && bestWork.header.Difficulty.Cmp(diffInTurn) == 0 { bestBid := w.bidFetcher.GetBestBid(bestWork.header.ParentHash) + if bestBid != nil { + log.Debug("BidSimulator: final compare", "block", bestWork.header.Number.Uint64(), + "localBlockReward", bestReward.String(), + "bidBlockReward", bestBid.packedBlockReward.String()) + } + if bestBid != nil && bestReward.CmpBig(bestBid.packedBlockReward) < 0 { // localValidatorReward is the reward for the validator self by the local block. localValidatorReward := new(uint256.Int).Mul(bestReward, uint256.NewInt(w.config.Mev.ValidatorCommission)) localValidatorReward.Div(localValidatorReward, uint256.NewInt(10000)) + log.Debug("BidSimulator: final compare", "block", bestWork.header.Number.Uint64(), + "localValidatorReward", localValidatorReward.String(), + "bidValidatorReward", bestBid.packedValidatorReward.String()) + // blockReward(benefits delegators) and validatorReward(benefits the validator) are both optimal if localValidatorReward.CmpBig(bestBid.packedValidatorReward) < 0 { bestWork = bestBid.env from = bestBid.bid.Builder + + log.Debug("BidSimulator: bid win", "block", bestWork.header.Number.Uint64(), "bid", bestBid.bid.Hash()) } } } @@ -1386,7 +1423,7 @@ func (w *worker) commit(env *environment, interval func(), update bool, start ti select { case w.taskCh <- &task{receipts: receipts, state: env.state, block: block, createdAt: time.Now()}: log.Info("Commit new sealing work", "number", block.Number(), "sealhash", w.engine.SealHash(block.Header()), - "txs", env.tcount, "gas", block.GasUsed(), "fees", feesInEther, "elapsed", common.PrettyDuration(time.Since(start))) + "txs", env.tcount, "blobs", env.blobs, "gas", block.GasUsed(), "fees", feesInEther, "elapsed", common.PrettyDuration(time.Since(start))) case <-w.exitCh: log.Info("Worker has exited") @@ -1446,6 +1483,8 @@ func signalToErr(signal int32) error { return errBlockInterruptedByTimeout case commitInterruptOutOfGas: return errBlockInterruptedByOutOfGas + case commitInterruptBetterBid: + return errBlockInterruptedByBetterBid default: panic(fmt.Errorf("undefined signal %d", signal)) } diff --git a/node/errors.go b/node/errors.go index 67547bf691..e7f60ce9bc 100644 --- a/node/errors.go +++ b/node/errors.go @@ -24,10 +24,11 @@ import ( ) var ( - ErrDatadirUsed = errors.New("datadir already used by another process") - ErrNodeStopped = errors.New("node not started") - ErrNodeRunning = errors.New("node already running") - ErrServiceUnknown = errors.New("unknown service") + ErrDatadirUsed = errors.New("datadir already used by another process") + ErrNodeStopped = errors.New("node not started") + ErrNodeRunning = errors.New("node already running") + ErrServiceUnknown = errors.New("unknown service") + ErrSeprateDBDatadir = errors.New("datadir is not configured when using separate trie") datadirInUseErrnos = map[uint]bool{11: true, 32: true, 35: true} ) diff --git a/node/node.go b/node/node.go index bd102d32fb..1dfc255535 100644 --- a/node/node.go +++ b/node/node.go @@ -33,6 +33,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/core/rawdb" + "github.com/ethereum/go-ethereum/eth/ethconfig" "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/ethdb/leveldb" "github.com/ethereum/go-ethereum/event" @@ -73,9 +74,15 @@ const ( initializingState = iota runningState closedState + blockDbCacheSize = 256 + blockDbHandlesMinSize = 1000 + blockDbHandlesMaxSize = 2000 + chainDbMemoryPercentage = 50 + chainDbHandlesPercentage + diffStoreHandlesPercentage = 20 ) -const chainDataHandlesPercentage = 80 +const StateDBNamespace = "eth/db/statedata/" // New creates a new P2P node, ready for protocol registration. func New(conf *Config) (*Node, error) { @@ -781,43 +788,71 @@ func (n *Node) OpenDatabase(name string, cache, handles int, namespace string, r return db, err } -func (n *Node) OpenAndMergeDatabase(name string, cache, handles int, freezer, diff, namespace string, readonly, persistDiff, pruneAncientData bool) (ethdb.Database, error) { - chainDataHandles := handles - if persistDiff { - chainDataHandles = handles * chainDataHandlesPercentage / 100 +func (n *Node) OpenAndMergeDatabase(name string, namespace string, readonly bool, config *ethconfig.Config) (ethdb.Database, error) { + var ( + err error + stateDiskDb ethdb.Database + blockDb ethdb.Database + disableChainDbFreeze = false + blockDbHandlesSize int + diffStoreHandles int + chainDataHandles = config.DatabaseHandles + chainDbCache = config.DatabaseCache + ) + + if config.PersistDiff { + diffStoreHandles = config.DatabaseHandles * diffStoreHandlesPercentage / 100 } - var statediskdb ethdb.Database - var err error + isMultiDatabase := n.CheckIfMultiDataBase() // Open the separated state database if the state directory exists - if n.IsSeparatedDB() { - // Allocate half of the handles and cache to this separate state data database - statediskdb, err = n.OpenDatabaseWithFreezer(name+"/state", cache/2, chainDataHandles/2, "", "eth/db/statedata/", readonly, false, false, pruneAncientData) + if isMultiDatabase { + // Resource allocation rules: + // 1) Allocate a fixed percentage of memory for chainDb based on chainDbMemoryPercentage & chainDbHandlesPercentage. + // 2) Allocate a fixed size for blockDb based on blockDbCacheSize & blockDbHandlesSize. + // 3) Allocate the remaining resources to stateDb. + chainDbCache = int(float64(config.DatabaseCache) * chainDbMemoryPercentage / 100) + chainDataHandles = int(float64(config.DatabaseHandles) * chainDbHandlesPercentage / 100) + if config.DatabaseHandles/10 > blockDbHandlesMaxSize { + blockDbHandlesSize = blockDbHandlesMaxSize + } else { + blockDbHandlesSize = blockDbHandlesMinSize + } + stateDbCache := config.DatabaseCache - chainDbCache - blockDbCacheSize + stateDbHandles := config.DatabaseHandles - chainDataHandles - blockDbHandlesSize + disableChainDbFreeze = true + + // Allocate half of the handles and chainDbCache to this separate state data database + stateDiskDb, err = n.OpenDatabaseWithFreezer(name+"/state", stateDbCache, stateDbHandles, "", "eth/db/statedata/", readonly, true, false, config.PruneAncientData) if err != nil { return nil, err } - // Reduce the handles and cache to this separate database because it is not a complete database with no trie data storing in it. - cache = int(float64(cache) * 0.6) - chainDataHandles = int(float64(chainDataHandles) * 0.6) + blockDb, err = n.OpenDatabaseWithFreezer(name+"/block", blockDbCacheSize, blockDbHandlesSize, "", "eth/db/blockdata/", readonly, false, false, config.PruneAncientData) + if err != nil { + return nil, err + } + log.Warn("Multi-database is an experimental feature") } - chainDB, err := n.OpenDatabaseWithFreezer(name, cache, chainDataHandles, freezer, namespace, readonly, false, false, pruneAncientData) + chainDB, err := n.OpenDatabaseWithFreezer(name, chainDbCache, chainDataHandles, config.DatabaseFreezer, namespace, readonly, disableChainDbFreeze, false, config.PruneAncientData) if err != nil { return nil, err } - if statediskdb != nil { - chainDB.SetStateStore(statediskdb) + if isMultiDatabase { + chainDB.SetStateStore(stateDiskDb) + chainDB.SetBlockStore(blockDb) } - if persistDiff { - diffStore, err := n.OpenDiffDatabase(name, handles-chainDataHandles, diff, namespace, readonly) + if config.PersistDiff { + diffStore, err := n.OpenDiffDatabase(name, diffStoreHandles, config.DatabaseDiff, namespace, readonly) if err != nil { chainDB.Close() return nil, err } chainDB.SetDiffStore(diffStore) } + return chainDB, nil } @@ -857,14 +892,31 @@ func (n *Node) OpenDatabaseWithFreezer(name string, cache, handles int, ancient, return db, err } -// IsSeparatedDB check the state subdirectory of db, if subdirectory exists, return true -func (n *Node) IsSeparatedDB() bool { - separateDir := filepath.Join(n.ResolvePath("chaindata"), "state") - fileInfo, err := os.Stat(separateDir) - if os.IsNotExist(err) { +// CheckIfMultiDataBase check the state and block subdirectory of db, if subdirectory exists, return true +func (n *Node) CheckIfMultiDataBase() bool { + var ( + stateExist = true + blockExist = true + ) + + separateStateDir := filepath.Join(n.ResolvePath("chaindata"), "state") + fileInfo, stateErr := os.Stat(separateStateDir) + if os.IsNotExist(stateErr) || !fileInfo.IsDir() { + stateExist = false + } + separateBlockDir := filepath.Join(n.ResolvePath("chaindata"), "block") + blockFileInfo, blockErr := os.Stat(separateBlockDir) + if os.IsNotExist(blockErr) || !blockFileInfo.IsDir() { + blockExist = false + } + + if stateExist && blockExist { + return true + } else if !stateExist && !blockExist { return false + } else { + panic("data corruption! missing block or state dir.") } - return fileInfo.IsDir() } func (n *Node) OpenDiffDatabase(name string, handles int, diff, namespace string, readonly bool) (*leveldb.Database, error) { diff --git a/p2p/discover/v5_talk.go b/p2p/discover/v5_talk.go index c1f6787940..5d396f689e 100644 --- a/p2p/discover/v5_talk.go +++ b/p2p/discover/v5_talk.go @@ -37,7 +37,7 @@ const talkHandlerLaunchTimeout = 400 * time.Millisecond // // Note that talk handlers are expected to come up with a response very quickly, within at // most 200ms or so. If the handler takes longer than that, the remote end may time out -// and wont receive the response. +// and won't receive the response. type TalkRequestHandler func(enode.ID, *net.UDPAddr, []byte) []byte type talkSystem struct { diff --git a/p2p/server.go b/p2p/server.go index aef27dcbfc..a334166737 100644 --- a/p2p/server.go +++ b/p2p/server.go @@ -24,6 +24,7 @@ import ( "errors" "fmt" "net" + "regexp" "sync" "sync/atomic" "time" @@ -180,6 +181,8 @@ type Config struct { // Logger is a custom logger to use with the p2p.Server. Logger log.Logger `toml:",omitempty"` + PeerFilterPatterns []string + clock mclock.Clock } @@ -210,7 +213,8 @@ type Server struct { discmix *enode.FairMix dialsched *dialScheduler - forkFilter forkid.Filter + forkFilter forkid.Filter + peerNameFilter []*regexp.Regexp // This is read by the NAT port mapping loop. portMappingRegister chan *portMapping @@ -540,6 +544,15 @@ func (srv *Server) Start() (err error) { } srv.setupDialScheduler() + if srv.PeerFilterPatterns != nil { + pat, err := compilePeerFilterPatterns(srv.PeerFilterPatterns) + if err != nil { + log.Error("Failed to compile peer filter patterns", "err", err) + pat = nil + } + srv.peerNameFilter = pat + } + srv.loopWG.Add(1) go srv.run() return nil @@ -916,6 +929,14 @@ func (srv *Server) addPeerChecks(peers map[enode.ID]*Peer, inboundCount int, c * return errors.New("explicitly disconnected peer previously") } + if srv.peerNameFilter != nil { + for _, re := range srv.peerNameFilter { + if re.MatchString(c.name) { + return errors.New("peer name matches filter") + } + } + } + // Repeat the post-handshake checks because the // peer set might have changed since those checks were performed. return srv.postHandshakeChecks(peers, inboundCount, c) @@ -1226,3 +1247,15 @@ func (srv *Server) PeersInfo() []*PeerInfo { } return infos } + +func compilePeerFilterPatterns(pat []string) ([]*regexp.Regexp, error) { + var filters []*regexp.Regexp + for _, filter := range pat { + r, err := regexp.Compile(filter) + if err != nil { + return nil, err + } + filters = append(filters, r) + } + return filters, nil +} diff --git a/params/config.go b/params/config.go index 3097565ee4..6a2cd183b7 100644 --- a/params/config.go +++ b/params/config.go @@ -1270,7 +1270,7 @@ func newTimestampCompatError(what string, storedtime, newtime *uint64) *ConfigCo NewTime: newtime, RewindToTime: 0, } - if rew != nil { + if rew != nil && *rew != 0 { err.RewindToTime = *rew - 1 } return err @@ -1280,7 +1280,13 @@ func (err *ConfigCompatError) Error() string { if err.StoredBlock != nil { return fmt.Sprintf("mismatching %s in database (have block %d, want block %d, rewindto block %d)", err.What, err.StoredBlock, err.NewBlock, err.RewindToBlock) } - return fmt.Sprintf("mismatching %s in database (have timestamp %d, want timestamp %d, rewindto timestamp %d)", err.What, err.StoredTime, err.NewTime, err.RewindToTime) + + if err.StoredTime == nil { + return fmt.Sprintf("mismatching %s in database (have timestamp nil, want timestamp %d, rewindto timestamp %d)", err.What, *err.NewTime, err.RewindToTime) + } else if err.NewTime == nil { + return fmt.Sprintf("mismatching %s in database (have timestamp %d, want timestamp nil, rewindto timestamp %d)", err.What, *err.StoredTime, err.RewindToTime) + } + return fmt.Sprintf("mismatching %s in database (have timestamp %d, want timestamp %d, rewindto timestamp %d)", err.What, *err.StoredTime, *err.NewTime, err.RewindToTime) } // Rules wraps ChainConfig and is merely syntactic sugar or can be used for functions diff --git a/params/protocol_params.go b/params/protocol_params.go index 95c1eb266d..0ab8b6a396 100644 --- a/params/protocol_params.go +++ b/params/protocol_params.go @@ -27,6 +27,7 @@ const ( MinGasLimit uint64 = 5000 // Minimum the gas limit may ever be. MaxGasLimit uint64 = 0x7fffffffffffffff // Maximum the gas limit (2^63-1). GenesisGasLimit uint64 = 4712388 // Gas limit of the Genesis block. + PayBidTxGasLimit uint64 = 25000 // Gas limit of the PayBidTx in the types.BidArgs. MaximumExtraDataSize uint64 = 32 // Maximum size extra data may be after Genesis. ForkIDSize uint64 = 4 // The length of fork id diff --git a/params/version.go b/params/version.go index b2c053da3a..c2a2aedbcd 100644 --- a/params/version.go +++ b/params/version.go @@ -23,7 +23,7 @@ import ( const ( VersionMajor = 1 // Major version component of the current release VersionMinor = 4 // Minor version component of the current release - VersionPatch = 5 // Patch version component of the current release + VersionPatch = 6 // Patch version component of the current release VersionMeta = "" // Version metadata to append to the version string ) diff --git a/trie/trie_test.go b/trie/trie_test.go index 920594fdd2..73a72222f4 100644 --- a/trie/trie_test.go +++ b/trie/trie_test.go @@ -1066,7 +1066,7 @@ func TestCommitSequenceSmallRoot(t *testing.T) { } } -// BenchmarkCommitAfterHashFixedSize benchmarks the Commit (after Hash) of a fixed number of updates to a trie. +// BenchmarkHashFixedSize benchmarks the Commit (after Hash) of a fixed number of updates to a trie. // This benchmark is meant to capture the difference on efficiency of small versus large changes. Typically, // storage tries are small (a couple of entries), whereas the full post-block account trie update is large (a couple // of thousand entries) diff --git a/triedb/database.go b/triedb/database.go index fabd7ffc8f..66c2740911 100644 --- a/triedb/database.go +++ b/triedb/database.go @@ -393,7 +393,7 @@ func (db *Database) Head() common.Hash { return pdb.Head() } -// GetAllHash returns all MPT root hash in diffLayer and diskLayer. +// GetAllRooHash returns all MPT root hash in diffLayer and diskLayer. // It's only supported by path-based database and will return nil for // others. func (db *Database) GetAllRooHash() [][]string { diff --git a/triedb/pathdb/database.go b/triedb/pathdb/database.go index 247e684928..f60677fc93 100644 --- a/triedb/pathdb/database.go +++ b/triedb/pathdb/database.go @@ -20,6 +20,7 @@ import ( "errors" "fmt" "io" + "os" "sort" "strconv" "sync" @@ -64,6 +65,13 @@ const ( DefaultBatchRedundancyRate = 1.1 ) +type JournalType int + +const ( + JournalKVType JournalType = iota + JournalFileType +) + // layer is the interface implemented by all state layers which includes some // public methods and some additional methods for internal usage. type layer interface { @@ -91,17 +99,19 @@ type layer interface { // journal commits an entire diff hierarchy to disk into a single journal entry. // This is meant to be used during shutdown to persist the layer without // flattening everything down (bad for reorgs). - journal(w io.Writer) error + journal(w io.Writer, journalType JournalType) error } // Config contains the settings for database. type Config struct { - SyncFlush bool // Flag of trienodebuffer sync flush cache to disk - StateHistory uint64 // Number of recent blocks to maintain state history for - CleanCacheSize int // Maximum memory allowance (in bytes) for caching clean nodes - DirtyCacheSize int // Maximum memory allowance (in bytes) for caching dirty nodes - ReadOnly bool // Flag whether the database is opened in read only mode. - NoTries bool + SyncFlush bool // Flag of trienodebuffer sync flush cache to disk + StateHistory uint64 // Number of recent blocks to maintain state history for + CleanCacheSize int // Maximum memory allowance (in bytes) for caching clean nodes + DirtyCacheSize int // Maximum memory allowance (in bytes) for caching dirty nodes + ReadOnly bool // Flag whether the database is opened in read only mode. + NoTries bool + JournalFilePath string + JournalFile bool } // sanitize checks the provided user configurations and changes anything that's @@ -316,7 +326,7 @@ func (db *Database) Enable(root common.Hash) error { // Drop the stale state journal in persistent database and // reset the persistent state id back to zero. batch := db.diskdb.NewBatch() - rawdb.DeleteTrieJournal(batch) + db.DeleteTrieJournal(batch) rawdb.WritePersistentStateID(batch, 0) if err := batch.Write(); err != nil { return err @@ -380,7 +390,7 @@ func (db *Database) Recover(root common.Hash, loader triestate.TrieLoader) error // disk layer won't be accessible from outside. db.tree.reset(dl) } - rawdb.DeleteTrieJournal(db.diskdb) + db.DeleteTrieJournal(db.diskdb) _, err := truncateFromHead(db.diskdb, db.freezer, dl.stateID()) if err != nil { return err @@ -524,3 +534,41 @@ func (db *Database) GetAllRooHash() [][]string { data = append(data, []string{"-1", db.tree.bottom().rootHash().String()}) return data } + +// DetermineJournalTypeForWriter is used when persisting the journal. It determines JournalType based on the config passed in by the Config. +func (db *Database) DetermineJournalTypeForWriter() JournalType { + if db.config.JournalFile { + return JournalFileType + } else { + return JournalKVType + } +} + +// DetermineJournalTypeForReader is used when loading the journal. It loads based on whether JournalKV or JournalFile currently exists. +func (db *Database) DetermineJournalTypeForReader() JournalType { + if journal := rawdb.ReadTrieJournal(db.diskdb); len(journal) != 0 { + return JournalKVType + } + + if fileInfo, stateErr := os.Stat(db.config.JournalFilePath); stateErr == nil && !fileInfo.IsDir() { + return JournalFileType + } + + return JournalKVType +} + +func (db *Database) DeleteTrieJournal(writer ethdb.KeyValueWriter) error { + // To prevent any remnants of old journals after converting from JournalKV to JournalFile or vice versa, all deletions must be completed. + rawdb.DeleteTrieJournal(writer) + + // delete from journal file, may not exist + filePath := db.config.JournalFilePath + if _, err := os.Stat(filePath); os.IsNotExist(err) { + return nil + } + errRemove := os.Remove(filePath) + if errRemove != nil { + log.Crit("Failed to remove tries journal", "journal path", filePath, "err", errRemove) + } + return nil +} diff --git a/triedb/pathdb/database_test.go b/triedb/pathdb/database_test.go index 6fcb160bdd..123b4e9ebf 100644 --- a/triedb/pathdb/database_test.go +++ b/triedb/pathdb/database_test.go @@ -302,7 +302,7 @@ func (t *tester) generate(parent common.Hash) (common.Hash, *trienode.MergedNode return root, ctx.nodes, triestate.New(ctx.accountOrigin, ctx.storageOrigin, nil) } -// lastRoot returns the latest root hash, or empty if nothing is cached. +// lastHash returns the latest root hash, or empty if nothing is cached. func (t *tester) lastHash() common.Hash { if len(t.roots) == 0 { return common.Hash{} diff --git a/triedb/pathdb/difflayer_test.go b/triedb/pathdb/difflayer_test.go index 8598a05dce..ab69a24d3d 100644 --- a/triedb/pathdb/difflayer_test.go +++ b/triedb/pathdb/difflayer_test.go @@ -165,6 +165,6 @@ func BenchmarkJournal(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { - layer.journal(new(bytes.Buffer)) + layer.journal(new(bytes.Buffer), JournalKVType) } } diff --git a/triedb/pathdb/journal.go b/triedb/pathdb/journal.go index 1100e03ba3..e14f047e0d 100644 --- a/triedb/pathdb/journal.go +++ b/triedb/pathdb/journal.go @@ -18,15 +18,19 @@ package pathdb import ( "bytes" + "crypto/sha256" "errors" "fmt" "io" + "io/fs" + "os" "time" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/rawdb" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/trie/trienode" @@ -70,13 +74,136 @@ type journalStorage struct { Slots [][]byte } +type JournalWriter interface { + io.Writer + + Close() + Size() uint64 +} + +type JournalReader interface { + io.Reader + Close() +} + +type JournalFileWriter struct { + file *os.File +} + +type JournalFileReader struct { + file *os.File +} + +type JournalKVWriter struct { + journalBuf bytes.Buffer + diskdb ethdb.Database +} + +type JournalKVReader struct { + journalBuf *bytes.Buffer +} + +// Write appends b directly to the encoder output. +func (fw *JournalFileWriter) Write(b []byte) (int, error) { + return fw.file.Write(b) +} + +func (fw *JournalFileWriter) Close() { + fw.file.Close() +} + +func (fw *JournalFileWriter) Size() uint64 { + if fw.file == nil { + return 0 + } + fileInfo, err := fw.file.Stat() + if err != nil { + log.Crit("Failed to stat journal", "err", err) + } + return uint64(fileInfo.Size()) +} + +func (kw *JournalKVWriter) Write(b []byte) (int, error) { + return kw.journalBuf.Write(b) +} + +func (kw *JournalKVWriter) Close() { + rawdb.WriteTrieJournal(kw.diskdb, kw.journalBuf.Bytes()) + kw.journalBuf.Reset() +} + +func (kw *JournalKVWriter) Size() uint64 { + return uint64(kw.journalBuf.Len()) +} + +func (fr *JournalFileReader) Read(p []byte) (n int, err error) { + return fr.file.Read(p) +} + +func (fr *JournalFileReader) Close() { + fr.file.Close() +} + +func (kr *JournalKVReader) Read(p []byte) (n int, err error) { + return kr.journalBuf.Read(p) +} + +func (kr *JournalKVReader) Close() { +} + +func newJournalWriter(file string, db ethdb.Database, journalType JournalType) JournalWriter { + log.Info("New journal writer", "path", file, "journalType", journalType) + if journalType == JournalKVType { + return &JournalKVWriter{ + diskdb: db, + } + } else { + fd, err := os.OpenFile(file, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644) + if err != nil { + return nil + } + return &JournalFileWriter{ + file: fd, + } + } +} + +func newJournalReader(file string, db ethdb.Database, journalType JournalType) (JournalReader, error) { + log.Info("New journal reader", "path", file, "journalType", journalType) + if journalType == JournalKVType { + journal := rawdb.ReadTrieJournal(db) + if len(journal) == 0 { + return nil, errMissJournal + } + return &JournalKVReader{ + journalBuf: bytes.NewBuffer(journal), + }, nil + } else { + fd, err := os.Open(file) + if errors.Is(err, fs.ErrNotExist) { + return nil, errMissJournal + } + if err != nil { + return nil, err + } + return &JournalFileReader{ + file: fd, + }, nil + } +} + // loadJournal tries to parse the layer journal from the disk. func (db *Database) loadJournal(diskRoot common.Hash) (layer, error) { - journal := rawdb.ReadTrieJournal(db.diskdb) - if len(journal) == 0 { - return nil, errMissJournal + start := time.Now() + reader, err := newJournalReader(db.config.JournalFilePath, db.diskdb, db.DetermineJournalTypeForReader()) + + if err != nil { + return nil, err + } + if reader != nil { + defer reader.Close() } - r := rlp.NewStream(bytes.NewReader(journal), 0) + r := rlp.NewStream(reader, 0) // Firstly, resolve the first element as the journal version version, err := r.Uint64() @@ -108,7 +235,7 @@ func (db *Database) loadJournal(diskRoot common.Hash) (layer, error) { if err != nil { return nil, err } - log.Debug("Loaded layer journal", "diskroot", diskRoot, "diffhead", head.rootHash()) + log.Info("Loaded layer journal", "diskroot", diskRoot, "diffhead", head.rootHash(), "elapsed", common.PrettyDuration(time.Since(start))) return head, nil } @@ -137,15 +264,28 @@ func (db *Database) loadLayers() layer { // a new disk layer on it. func (db *Database) loadDiskLayer(r *rlp.Stream) (layer, error) { // Resolve disk layer root - var root common.Hash - if err := r.Decode(&root); err != nil { + var ( + root common.Hash + journalBuf *rlp.Stream + journalEncodedBuff []byte + ) + if db.DetermineJournalTypeForReader() == JournalFileType { + if err := r.Decode(&journalEncodedBuff); err != nil { + return nil, fmt.Errorf("load disk journal: %v", err) + } + journalBuf = rlp.NewStream(bytes.NewReader(journalEncodedBuff), 0) + } else { + journalBuf = r + } + + if err := journalBuf.Decode(&root); err != nil { return nil, fmt.Errorf("load disk root: %v", err) } // Resolve the state id of disk layer, it can be different // with the persistent id tracked in disk, the id distance // is the number of transitions aggregated in disk layer. var id uint64 - if err := r.Decode(&id); err != nil { + if err := journalBuf.Decode(&id); err != nil { return nil, fmt.Errorf("load state id: %v", err) } stored := rawdb.ReadPersistentStateID(db.diskdb) @@ -154,7 +294,7 @@ func (db *Database) loadDiskLayer(r *rlp.Stream) (layer, error) { } // Resolve nodes cached in node buffer var encoded []journalNodes - if err := r.Decode(&encoded); err != nil { + if err := journalBuf.Decode(&encoded); err != nil { return nil, fmt.Errorf("load disk nodes: %v", err) } nodes := make(map[common.Hash]map[string]*trienode.Node) @@ -169,6 +309,19 @@ func (db *Database) loadDiskLayer(r *rlp.Stream) (layer, error) { } nodes[entry.Owner] = subset } + + if db.DetermineJournalTypeForReader() == JournalFileType { + var shaSum [32]byte + if err := r.Decode(&shaSum); err != nil { + return nil, fmt.Errorf("load shasum: %v", err) + } + + expectSum := sha256.Sum256(journalEncodedBuff) + if shaSum != expectSum { + return nil, fmt.Errorf("expect shaSum: %v, real:%v", expectSum, shaSum) + } + } + // Calculate the internal state transitions by id difference. base := newDiskLayer(root, id, db, nil, NewTrieNodeBuffer(db.config.SyncFlush, db.bufferSize, nodes, id-stored)) return base, nil @@ -178,8 +331,25 @@ func (db *Database) loadDiskLayer(r *rlp.Stream) (layer, error) { // diff and verifying that it can be linked to the requested parent. func (db *Database) loadDiffLayer(parent layer, r *rlp.Stream) (layer, error) { // Read the next diff journal entry - var root common.Hash - if err := r.Decode(&root); err != nil { + var ( + root common.Hash + journalBuf *rlp.Stream + journalEncodedBuff []byte + ) + if db.DetermineJournalTypeForReader() == JournalFileType { + if err := r.Decode(&journalEncodedBuff); err != nil { + // The first read may fail with EOF, marking the end of the journal + if err == io.EOF { + return parent, nil + } + return nil, fmt.Errorf("load disk journal buffer: %v", err) + } + journalBuf = rlp.NewStream(bytes.NewReader(journalEncodedBuff), 0) + } else { + journalBuf = r + } + + if err := journalBuf.Decode(&root); err != nil { // The first read may fail with EOF, marking the end of the journal if err == io.EOF { return parent, nil @@ -187,12 +357,12 @@ func (db *Database) loadDiffLayer(parent layer, r *rlp.Stream) (layer, error) { return nil, fmt.Errorf("load diff root: %v", err) } var block uint64 - if err := r.Decode(&block); err != nil { + if err := journalBuf.Decode(&block); err != nil { return nil, fmt.Errorf("load block number: %v", err) } // Read in-memory trie nodes from journal var encoded []journalNodes - if err := r.Decode(&encoded); err != nil { + if err := journalBuf.Decode(&encoded); err != nil { return nil, fmt.Errorf("load diff nodes: %v", err) } nodes := make(map[common.Hash]map[string]*trienode.Node) @@ -215,13 +385,13 @@ func (db *Database) loadDiffLayer(parent layer, r *rlp.Stream) (layer, error) { storages = make(map[common.Address]map[common.Hash][]byte) incomplete = make(map[common.Address]struct{}) ) - if err := r.Decode(&jaccounts); err != nil { + if err := journalBuf.Decode(&jaccounts); err != nil { return nil, fmt.Errorf("load diff accounts: %v", err) } for i, addr := range jaccounts.Addresses { accounts[addr] = jaccounts.Accounts[i] } - if err := r.Decode(&jstorages); err != nil { + if err := journalBuf.Decode(&jstorages); err != nil { return nil, fmt.Errorf("load diff storages: %v", err) } for _, entry := range jstorages { @@ -238,25 +408,43 @@ func (db *Database) loadDiffLayer(parent layer, r *rlp.Stream) (layer, error) { } storages[entry.Account] = set } + + if db.DetermineJournalTypeForReader() == JournalFileType { + var shaSum [32]byte + if err := r.Decode(&shaSum); err != nil { + return nil, fmt.Errorf("load shasum: %v", err) + } + + expectSum := sha256.Sum256(journalEncodedBuff) + if shaSum != expectSum { + return nil, fmt.Errorf("expect shaSum: %v, real:%v", expectSum, shaSum) + } + } + + log.Debug("Loaded diff layer journal", "root", root, "parent", parent.rootHash(), "id", parent.stateID()+1, "block", block) + return db.loadDiffLayer(newDiffLayer(parent, root, parent.stateID()+1, block, nodes, triestate.New(accounts, storages, incomplete)), r) } // journal implements the layer interface, marshaling the un-flushed trie nodes // along with layer metadata into provided byte buffer. -func (dl *diskLayer) journal(w io.Writer) error { +func (dl *diskLayer) journal(w io.Writer, journalType JournalType) error { dl.lock.RLock() defer dl.lock.RUnlock() + // Create a buffer to store encoded data + journalBuf := new(bytes.Buffer) + // Ensure the layer didn't get stale if dl.stale { return errSnapshotStale } // Step one, write the disk root into the journal. - if err := rlp.Encode(w, dl.root); err != nil { + if err := rlp.Encode(journalBuf, dl.root); err != nil { return err } // Step two, write the corresponding state id into the journal - if err := rlp.Encode(w, dl.id); err != nil { + if err := rlp.Encode(journalBuf, dl.id); err != nil { return err } // Step three, write all unwritten nodes into the journal @@ -269,28 +457,46 @@ func (dl *diskLayer) journal(w io.Writer) error { } nodes = append(nodes, entry) } - if err := rlp.Encode(w, nodes); err != nil { + if err := rlp.Encode(journalBuf, nodes); err != nil { return err } - log.Debug("Journaled pathdb disk layer", "root", dl.root, "nodes", len(bufferNodes)) + + // Store the journal buf into w and calculate checksum + if journalType == JournalFileType { + shasum := sha256.Sum256(journalBuf.Bytes()) + if err := rlp.Encode(w, journalBuf.Bytes()); err != nil { + return err + } + if err := rlp.Encode(w, shasum); err != nil { + return err + } + } else { + if _, err := w.Write(journalBuf.Bytes()); err != nil { + return err + } + } + + log.Info("Journaled pathdb disk layer", "root", dl.root, "nodes", len(bufferNodes)) return nil } // journal implements the layer interface, writing the memory layer contents // into a buffer to be stored in the database as the layer journal. -func (dl *diffLayer) journal(w io.Writer) error { +func (dl *diffLayer) journal(w io.Writer, journalType JournalType) error { dl.lock.RLock() defer dl.lock.RUnlock() // journal the parent first - if err := dl.parent.journal(w); err != nil { + if err := dl.parent.journal(w, journalType); err != nil { return err } + // Create a buffer to store encoded data + journalBuf := new(bytes.Buffer) // Everything below was journaled, persist this layer too - if err := rlp.Encode(w, dl.root); err != nil { + if err := rlp.Encode(journalBuf, dl.root); err != nil { return err } - if err := rlp.Encode(w, dl.block); err != nil { + if err := rlp.Encode(journalBuf, dl.block); err != nil { return err } // Write the accumulated trie nodes into buffer @@ -302,7 +508,7 @@ func (dl *diffLayer) journal(w io.Writer) error { } nodes = append(nodes, entry) } - if err := rlp.Encode(w, nodes); err != nil { + if err := rlp.Encode(journalBuf, nodes); err != nil { return err } // Write the accumulated state changes into buffer @@ -311,7 +517,7 @@ func (dl *diffLayer) journal(w io.Writer) error { jacct.Addresses = append(jacct.Addresses, addr) jacct.Accounts = append(jacct.Accounts, account) } - if err := rlp.Encode(w, jacct); err != nil { + if err := rlp.Encode(journalBuf, jacct); err != nil { return err } storage := make([]journalStorage, 0, len(dl.states.Storages)) @@ -326,10 +532,26 @@ func (dl *diffLayer) journal(w io.Writer) error { } storage = append(storage, entry) } - if err := rlp.Encode(w, storage); err != nil { + if err := rlp.Encode(journalBuf, storage); err != nil { return err } - log.Debug("Journaled pathdb diff layer", "root", dl.root, "parent", dl.parent.rootHash(), "id", dl.stateID(), "block", dl.block, "nodes", len(dl.nodes)) + + // Store the journal buf into w and calculate checksum + if journalType == JournalFileType { + shasum := sha256.Sum256(journalBuf.Bytes()) + if err := rlp.Encode(w, journalBuf.Bytes()); err != nil { + return err + } + if err := rlp.Encode(w, shasum); err != nil { + return err + } + } else { + if _, err := w.Write(journalBuf.Bytes()); err != nil { + return err + } + } + + log.Info("Journaled pathdb diff layer", "root", dl.root, "parent", dl.parent.rootHash(), "id", dl.stateID(), "block", dl.block, "nodes", len(dl.nodes)) return nil } @@ -362,7 +584,10 @@ func (db *Database) Journal(root common.Hash) error { return errDatabaseReadOnly } // Firstly write out the metadata of journal - journal := new(bytes.Buffer) + db.DeleteTrieJournal(db.diskdb) + journal := newJournalWriter(db.config.JournalFilePath, db.diskdb, db.DetermineJournalTypeForWriter()) + defer journal.Close() + if err := rlp.Encode(journal, journalVersion); err != nil { return err } @@ -377,14 +602,14 @@ func (db *Database) Journal(root common.Hash) error { return err } // Finally write out the journal of each layer in reverse order. - if err := l.journal(journal); err != nil { + if err := l.journal(journal, db.DetermineJournalTypeForWriter()); err != nil { return err } // Store the journal into the database and return - rawdb.WriteTrieJournal(db.diskdb, journal.Bytes()) + journalSize := journal.Size() // Set the db in read only mode to reject all following mutations db.readOnly = true - log.Info("Persisted dirty state to disk", "size", common.StorageSize(journal.Len()), "elapsed", common.PrettyDuration(time.Since(start))) + log.Info("Persisted dirty state to disk", "size", common.StorageSize(journalSize), "elapsed", common.PrettyDuration(time.Since(start))) return nil }